import { AutomaticJsonStringConversion as __AutomaticJsonStringConversion } from "@smithy/smithy-client"; import { ChangeDirectionEnum, EventType, ExperimentBaseStat, ExperimentReportName, ExperimentResultRequestType, ExperimentResultResponseType, ExperimentStatus, ExperimentStopDesiredState, ExperimentType, FeatureEvaluationStrategy, FeatureStatus, LaunchStatus, LaunchStopDesiredState, LaunchType, ProjectStatus, SegmentReferenceResourceType, VariationValueType, } from "./enums"; export interface EvaluationRequest { feature: string | undefined; entityId: string | undefined; evaluationContext?: __AutomaticJsonStringConversion | string | undefined; } export interface BatchEvaluateFeatureRequest { project: string | undefined; requests: EvaluationRequest[] | undefined; } export type VariableValue = | VariableValue.BoolValueMember | VariableValue.DoubleValueMember | VariableValue.LongValueMember | VariableValue.StringValueMember | VariableValue.$UnknownMember; export declare namespace VariableValue { interface BoolValueMember { boolValue: boolean; stringValue?: never; longValue?: never; doubleValue?: never; $unknown?: never; } interface StringValueMember { boolValue?: never; stringValue: string; longValue?: never; doubleValue?: never; $unknown?: never; } interface LongValueMember { boolValue?: never; stringValue?: never; longValue: number; doubleValue?: never; $unknown?: never; } interface DoubleValueMember { boolValue?: never; stringValue?: never; longValue?: never; doubleValue: number; $unknown?: never; } interface $UnknownMember { boolValue?: never; stringValue?: never; longValue?: never; doubleValue?: never; $unknown: [string, any]; } interface Visitor { boolValue: (value: boolean) => T; stringValue: (value: string) => T; longValue: (value: number) => T; doubleValue: (value: number) => T; _: (name: string, value: any) => T; } } export interface EvaluationResult { project?: string | undefined; feature: string | undefined; variation?: string | undefined; value?: VariableValue | undefined; entityId: string | undefined; reason?: string | undefined; details?: __AutomaticJsonStringConversion | string | undefined; } export interface BatchEvaluateFeatureResponse { results?: EvaluationResult[] | undefined; } export interface ValidationExceptionField { name: string | undefined; message: string | undefined; } export interface CloudWatchLogsDestination { logGroup?: string | undefined; } export interface CloudWatchLogsDestinationConfig { logGroup?: string | undefined; } export interface MetricDefinitionConfig { name: string | undefined; entityIdKey: string | undefined; valueKey: string | undefined; eventPattern?: __AutomaticJsonStringConversion | string | undefined; unitLabel?: string | undefined; } export interface MetricGoalConfig { metricDefinition: MetricDefinitionConfig | undefined; desiredChange?: ChangeDirectionEnum | undefined; } export interface OnlineAbConfig { controlTreatmentName?: string | undefined; treatmentWeights?: Record | undefined; } export interface TreatmentConfig { name: string | undefined; description?: string | undefined; feature: string | undefined; variation: string | undefined; } export interface CreateExperimentRequest { project: string | undefined; name: string | undefined; description?: string | undefined; treatments: TreatmentConfig[] | undefined; metricGoals: MetricGoalConfig[] | undefined; randomizationSalt?: string | undefined; samplingRate?: number | undefined; onlineAbConfig?: OnlineAbConfig | undefined; segment?: string | undefined; tags?: Record | undefined; } export interface ExperimentExecution { startedTime?: Date | undefined; endedTime?: Date | undefined; } export interface MetricDefinition { name?: string | undefined; entityIdKey?: string | undefined; valueKey?: string | undefined; eventPattern?: __AutomaticJsonStringConversion | string | undefined; unitLabel?: string | undefined; } export interface MetricGoal { metricDefinition: MetricDefinition | undefined; desiredChange?: ChangeDirectionEnum | undefined; } export interface OnlineAbDefinition { controlTreatmentName?: string | undefined; treatmentWeights?: Record | undefined; } export interface ExperimentSchedule { analysisCompleteTime?: Date | undefined; } export interface Treatment { name: string | undefined; description?: string | undefined; featureVariations?: Record | undefined; } export interface Experiment { arn: string | undefined; name: string | undefined; project?: string | undefined; status: ExperimentStatus | undefined; statusReason?: string | undefined; description?: string | undefined; createdTime: Date | undefined; lastUpdatedTime: Date | undefined; schedule?: ExperimentSchedule | undefined; execution?: ExperimentExecution | undefined; treatments?: Treatment[] | undefined; metricGoals?: MetricGoal[] | undefined; randomizationSalt?: string | undefined; samplingRate?: number | undefined; segment?: string | undefined; type: ExperimentType | undefined; onlineAbDefinition?: OnlineAbDefinition | undefined; tags?: Record | undefined; } export interface CreateExperimentResponse { experiment: Experiment | undefined; } export interface VariationConfig { name: string | undefined; value: VariableValue | undefined; } export interface CreateFeatureRequest { project: string | undefined; name: string | undefined; evaluationStrategy?: FeatureEvaluationStrategy | undefined; description?: string | undefined; variations: VariationConfig[] | undefined; defaultVariation?: string | undefined; tags?: Record | undefined; entityOverrides?: Record | undefined; } export interface EvaluationRule { name?: string | undefined; type: string | undefined; } export interface Variation { name?: string | undefined; value?: VariableValue | undefined; } export interface Feature { arn: string | undefined; name: string | undefined; project?: string | undefined; status: FeatureStatus | undefined; createdTime: Date | undefined; lastUpdatedTime: Date | undefined; description?: string | undefined; evaluationStrategy: FeatureEvaluationStrategy | undefined; valueType: VariationValueType | undefined; variations: Variation[] | undefined; defaultVariation?: string | undefined; evaluationRules?: EvaluationRule[] | undefined; tags?: Record | undefined; entityOverrides?: Record | undefined; } export interface CreateFeatureResponse { feature?: Feature | undefined; } export interface LaunchGroupConfig { name: string | undefined; description?: string | undefined; feature: string | undefined; variation: string | undefined; } export interface MetricMonitorConfig { metricDefinition: MetricDefinitionConfig | undefined; } export interface SegmentOverride { segment: string | undefined; evaluationOrder: number | undefined; weights: Record | undefined; } export interface ScheduledSplitConfig { startTime: Date | undefined; groupWeights: Record | undefined; segmentOverrides?: SegmentOverride[] | undefined; } export interface ScheduledSplitsLaunchConfig { steps: ScheduledSplitConfig[] | undefined; } export interface CreateLaunchRequest { project: string | undefined; name: string | undefined; description?: string | undefined; scheduledSplitsConfig?: ScheduledSplitsLaunchConfig | undefined; metricMonitors?: MetricMonitorConfig[] | undefined; groups: LaunchGroupConfig[] | undefined; randomizationSalt?: string | undefined; tags?: Record | undefined; } export interface LaunchExecution { startedTime?: Date | undefined; endedTime?: Date | undefined; } export interface LaunchGroup { name: string | undefined; description?: string | undefined; featureVariations: Record | undefined; } export interface MetricMonitor { metricDefinition: MetricDefinition | undefined; } export interface ScheduledSplit { startTime: Date | undefined; groupWeights?: Record | undefined; segmentOverrides?: SegmentOverride[] | undefined; } export interface ScheduledSplitsLaunchDefinition { steps?: ScheduledSplit[] | undefined; } export interface Launch { arn: string | undefined; name: string | undefined; project?: string | undefined; status: LaunchStatus | undefined; statusReason?: string | undefined; description?: string | undefined; createdTime: Date | undefined; lastUpdatedTime: Date | undefined; execution?: LaunchExecution | undefined; groups?: LaunchGroup[] | undefined; metricMonitors?: MetricMonitor[] | undefined; randomizationSalt?: string | undefined; type: LaunchType | undefined; scheduledSplitsDefinition?: ScheduledSplitsLaunchDefinition | undefined; tags?: Record | undefined; } export interface CreateLaunchResponse { launch: Launch | undefined; } export interface ProjectAppConfigResourceConfig { applicationId?: string | undefined; environmentId?: string | undefined; } export interface S3DestinationConfig { bucket?: string | undefined; prefix?: string | undefined; } export interface ProjectDataDeliveryConfig { s3Destination?: S3DestinationConfig | undefined; cloudWatchLogs?: CloudWatchLogsDestinationConfig | undefined; } export interface CreateProjectRequest { name: string | undefined; description?: string | undefined; dataDelivery?: ProjectDataDeliveryConfig | undefined; appConfigResource?: ProjectAppConfigResourceConfig | undefined; tags?: Record | undefined; } export interface ProjectAppConfigResource { applicationId: string | undefined; environmentId: string | undefined; configurationProfileId: string | undefined; } export interface S3Destination { bucket?: string | undefined; prefix?: string | undefined; } export interface ProjectDataDelivery { s3Destination?: S3Destination | undefined; cloudWatchLogs?: CloudWatchLogsDestination | undefined; } export interface Project { arn: string | undefined; name: string | undefined; status: ProjectStatus | undefined; description?: string | undefined; createdTime: Date | undefined; lastUpdatedTime: Date | undefined; featureCount?: number | undefined; launchCount?: number | undefined; activeLaunchCount?: number | undefined; experimentCount?: number | undefined; activeExperimentCount?: number | undefined; dataDelivery?: ProjectDataDelivery | undefined; appConfigResource?: ProjectAppConfigResource | undefined; tags?: Record | undefined; } export interface CreateProjectResponse { project: Project | undefined; } export interface CreateSegmentRequest { name: string | undefined; pattern: __AutomaticJsonStringConversion | string | undefined; description?: string | undefined; tags?: Record | undefined; } export interface Segment { arn: string | undefined; name: string | undefined; pattern: __AutomaticJsonStringConversion | string | undefined; createdTime: Date | undefined; lastUpdatedTime: Date | undefined; description?: string | undefined; experimentCount?: number | undefined; launchCount?: number | undefined; tags?: Record | undefined; } export interface CreateSegmentResponse { segment: Segment | undefined; } export interface DeleteExperimentRequest { project: string | undefined; experiment: string | undefined; } export interface DeleteExperimentResponse {} export interface DeleteFeatureRequest { project: string | undefined; feature: string | undefined; } export interface DeleteFeatureResponse {} export interface DeleteLaunchRequest { project: string | undefined; launch: string | undefined; } export interface DeleteLaunchResponse {} export interface DeleteProjectRequest { project: string | undefined; } export interface DeleteProjectResponse {} export interface DeleteSegmentRequest { segment: string | undefined; } export interface DeleteSegmentResponse {} export interface EvaluateFeatureRequest { project: string | undefined; feature: string | undefined; entityId: string | undefined; evaluationContext?: __AutomaticJsonStringConversion | string | undefined; } export interface EvaluateFeatureResponse { variation?: string | undefined; value?: VariableValue | undefined; reason?: string | undefined; details?: __AutomaticJsonStringConversion | string | undefined; } export interface Event { timestamp: Date | undefined; type: EventType | undefined; data: __AutomaticJsonStringConversion | string | undefined; } export interface ListTagsForResourceRequest { resourceArn: string | undefined; } export interface ListTagsForResourceResponse { tags?: Record | undefined; } export interface GetExperimentRequest { project: string | undefined; experiment: string | undefined; } export interface GetExperimentResponse { experiment?: Experiment | undefined; } export interface GetExperimentResultsRequest { project: string | undefined; experiment: string | undefined; startTime?: Date | undefined; endTime?: Date | undefined; metricNames: string[] | undefined; treatmentNames: string[] | undefined; baseStat?: ExperimentBaseStat | undefined; resultStats?: ExperimentResultRequestType[] | undefined; reportNames?: ExperimentReportName[] | undefined; period?: number | undefined; } export interface ExperimentReport { metricName?: string | undefined; treatmentName?: string | undefined; reportName?: ExperimentReportName | undefined; content?: __AutomaticJsonStringConversion | string | undefined; } export interface ExperimentResultsData { metricName?: string | undefined; treatmentName?: string | undefined; resultStat?: ExperimentResultResponseType | undefined; values?: number[] | undefined; } export interface GetExperimentResultsResponse { resultsData?: ExperimentResultsData[] | undefined; reports?: ExperimentReport[] | undefined; timestamps?: Date[] | undefined; details?: string | undefined; } export interface ListExperimentsRequest { project: string | undefined; maxResults?: number | undefined; nextToken?: string | undefined; status?: ExperimentStatus | undefined; } export interface ListExperimentsResponse { experiments?: Experiment[] | undefined; nextToken?: string | undefined; } export interface StartExperimentRequest { project: string | undefined; experiment: string | undefined; analysisCompleteTime: Date | undefined; } export interface StartExperimentResponse { startedTime?: Date | undefined; } export interface StopExperimentRequest { project: string | undefined; experiment: string | undefined; desiredState?: ExperimentStopDesiredState | undefined; reason?: string | undefined; } export interface StopExperimentResponse { endedTime?: Date | undefined; } export interface UpdateExperimentRequest { project: string | undefined; experiment: string | undefined; description?: string | undefined; treatments?: TreatmentConfig[] | undefined; metricGoals?: MetricGoalConfig[] | undefined; randomizationSalt?: string | undefined; samplingRate?: number | undefined; segment?: string | undefined; removeSegment?: boolean | undefined; onlineAbConfig?: OnlineAbConfig | undefined; } export interface UpdateExperimentResponse { experiment: Experiment | undefined; } export interface GetFeatureRequest { project: string | undefined; feature: string | undefined; } export interface GetFeatureResponse { feature: Feature | undefined; } export interface ListFeaturesRequest { project: string | undefined; maxResults?: number | undefined; nextToken?: string | undefined; } export interface FeatureSummary { arn: string | undefined; name: string | undefined; project?: string | undefined; status: FeatureStatus | undefined; createdTime: Date | undefined; lastUpdatedTime: Date | undefined; evaluationStrategy: FeatureEvaluationStrategy | undefined; evaluationRules?: EvaluationRule[] | undefined; defaultVariation?: string | undefined; tags?: Record | undefined; } export interface ListFeaturesResponse { features?: FeatureSummary[] | undefined; nextToken?: string | undefined; } export interface UpdateFeatureRequest { project: string | undefined; feature: string | undefined; evaluationStrategy?: FeatureEvaluationStrategy | undefined; description?: string | undefined; addOrUpdateVariations?: VariationConfig[] | undefined; removeVariations?: string[] | undefined; defaultVariation?: string | undefined; entityOverrides?: Record | undefined; } export interface UpdateFeatureResponse { feature: Feature | undefined; } export interface GetProjectRequest { project: string | undefined; } export interface GetProjectResponse { project: Project | undefined; } export interface GetLaunchRequest { project: string | undefined; launch: string | undefined; } export interface GetLaunchResponse { launch?: Launch | undefined; } export interface ListLaunchesRequest { project: string | undefined; maxResults?: number | undefined; nextToken?: string | undefined; status?: LaunchStatus | undefined; } export interface ListLaunchesResponse { launches?: Launch[] | undefined; nextToken?: string | undefined; } export interface StartLaunchRequest { project: string | undefined; launch: string | undefined; } export interface StartLaunchResponse { launch: Launch | undefined; } export interface StopLaunchRequest { project: string | undefined; launch: string | undefined; desiredState?: LaunchStopDesiredState | undefined; reason?: string | undefined; } export interface StopLaunchResponse { endedTime?: Date | undefined; } export interface UpdateLaunchRequest { project: string | undefined; launch: string | undefined; description?: string | undefined; groups?: LaunchGroupConfig[] | undefined; metricMonitors?: MetricMonitorConfig[] | undefined; randomizationSalt?: string | undefined; scheduledSplitsConfig?: ScheduledSplitsLaunchConfig | undefined; } export interface UpdateLaunchResponse { launch: Launch | undefined; } export interface ListProjectsRequest { maxResults?: number | undefined; nextToken?: string | undefined; } export interface ProjectSummary { arn: string | undefined; name: string | undefined; status: ProjectStatus | undefined; description?: string | undefined; createdTime: Date | undefined; lastUpdatedTime: Date | undefined; featureCount?: number | undefined; launchCount?: number | undefined; activeLaunchCount?: number | undefined; experimentCount?: number | undefined; activeExperimentCount?: number | undefined; tags?: Record | undefined; } export interface ListProjectsResponse { projects?: ProjectSummary[] | undefined; nextToken?: string | undefined; } export interface PutProjectEventsRequest { project: string | undefined; events: Event[] | undefined; } export interface PutProjectEventsResultEntry { eventId?: string | undefined; errorCode?: string | undefined; errorMessage?: string | undefined; } export interface PutProjectEventsResponse { failedEventCount?: number | undefined; eventResults?: PutProjectEventsResultEntry[] | undefined; } export interface UpdateProjectRequest { project: string | undefined; appConfigResource?: ProjectAppConfigResourceConfig | undefined; description?: string | undefined; } export interface UpdateProjectResponse { project: Project | undefined; } export interface UpdateProjectDataDeliveryRequest { project: string | undefined; s3Destination?: S3DestinationConfig | undefined; cloudWatchLogs?: CloudWatchLogsDestinationConfig | undefined; } export interface UpdateProjectDataDeliveryResponse { project: Project | undefined; } export interface GetSegmentRequest { segment: string | undefined; } export interface GetSegmentResponse { segment: Segment | undefined; } export interface ListSegmentReferencesRequest { segment: string | undefined; maxResults?: number | undefined; nextToken?: string | undefined; type: SegmentReferenceResourceType | undefined; } export interface RefResource { name: string | undefined; type: string | undefined; arn?: string | undefined; status?: string | undefined; startTime?: string | undefined; endTime?: string | undefined; lastUpdatedOn?: string | undefined; } export interface ListSegmentReferencesResponse { referencedBy?: RefResource[] | undefined; nextToken?: string | undefined; } export interface ListSegmentsRequest { maxResults?: number | undefined; nextToken?: string | undefined; } export interface ListSegmentsResponse { segments?: Segment[] | undefined; nextToken?: string | undefined; } export interface TagResourceRequest { resourceArn: string | undefined; tags: Record | undefined; } export interface TagResourceResponse {} export interface TestSegmentPatternRequest { pattern: __AutomaticJsonStringConversion | string | undefined; payload: __AutomaticJsonStringConversion | string | undefined; } export interface TestSegmentPatternResponse { match: boolean | undefined; } export interface UntagResourceRequest { resourceArn: string | undefined; tagKeys: string[] | undefined; } export interface UntagResourceResponse {}