-
Notifications
You must be signed in to change notification settings - Fork 17
/
CfnLoadBalancerProps.go
203 lines (200 loc) · 11.4 KB
/
CfnLoadBalancerProps.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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
package awselasticloadbalancing
import (
"github.com/aws/aws-cdk-go/awscdk/v2"
)
// Properties for defining a `CfnLoadBalancer`.
//
// 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 attributes interface{}
//
// cfnLoadBalancerProps := &CfnLoadBalancerProps{
// Listeners: []interface{}{
// &ListenersProperty{
// InstancePort: jsii.String("instancePort"),
// LoadBalancerPort: jsii.String("loadBalancerPort"),
// Protocol: jsii.String("protocol"),
//
// // the properties below are optional
// InstanceProtocol: jsii.String("instanceProtocol"),
// PolicyNames: []*string{
// jsii.String("policyNames"),
// },
// SslCertificateId: jsii.String("sslCertificateId"),
// },
// },
//
// // the properties below are optional
// AccessLoggingPolicy: &AccessLoggingPolicyProperty{
// Enabled: jsii.Boolean(false),
// S3BucketName: jsii.String("s3BucketName"),
//
// // the properties below are optional
// EmitInterval: jsii.Number(123),
// S3BucketPrefix: jsii.String("s3BucketPrefix"),
// },
// AppCookieStickinessPolicy: []interface{}{
// &AppCookieStickinessPolicyProperty{
// CookieName: jsii.String("cookieName"),
// PolicyName: jsii.String("policyName"),
// },
// },
// AvailabilityZones: []*string{
// jsii.String("availabilityZones"),
// },
// ConnectionDrainingPolicy: &ConnectionDrainingPolicyProperty{
// Enabled: jsii.Boolean(false),
//
// // the properties below are optional
// Timeout: jsii.Number(123),
// },
// ConnectionSettings: &ConnectionSettingsProperty{
// IdleTimeout: jsii.Number(123),
// },
// CrossZone: jsii.Boolean(false),
// HealthCheck: &HealthCheckProperty{
// HealthyThreshold: jsii.String("healthyThreshold"),
// Interval: jsii.String("interval"),
// Target: jsii.String("target"),
// Timeout: jsii.String("timeout"),
// UnhealthyThreshold: jsii.String("unhealthyThreshold"),
// },
// Instances: []*string{
// jsii.String("instances"),
// },
// LbCookieStickinessPolicy: []interface{}{
// &LBCookieStickinessPolicyProperty{
// CookieExpirationPeriod: jsii.String("cookieExpirationPeriod"),
// PolicyName: jsii.String("policyName"),
// },
// },
// LoadBalancerName: jsii.String("loadBalancerName"),
// Policies: []interface{}{
// &PoliciesProperty{
// Attributes: []interface{}{
// attributes,
// },
// PolicyName: jsii.String("policyName"),
// PolicyType: jsii.String("policyType"),
//
// // the properties below are optional
// InstancePorts: []*string{
// jsii.String("instancePorts"),
// },
// LoadBalancerPorts: []*string{
// jsii.String("loadBalancerPorts"),
// },
// },
// },
// Scheme: jsii.String("scheme"),
// SecurityGroups: []*string{
// jsii.String("securityGroups"),
// },
// Subnets: []*string{
// jsii.String("subnets"),
// },
// Tags: []cfnTag{
// &cfnTag{
// Key: jsii.String("key"),
// Value: jsii.String("value"),
// },
// },
// }
//
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html
//
type CfnLoadBalancerProps struct {
// The listeners for the load balancer. You can specify at most one listener per port.
//
// If you update the properties for a listener, AWS CloudFormation deletes the existing listener and creates a new one with the specified properties. While the new listener is being created, clients cannot connect to the load balancer.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-listeners
//
Listeners interface{} `field:"required" json:"listeners" yaml:"listeners"`
// Information about where and how access logs are stored for the load balancer.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-accessloggingpolicy
//
AccessLoggingPolicy interface{} `field:"optional" json:"accessLoggingPolicy" yaml:"accessLoggingPolicy"`
// Information about a policy for application-controlled session stickiness.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-appcookiestickinesspolicy
//
AppCookieStickinessPolicy interface{} `field:"optional" json:"appCookieStickinessPolicy" yaml:"appCookieStickinessPolicy"`
// The Availability Zones for the load balancer. For load balancers in a VPC, specify `Subnets` instead.
//
// Update requires replacement if you did not previously specify an Availability Zone or if you are removing all Availability Zones. Otherwise, update requires no interruption.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-availabilityzones
//
AvailabilityZones *[]*string `field:"optional" json:"availabilityZones" yaml:"availabilityZones"`
// If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance.
//
// For more information, see [Configure connection draining](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html) in the *User Guide for Classic Load Balancers* .
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-connectiondrainingpolicy
//
ConnectionDrainingPolicy interface{} `field:"optional" json:"connectionDrainingPolicy" yaml:"connectionDrainingPolicy"`
// If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration.
//
// By default, Elastic Load Balancing maintains a 60-second idle connection timeout for both front-end and back-end connections of your load balancer. For more information, see [Configure idle connection timeout](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html) in the *User Guide for Classic Load Balancers* .
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-connectionsettings
//
ConnectionSettings interface{} `field:"optional" json:"connectionSettings" yaml:"connectionSettings"`
// If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones.
//
// For more information, see [Configure cross-zone load balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html) in the *User Guide for Classic Load Balancers* .
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-crosszone
//
CrossZone interface{} `field:"optional" json:"crossZone" yaml:"crossZone"`
// The health check settings to use when evaluating the health of your EC2 instances.
//
// Update requires replacement if you did not previously specify health check settings or if you are removing the health check settings. Otherwise, update requires no interruption.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-healthcheck
//
HealthCheck interface{} `field:"optional" json:"healthCheck" yaml:"healthCheck"`
// The IDs of the instances for the load balancer.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-instances
//
Instances *[]*string `field:"optional" json:"instances" yaml:"instances"`
// Information about a policy for duration-based session stickiness.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-lbcookiestickinesspolicy
//
LbCookieStickinessPolicy interface{} `field:"optional" json:"lbCookieStickinessPolicy" yaml:"lbCookieStickinessPolicy"`
// The name of the load balancer.
//
// This name must be unique within your set of load balancers for the region.
//
// If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) . If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-loadbalancername
//
LoadBalancerName *string `field:"optional" json:"loadBalancerName" yaml:"loadBalancerName"`
// The policies defined for your Classic Load Balancer.
//
// Specify only back-end server policies.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-policies
//
Policies interface{} `field:"optional" json:"policies" yaml:"policies"`
// The type of load balancer. Valid only for load balancers in a VPC.
//
// If `Scheme` is `internet-facing` , the load balancer has a public DNS name that resolves to a public IP address.
//
// If `Scheme` is `internal` , the load balancer has a public DNS name that resolves to a private IP address.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-scheme
//
Scheme *string `field:"optional" json:"scheme" yaml:"scheme"`
// The security groups for the load balancer.
//
// Valid only for load balancers in a VPC.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-securitygroups
//
SecurityGroups *[]*string `field:"optional" json:"securityGroups" yaml:"securityGroups"`
// The IDs of the subnets for the load balancer. You can specify at most one subnet per Availability Zone.
//
// Update requires replacement if you did not previously specify a subnet or if you are removing all subnets. Otherwise, update requires no interruption. To update to a different subnet in the current Availability Zone, you must first update to a subnet in a different Availability Zone, then update to the new subnet in the original Availability Zone.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-subnets
//
Subnets *[]*string `field:"optional" json:"subnets" yaml:"subnets"`
// The tags associated with a load balancer.
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancing-loadbalancer.html#cfn-elasticloadbalancing-loadbalancer-tags
//
Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
}