-
Notifications
You must be signed in to change notification settings - Fork 17
/
CfnInstanceGroupConfigProps.go
157 lines (154 loc) · 7.38 KB
/
CfnInstanceGroupConfigProps.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
package awsemr
// Properties for defining a `CfnInstanceGroupConfig`.
//
// Example:
// // The code below shows an example of how to instantiate this type.
// // The values are placeholders you should change.
// import "github.com/aws/aws-cdk-go/awscdk"
//
// var configurationProperty_ configurationProperty
//
// cfnInstanceGroupConfigProps := &CfnInstanceGroupConfigProps{
// InstanceCount: jsii.Number(123),
// InstanceRole: jsii.String("instanceRole"),
// InstanceType: jsii.String("instanceType"),
// JobFlowId: jsii.String("jobFlowId"),
//
// // the properties below are optional
// AutoScalingPolicy: &AutoScalingPolicyProperty{
// Constraints: &ScalingConstraintsProperty{
// MaxCapacity: jsii.Number(123),
// MinCapacity: jsii.Number(123),
// },
// Rules: []interface{}{
// &ScalingRuleProperty{
// Action: &ScalingActionProperty{
// SimpleScalingPolicyConfiguration: &SimpleScalingPolicyConfigurationProperty{
// ScalingAdjustment: jsii.Number(123),
//
// // the properties below are optional
// AdjustmentType: jsii.String("adjustmentType"),
// CoolDown: jsii.Number(123),
// },
//
// // the properties below are optional
// Market: jsii.String("market"),
// },
// Name: jsii.String("name"),
// Trigger: &ScalingTriggerProperty{
// CloudWatchAlarmDefinition: &CloudWatchAlarmDefinitionProperty{
// ComparisonOperator: jsii.String("comparisonOperator"),
// MetricName: jsii.String("metricName"),
// Period: jsii.Number(123),
// Threshold: jsii.Number(123),
//
// // the properties below are optional
// Dimensions: []interface{}{
// &MetricDimensionProperty{
// Key: jsii.String("key"),
// Value: jsii.String("value"),
// },
// },
// EvaluationPeriods: jsii.Number(123),
// Namespace: jsii.String("namespace"),
// Statistic: jsii.String("statistic"),
// Unit: jsii.String("unit"),
// },
// },
//
// // the properties below are optional
// Description: jsii.String("description"),
// },
// },
// },
// BidPrice: jsii.String("bidPrice"),
// Configurations: []interface{}{
// &configurationProperty{
// Classification: jsii.String("classification"),
// ConfigurationProperties: map[string]*string{
// "configurationPropertiesKey": jsii.String("configurationProperties"),
// },
// Configurations: []interface{}{
// configurationProperty_,
// },
// },
// },
// CustomAmiId: jsii.String("customAmiId"),
// EbsConfiguration: &EbsConfigurationProperty{
// EbsBlockDeviceConfigs: []interface{}{
// &EbsBlockDeviceConfigProperty{
// VolumeSpecification: &VolumeSpecificationProperty{
// SizeInGb: jsii.Number(123),
// VolumeType: jsii.String("volumeType"),
//
// // the properties below are optional
// Iops: jsii.Number(123),
// Throughput: jsii.Number(123),
// },
//
// // the properties below are optional
// VolumesPerInstance: jsii.Number(123),
// },
// },
// EbsOptimized: jsii.Boolean(false),
// },
// Market: jsii.String("market"),
// Name: jsii.String("name"),
// }
//
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html
//
type CfnInstanceGroupConfigProps struct {
// Target number of instances for the instance group.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-instancecount
//
InstanceCount *float64 `field:"required" json:"instanceCount" yaml:"instanceCount"`
// The role of the instance group in the cluster.
//
// *Allowed Values* : TASK.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-instancerole
//
InstanceRole *string `field:"required" json:"instanceRole" yaml:"instanceRole"`
// The Amazon EC2 instance type for all instances in the instance group.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-instancetype
//
InstanceType *string `field:"required" json:"instanceType" yaml:"instanceType"`
// The ID of an Amazon EMR cluster that you want to associate this instance group with.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-jobflowid
//
JobFlowId *string `field:"required" json:"jobFlowId" yaml:"jobFlowId"`
// `AutoScalingPolicy` is a subproperty of `InstanceGroupConfig` .
//
// `AutoScalingPolicy` defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric. For more information, see [Using Automatic Scaling in Amazon EMR](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-automatic-scaling.html) in the *Amazon EMR Management Guide* .
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-autoscalingpolicy
//
AutoScalingPolicy interface{} `field:"optional" json:"autoScalingPolicy" yaml:"autoScalingPolicy"`
// If specified, indicates that the instance group uses Spot Instances.
//
// This is the maximum price you are willing to pay for Spot Instances. Specify `OnDemandPrice` to set the amount equal to the On-Demand price, or specify an amount in USD.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-bidprice
//
BidPrice *string `field:"optional" json:"bidPrice" yaml:"bidPrice"`
// > Amazon EMR releases 4.x or later.
//
// The list of configurations supplied for an Amazon EMR cluster instance group. You can specify a separate configuration for each instance group (master, core, and task).
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-configurations
//
Configurations interface{} `field:"optional" json:"configurations" yaml:"configurations"`
// The custom AMI ID to use for the provisioned instance group.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-customamiid
//
CustomAmiId *string `field:"optional" json:"customAmiId" yaml:"customAmiId"`
// `EbsConfiguration` determines the EBS volumes to attach to EMR cluster instances.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-ebsconfiguration
//
EbsConfiguration interface{} `field:"optional" json:"ebsConfiguration" yaml:"ebsConfiguration"`
// Market type of the Amazon EC2 instances used to create a cluster node.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-market
//
Market *string `field:"optional" json:"market" yaml:"market"`
// Friendly name given to the instance group.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-name
//
Name *string `field:"optional" json:"name" yaml:"name"`
}