@nolanrigo/cloudformation
Version:
TypeScript-based imperative way to define AWS CloudFormation templates
101 lines (100 loc) • 3.7 kB
TypeScript
import { ResourceBase } from "../../resource";
import { Value, List, MapOf } from "../../data-types";
export declare class ScalingTrigger {
CloudWatchAlarmDefinition: CloudWatchAlarmDefinition;
constructor(properties: ScalingTrigger);
}
export declare class Configuration {
Classification?: Value<string>;
ConfigurationProperties?: MapOf<Value<string>>;
Configurations?: List<Configuration>;
constructor(properties: Configuration);
}
export declare class MetricDimension {
Key: Value<string>;
Value: Value<string>;
constructor(properties: MetricDimension);
}
export declare class ScalingAction {
Market?: Value<string>;
SimpleScalingPolicyConfiguration: SimpleScalingPolicyConfiguration;
constructor(properties: ScalingAction);
}
export declare class EbsConfiguration {
EbsBlockDeviceConfigs?: List<EbsBlockDeviceConfig>;
EbsOptimized?: Value<boolean>;
constructor(properties: EbsConfiguration);
}
export declare class ScalingRule {
Action: ScalingAction;
Description?: Value<string>;
Name: Value<string>;
Trigger: ScalingTrigger;
constructor(properties: ScalingRule);
}
export declare class VolumeSpecification {
Iops?: Value<number>;
SizeInGB: Value<number>;
VolumeType: Value<string>;
constructor(properties: VolumeSpecification);
}
export declare class AutoScalingPolicy {
Constraints: ScalingConstraints;
Rules: List<ScalingRule>;
constructor(properties: AutoScalingPolicy);
}
export declare class CloudWatchAlarmDefinition {
Period: Value<number>;
Unit?: Value<string>;
Threshold: Value<number>;
Dimensions?: List<MetricDimension>;
ComparisonOperator: Value<string>;
Statistic?: Value<string>;
EvaluationPeriods?: Value<number>;
MetricName: Value<string>;
Namespace?: Value<string>;
constructor(properties: CloudWatchAlarmDefinition);
}
export declare class SimpleScalingPolicyConfiguration {
AdjustmentType?: Value<string>;
CoolDown?: Value<number>;
ScalingAdjustment: Value<number>;
constructor(properties: SimpleScalingPolicyConfiguration);
}
export declare class ScalingConstraints {
MaxCapacity: Value<number>;
MinCapacity: Value<number>;
constructor(properties: ScalingConstraints);
}
export declare class EbsBlockDeviceConfig {
VolumeSpecification: VolumeSpecification;
VolumesPerInstance?: Value<number>;
constructor(properties: EbsBlockDeviceConfig);
}
export interface InstanceGroupConfigProperties {
EbsConfiguration?: EbsConfiguration;
JobFlowId: Value<string>;
AutoScalingPolicy?: AutoScalingPolicy;
Name?: Value<string>;
InstanceRole: Value<string>;
BidPrice?: Value<string>;
InstanceType: Value<string>;
InstanceCount: Value<number>;
Market?: Value<string>;
Configurations?: List<Configuration>;
}
export default class Inner_InstanceGroupConfig extends ResourceBase<InstanceGroupConfigProperties> {
static ScalingTrigger: typeof ScalingTrigger;
static Configuration: typeof Configuration;
static MetricDimension: typeof MetricDimension;
static ScalingAction: typeof ScalingAction;
static EbsConfiguration: typeof EbsConfiguration;
static ScalingRule: typeof ScalingRule;
static VolumeSpecification: typeof VolumeSpecification;
static AutoScalingPolicy: typeof AutoScalingPolicy;
static CloudWatchAlarmDefinition: typeof CloudWatchAlarmDefinition;
static SimpleScalingPolicyConfiguration: typeof SimpleScalingPolicyConfiguration;
static ScalingConstraints: typeof ScalingConstraints;
static EbsBlockDeviceConfig: typeof EbsBlockDeviceConfig;
constructor(properties: InstanceGroupConfigProperties);
}