import { ForecastDataType, LoadMetricType, MetricStatistic, PolicyType, PredictiveScalingMaxCapacityBehavior, PredictiveScalingMode, ScalableDimension, ScalingMetricType, ScalingPlanStatusCode, ScalingPolicyUpdateBehavior, ScalingStatusCode, ServiceNamespace, } from "./enums"; export interface TagFilter { Key?: string | undefined; Values?: string[] | undefined; } export interface ApplicationSource { CloudFormationStackARN?: string | undefined; TagFilters?: TagFilter[] | undefined; } export interface MetricDimension { Name: string | undefined; Value: string | undefined; } export interface CustomizedLoadMetricSpecification { MetricName: string | undefined; Namespace: string | undefined; Dimensions?: MetricDimension[] | undefined; Statistic: MetricStatistic | undefined; Unit?: string | undefined; } export interface PredefinedLoadMetricSpecification { PredefinedLoadMetricType: LoadMetricType | undefined; ResourceLabel?: string | undefined; } export interface CustomizedScalingMetricSpecification { MetricName: string | undefined; Namespace: string | undefined; Dimensions?: MetricDimension[] | undefined; Statistic: MetricStatistic | undefined; Unit?: string | undefined; } export interface PredefinedScalingMetricSpecification { PredefinedScalingMetricType: ScalingMetricType | undefined; ResourceLabel?: string | undefined; } export interface TargetTrackingConfiguration { PredefinedScalingMetricSpecification?: PredefinedScalingMetricSpecification | undefined; CustomizedScalingMetricSpecification?: CustomizedScalingMetricSpecification | undefined; TargetValue: number | undefined; DisableScaleIn?: boolean | undefined; ScaleOutCooldown?: number | undefined; ScaleInCooldown?: number | undefined; EstimatedInstanceWarmup?: number | undefined; } export interface ScalingInstruction { ServiceNamespace: ServiceNamespace | undefined; ResourceId: string | undefined; ScalableDimension: ScalableDimension | undefined; MinCapacity: number | undefined; MaxCapacity: number | undefined; TargetTrackingConfigurations: TargetTrackingConfiguration[] | undefined; PredefinedLoadMetricSpecification?: PredefinedLoadMetricSpecification | undefined; CustomizedLoadMetricSpecification?: CustomizedLoadMetricSpecification | undefined; ScheduledActionBufferTime?: number | undefined; PredictiveScalingMaxCapacityBehavior?: PredictiveScalingMaxCapacityBehavior | undefined; PredictiveScalingMaxCapacityBuffer?: number | undefined; PredictiveScalingMode?: PredictiveScalingMode | undefined; ScalingPolicyUpdateBehavior?: ScalingPolicyUpdateBehavior | undefined; DisableDynamicScaling?: boolean | undefined; } export interface CreateScalingPlanRequest { ScalingPlanName: string | undefined; ApplicationSource: ApplicationSource | undefined; ScalingInstructions: ScalingInstruction[] | undefined; } export interface CreateScalingPlanResponse { ScalingPlanVersion: number | undefined; } export interface DeleteScalingPlanRequest { ScalingPlanName: string | undefined; ScalingPlanVersion: number | undefined; } export interface DeleteScalingPlanResponse {} export interface DescribeScalingPlanResourcesRequest { ScalingPlanName: string | undefined; ScalingPlanVersion: number | undefined; MaxResults?: number | undefined; NextToken?: string | undefined; } export interface ScalingPolicy { PolicyName: string | undefined; PolicyType: PolicyType | undefined; TargetTrackingConfiguration?: TargetTrackingConfiguration | undefined; } export interface ScalingPlanResource { ScalingPlanName: string | undefined; ScalingPlanVersion: number | undefined; ServiceNamespace: ServiceNamespace | undefined; ResourceId: string | undefined; ScalableDimension: ScalableDimension | undefined; ScalingPolicies?: ScalingPolicy[] | undefined; ScalingStatusCode: ScalingStatusCode | undefined; ScalingStatusMessage?: string | undefined; } export interface DescribeScalingPlanResourcesResponse { ScalingPlanResources?: ScalingPlanResource[] | undefined; NextToken?: string | undefined; } export interface DescribeScalingPlansRequest { ScalingPlanNames?: string[] | undefined; ScalingPlanVersion?: number | undefined; ApplicationSources?: ApplicationSource[] | undefined; MaxResults?: number | undefined; NextToken?: string | undefined; } export interface ScalingPlan { ScalingPlanName: string | undefined; ScalingPlanVersion: number | undefined; ApplicationSource: ApplicationSource | undefined; ScalingInstructions: ScalingInstruction[] | undefined; StatusCode: ScalingPlanStatusCode | undefined; StatusMessage?: string | undefined; StatusStartTime?: Date | undefined; CreationTime?: Date | undefined; } export interface DescribeScalingPlansResponse { ScalingPlans?: ScalingPlan[] | undefined; NextToken?: string | undefined; } export interface GetScalingPlanResourceForecastDataRequest { ScalingPlanName: string | undefined; ScalingPlanVersion: number | undefined; ServiceNamespace: ServiceNamespace | undefined; ResourceId: string | undefined; ScalableDimension: ScalableDimension | undefined; ForecastDataType: ForecastDataType | undefined; StartTime: Date | undefined; EndTime: Date | undefined; } export interface Datapoint { Timestamp?: Date | undefined; Value?: number | undefined; } export interface GetScalingPlanResourceForecastDataResponse { Datapoints: Datapoint[] | undefined; } export interface UpdateScalingPlanRequest { ScalingPlanName: string | undefined; ScalingPlanVersion: number | undefined; ApplicationSource?: ApplicationSource | undefined; ScalingInstructions?: ScalingInstruction[] | undefined; } export interface UpdateScalingPlanResponse {}