@pulumi/aws 6.0.0-alpha.3 → 6.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/applicationloadbalancing/index.d.ts +0 -27
  2. package/applicationloadbalancing/index.js +1 -51
  3. package/applicationloadbalancing/index.js.map +1 -1
  4. package/appmesh/virtualGateway.d.ts +23 -2
  5. package/appmesh/virtualGateway.js +23 -2
  6. package/appmesh/virtualGateway.js.map +1 -1
  7. package/appmesh/virtualNode.d.ts +8 -8
  8. package/appmesh/virtualNode.js +8 -8
  9. package/appmesh/virtualRouter.d.ts +2 -2
  10. package/appmesh/virtualRouter.js +2 -2
  11. package/appsync/dataSource.d.ts +18 -18
  12. package/cloudtrail/index.d.ts +0 -3
  13. package/cloudtrail/index.js +1 -4
  14. package/cloudtrail/index.js.map +1 -1
  15. package/ec2/fleet.d.ts +5 -5
  16. package/ec2/fleet.js +6 -6
  17. package/ec2/fleet.js.map +1 -1
  18. package/ec2/index.d.ts +0 -3
  19. package/ec2/index.js +2 -7
  20. package/ec2/index.js.map +1 -1
  21. package/ec2/securityGroup.d.ts +14 -0
  22. package/ec2/securityGroup.js +14 -0
  23. package/ec2/securityGroup.js.map +1 -1
  24. package/fms/policy.d.ts +2 -0
  25. package/fms/policy.js +2 -0
  26. package/fms/policy.js.map +1 -1
  27. package/iam/{getOpenidConnectProvider.d.ts → getOpenIdConnectProvider.d.ts} +12 -12
  28. package/iam/{getOpenidConnectProvider.js → getOpenIdConnectProvider.js} +12 -12
  29. package/iam/{getOpenidConnectProvider.js.map → getOpenIdConnectProvider.js.map} +1 -1
  30. package/iam/index.d.ts +3 -3
  31. package/iam/index.js +4 -4
  32. package/iam/virtualMfaDevice.d.ts +22 -2
  33. package/iam/virtualMfaDevice.js +8 -0
  34. package/iam/virtualMfaDevice.js.map +1 -1
  35. package/index.d.ts +1 -21
  36. package/index.js +5 -27
  37. package/index.js.map +1 -1
  38. package/iot/topicRule.d.ts +35 -35
  39. package/iot/topicRule.js +16 -16
  40. package/iot/topicRule.js.map +1 -1
  41. package/kendra/dataSource.d.ts +32 -9
  42. package/kendra/dataSource.js +23 -0
  43. package/kendra/dataSource.js.map +1 -1
  44. package/kinesis/firehoseDeliveryStream.d.ts +89 -0
  45. package/kinesis/firehoseDeliveryStream.js +89 -0
  46. package/kinesis/firehoseDeliveryStream.js.map +1 -1
  47. package/opensearch/serverlessSecurityPolicy.d.ts +122 -8
  48. package/opensearch/serverlessSecurityPolicy.js +122 -8
  49. package/opensearch/serverlessSecurityPolicy.js.map +1 -1
  50. package/package.json +2 -2
  51. package/package.json.dev +2 -2
  52. package/rds/instance.d.ts +0 -9
  53. package/rds/instance.js.map +1 -1
  54. package/securityhub/standardsControl.d.ts +3 -3
  55. package/ses/index.d.ts +0 -3
  56. package/ses/index.js +1 -6
  57. package/ses/index.js.map +1 -1
  58. package/ssm/getParameter.d.ts +1 -0
  59. package/ssm/getParameter.js.map +1 -1
  60. package/types/input.d.ts +1302 -2573
  61. package/types/output.d.ts +4459 -5933
  62. package/utils.d.ts +0 -1
  63. package/utils.js +0 -6
  64. package/utils.js.map +1 -1
  65. package/wafv2/getIpSet.d.ts +1 -1
  66. package/wafv2/ipSet.d.ts +3 -3
  67. package/wafv2/regexPatternSet.d.ts +3 -3
  68. package/applicationloadbalancing/getListener.d.ts +0 -120
  69. package/applicationloadbalancing/getListener.js +0 -80
  70. package/applicationloadbalancing/getListener.js.map +0 -1
  71. package/applicationloadbalancing/getLoadBalancer.d.ts +0 -133
  72. package/applicationloadbalancing/getLoadBalancer.js +0 -73
  73. package/applicationloadbalancing/getLoadBalancer.js.map +0 -1
  74. package/applicationloadbalancing/getTargetGroup.d.ts +0 -126
  75. package/applicationloadbalancing/getTargetGroup.js +0 -73
  76. package/applicationloadbalancing/getTargetGroup.js.map +0 -1
  77. package/applicationloadbalancing/listener.d.ts +0 -377
  78. package/applicationloadbalancing/listener.js +0 -276
  79. package/applicationloadbalancing/listener.js.map +0 -1
  80. package/applicationloadbalancing/listenerCertificate.d.ts +0 -96
  81. package/applicationloadbalancing/listenerCertificate.js +0 -95
  82. package/applicationloadbalancing/listenerCertificate.js.map +0 -1
  83. package/applicationloadbalancing/listenerRule.d.ts +0 -301
  84. package/applicationloadbalancing/listenerRule.js +0 -249
  85. package/applicationloadbalancing/listenerRule.js.map +0 -1
  86. package/applicationloadbalancing/loadBalancer.d.ts +0 -463
  87. package/applicationloadbalancing/loadBalancer.js +0 -201
  88. package/applicationloadbalancing/loadBalancer.js.map +0 -1
  89. package/applicationloadbalancing/targetGroup.d.ts +0 -402
  90. package/applicationloadbalancing/targetGroup.js +0 -161
  91. package/applicationloadbalancing/targetGroup.js.map +0 -1
  92. package/applicationloadbalancing/targetGroupAttachment.d.ts +0 -142
  93. package/applicationloadbalancing/targetGroupAttachment.js +0 -115
  94. package/applicationloadbalancing/targetGroupAttachment.js.map +0 -1
  95. package/awsMixins.d.ts +0 -21
  96. package/awsMixins.js +0 -40
  97. package/awsMixins.js.map +0 -1
  98. package/cloudtrail/getFunction.d.ts +0 -102
  99. package/cloudtrail/getFunction.js +0 -55
  100. package/cloudtrail/getFunction.js.map +0 -1
  101. package/ec2/transitGatewayPeeringAttachmentAccepter.d.ts +0 -132
  102. package/ec2/transitGatewayPeeringAttachmentAccepter.js +0 -94
  103. package/ec2/transitGatewayPeeringAttachmentAccepter.js.map +0 -1
  104. package/elasticloadbalancing/appCookieStickinessPolicy.d.ts +0 -129
  105. package/elasticloadbalancing/appCookieStickinessPolicy.js +0 -102
  106. package/elasticloadbalancing/appCookieStickinessPolicy.js.map +0 -1
  107. package/elasticloadbalancing/attachment.d.ts +0 -86
  108. package/elasticloadbalancing/attachment.js +0 -85
  109. package/elasticloadbalancing/attachment.js.map +0 -1
  110. package/elasticloadbalancing/getHostedZoneId.d.ts +0 -81
  111. package/elasticloadbalancing/getHostedZoneId.js +0 -69
  112. package/elasticloadbalancing/getHostedZoneId.js.map +0 -1
  113. package/elasticloadbalancing/getLoadBalancer.d.ts +0 -105
  114. package/elasticloadbalancing/getLoadBalancer.js +0 -67
  115. package/elasticloadbalancing/getLoadBalancer.js.map +0 -1
  116. package/elasticloadbalancing/getServiceAccount.d.ts +0 -135
  117. package/elasticloadbalancing/getServiceAccount.js +0 -119
  118. package/elasticloadbalancing/getServiceAccount.js.map +0 -1
  119. package/elasticloadbalancing/index.d.ts +0 -33
  120. package/elasticloadbalancing/index.js +0 -66
  121. package/elasticloadbalancing/index.js.map +0 -1
  122. package/elasticloadbalancing/listenerPolicy.d.ts +0 -176
  123. package/elasticloadbalancing/listenerPolicy.js +0 -149
  124. package/elasticloadbalancing/listenerPolicy.js.map +0 -1
  125. package/elasticloadbalancing/loadBalancer.d.ts +0 -398
  126. package/elasticloadbalancing/loadBalancer.js +0 -177
  127. package/elasticloadbalancing/loadBalancer.js.map +0 -1
  128. package/elasticloadbalancing/loadBalancerBackendServerPolicy.d.ts +0 -123
  129. package/elasticloadbalancing/loadBalancerBackendServerPolicy.js +0 -112
  130. package/elasticloadbalancing/loadBalancerBackendServerPolicy.js.map +0 -1
  131. package/elasticloadbalancing/loadBalancerCookieStickinessPolicy.d.ts +0 -124
  132. package/elasticloadbalancing/loadBalancerCookieStickinessPolicy.js +0 -91
  133. package/elasticloadbalancing/loadBalancerCookieStickinessPolicy.js.map +0 -1
  134. package/elasticloadbalancing/loadBalancerPolicy.d.ts +0 -166
  135. package/elasticloadbalancing/loadBalancerPolicy.js +0 -146
  136. package/elasticloadbalancing/loadBalancerPolicy.js.map +0 -1
  137. package/elasticloadbalancing/sslNegotiationPolicy.d.ts +0 -183
  138. package/elasticloadbalancing/sslNegotiationPolicy.js +0 -123
  139. package/elasticloadbalancing/sslNegotiationPolicy.js.map +0 -1
  140. package/elasticloadbalancingv2/getListener.d.ts +0 -120
  141. package/elasticloadbalancingv2/getListener.js +0 -80
  142. package/elasticloadbalancingv2/getListener.js.map +0 -1
  143. package/elasticloadbalancingv2/getLoadBalancer.d.ts +0 -133
  144. package/elasticloadbalancingv2/getLoadBalancer.js +0 -73
  145. package/elasticloadbalancingv2/getLoadBalancer.js.map +0 -1
  146. package/elasticloadbalancingv2/getTargetGroup.d.ts +0 -126
  147. package/elasticloadbalancingv2/getTargetGroup.js +0 -73
  148. package/elasticloadbalancingv2/getTargetGroup.js.map +0 -1
  149. package/elasticloadbalancingv2/index.d.ts +0 -27
  150. package/elasticloadbalancingv2/index.js +0 -56
  151. package/elasticloadbalancingv2/index.js.map +0 -1
  152. package/elasticloadbalancingv2/listener.d.ts +0 -377
  153. package/elasticloadbalancingv2/listener.js +0 -276
  154. package/elasticloadbalancingv2/listener.js.map +0 -1
  155. package/elasticloadbalancingv2/listenerCertificate.d.ts +0 -96
  156. package/elasticloadbalancingv2/listenerCertificate.js +0 -95
  157. package/elasticloadbalancingv2/listenerCertificate.js.map +0 -1
  158. package/elasticloadbalancingv2/listenerRule.d.ts +0 -301
  159. package/elasticloadbalancingv2/listenerRule.js +0 -249
  160. package/elasticloadbalancingv2/listenerRule.js.map +0 -1
  161. package/elasticloadbalancingv2/loadBalancer.d.ts +0 -462
  162. package/elasticloadbalancingv2/loadBalancer.js +0 -201
  163. package/elasticloadbalancingv2/loadBalancer.js.map +0 -1
  164. package/elasticloadbalancingv2/targetGroup.d.ts +0 -402
  165. package/elasticloadbalancingv2/targetGroup.js +0 -161
  166. package/elasticloadbalancingv2/targetGroup.js.map +0 -1
  167. package/elasticloadbalancingv2/targetGroupAttachment.d.ts +0 -142
  168. package/elasticloadbalancingv2/targetGroupAttachment.js +0 -115
  169. package/elasticloadbalancingv2/targetGroupAttachment.js.map +0 -1
  170. package/getAmi.d.ts +0 -331
  171. package/getAmi.js +0 -93
  172. package/getAmi.js.map +0 -1
  173. package/getAmiIds.d.ts +0 -135
  174. package/getAmiIds.js +0 -63
  175. package/getAmiIds.js.map +0 -1
  176. package/getAutoscalingGroups.d.ts +0 -119
  177. package/getAutoscalingGroups.js +0 -92
  178. package/getAutoscalingGroups.js.map +0 -1
  179. package/getCanonicalUserId.d.ts +0 -32
  180. package/getCanonicalUserId.js +0 -31
  181. package/getCanonicalUserId.js.map +0 -1
  182. package/getElasticIp.d.ts +0 -221
  183. package/getElasticIp.js +0 -126
  184. package/getElasticIp.js.map +0 -1
  185. package/getPrefixList.d.ts +0 -160
  186. package/getPrefixList.js +0 -125
  187. package/getPrefixList.js.map +0 -1
  188. package/ses/confgurationSet.d.ts +0 -153
  189. package/ses/confgurationSet.js +0 -96
  190. package/ses/confgurationSet.js.map +0 -1
@@ -1,377 +0,0 @@
1
- import * as pulumi from "@pulumi/pulumi";
2
- import * as inputs from "../types/input";
3
- import * as outputs from "../types/output";
4
- /**
5
- * Provides a Load Balancer Listener resource.
6
- *
7
- * > **Note:** `aws.alb.Listener` is known as `aws.lb.Listener`. The functionality is identical.
8
- *
9
- * ## Example Usage
10
- * ### Forward Action
11
- *
12
- * ```typescript
13
- * import * as pulumi from "@pulumi/pulumi";
14
- * import * as aws from "@pulumi/aws";
15
- *
16
- * const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {});
17
- * // ...
18
- * const frontEndTargetGroup = new aws.lb.TargetGroup("frontEndTargetGroup", {});
19
- * // ...
20
- * const frontEndListener = new aws.lb.Listener("frontEndListener", {
21
- * loadBalancerArn: frontEndLoadBalancer.arn,
22
- * port: 443,
23
- * protocol: "HTTPS",
24
- * sslPolicy: "ELBSecurityPolicy-2016-08",
25
- * certificateArn: "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4",
26
- * defaultActions: [{
27
- * type: "forward",
28
- * targetGroupArn: frontEndTargetGroup.arn,
29
- * }],
30
- * });
31
- * ```
32
- *
33
- * To a NLB:
34
- *
35
- * ```typescript
36
- * import * as pulumi from "@pulumi/pulumi";
37
- * import * as aws from "@pulumi/aws";
38
- *
39
- * const frontEnd = new aws.lb.Listener("frontEnd", {
40
- * loadBalancerArn: aws_lb.front_end.arn,
41
- * port: 443,
42
- * protocol: "TLS",
43
- * certificateArn: "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4",
44
- * alpnPolicy: "HTTP2Preferred",
45
- * defaultActions: [{
46
- * type: "forward",
47
- * targetGroupArn: aws_lb_target_group.front_end.arn,
48
- * }],
49
- * });
50
- * ```
51
- * ### Redirect Action
52
- *
53
- * ```typescript
54
- * import * as pulumi from "@pulumi/pulumi";
55
- * import * as aws from "@pulumi/aws";
56
- *
57
- * const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {});
58
- * // ...
59
- * const frontEndListener = new aws.lb.Listener("frontEndListener", {
60
- * loadBalancerArn: frontEndLoadBalancer.arn,
61
- * port: 80,
62
- * protocol: "HTTP",
63
- * defaultActions: [{
64
- * type: "redirect",
65
- * redirect: {
66
- * port: "443",
67
- * protocol: "HTTPS",
68
- * statusCode: "HTTP_301",
69
- * },
70
- * }],
71
- * });
72
- * ```
73
- * ### Fixed-response Action
74
- *
75
- * ```typescript
76
- * import * as pulumi from "@pulumi/pulumi";
77
- * import * as aws from "@pulumi/aws";
78
- *
79
- * const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {});
80
- * // ...
81
- * const frontEndListener = new aws.lb.Listener("frontEndListener", {
82
- * loadBalancerArn: frontEndLoadBalancer.arn,
83
- * port: 80,
84
- * protocol: "HTTP",
85
- * defaultActions: [{
86
- * type: "fixed-response",
87
- * fixedResponse: {
88
- * contentType: "text/plain",
89
- * messageBody: "Fixed response content",
90
- * statusCode: "200",
91
- * },
92
- * }],
93
- * });
94
- * ```
95
- * ### Authenticate-cognito Action
96
- *
97
- * ```typescript
98
- * import * as pulumi from "@pulumi/pulumi";
99
- * import * as aws from "@pulumi/aws";
100
- *
101
- * const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {});
102
- * // ...
103
- * const frontEndTargetGroup = new aws.lb.TargetGroup("frontEndTargetGroup", {});
104
- * // ...
105
- * const pool = new aws.cognito.UserPool("pool", {});
106
- * // ...
107
- * const client = new aws.cognito.UserPoolClient("client", {});
108
- * // ...
109
- * const domain = new aws.cognito.UserPoolDomain("domain", {});
110
- * // ...
111
- * const frontEndListener = new aws.lb.Listener("frontEndListener", {
112
- * loadBalancerArn: frontEndLoadBalancer.arn,
113
- * port: 80,
114
- * protocol: "HTTP",
115
- * defaultActions: [
116
- * {
117
- * type: "authenticate-cognito",
118
- * authenticateCognito: {
119
- * userPoolArn: pool.arn,
120
- * userPoolClientId: client.id,
121
- * userPoolDomain: domain.domain,
122
- * },
123
- * },
124
- * {
125
- * type: "forward",
126
- * targetGroupArn: frontEndTargetGroup.arn,
127
- * },
128
- * ],
129
- * });
130
- * ```
131
- * ### Authenticate-OIDC Action
132
- *
133
- * ```typescript
134
- * import * as pulumi from "@pulumi/pulumi";
135
- * import * as aws from "@pulumi/aws";
136
- *
137
- * const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {});
138
- * // ...
139
- * const frontEndTargetGroup = new aws.lb.TargetGroup("frontEndTargetGroup", {});
140
- * // ...
141
- * const frontEndListener = new aws.lb.Listener("frontEndListener", {
142
- * loadBalancerArn: frontEndLoadBalancer.arn,
143
- * port: 80,
144
- * protocol: "HTTP",
145
- * defaultActions: [
146
- * {
147
- * type: "authenticate-oidc",
148
- * authenticateOidc: {
149
- * authorizationEndpoint: "https://example.com/authorization_endpoint",
150
- * clientId: "client_id",
151
- * clientSecret: "client_secret",
152
- * issuer: "https://example.com",
153
- * tokenEndpoint: "https://example.com/token_endpoint",
154
- * userInfoEndpoint: "https://example.com/user_info_endpoint",
155
- * },
156
- * },
157
- * {
158
- * type: "forward",
159
- * targetGroupArn: frontEndTargetGroup.arn,
160
- * },
161
- * ],
162
- * });
163
- * ```
164
- * ### Gateway Load Balancer Listener
165
- *
166
- * ```typescript
167
- * import * as pulumi from "@pulumi/pulumi";
168
- * import * as aws from "@pulumi/aws";
169
- *
170
- * const exampleLoadBalancer = new aws.lb.LoadBalancer("exampleLoadBalancer", {
171
- * loadBalancerType: "gateway",
172
- * subnetMappings: [{
173
- * subnetId: aws_subnet.example.id,
174
- * }],
175
- * });
176
- * const exampleTargetGroup = new aws.lb.TargetGroup("exampleTargetGroup", {
177
- * port: 6081,
178
- * protocol: "GENEVE",
179
- * vpcId: aws_vpc.example.id,
180
- * healthCheck: {
181
- * port: "80",
182
- * protocol: "HTTP",
183
- * },
184
- * });
185
- * const exampleListener = new aws.lb.Listener("exampleListener", {
186
- * loadBalancerArn: exampleLoadBalancer.id,
187
- * defaultActions: [{
188
- * targetGroupArn: exampleTargetGroup.id,
189
- * type: "forward",
190
- * }],
191
- * });
192
- * ```
193
- *
194
- * ## Import
195
- *
196
- * Listeners can be imported using their ARN, e.g.,
197
- *
198
- * ```sh
199
- * $ pulumi import aws:elasticloadbalancingv2/listener:Listener front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96
200
- * ```
201
- *
202
- * @deprecated aws.elasticloadbalancingv2.Listener has been deprecated in favor of aws.lb.Listener
203
- */
204
- export declare class Listener extends pulumi.CustomResource {
205
- /**
206
- * Get an existing Listener resource's state with the given name, ID, and optional extra
207
- * properties used to qualify the lookup.
208
- *
209
- * @param name The _unique_ name of the resulting resource.
210
- * @param id The _unique_ provider ID of the resource to lookup.
211
- * @param state Any extra arguments used during the lookup.
212
- * @param opts Optional settings to control the behavior of the CustomResource.
213
- */
214
- static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ListenerState, opts?: pulumi.CustomResourceOptions): Listener;
215
- /**
216
- * Returns true if the given object is an instance of Listener. This is designed to work even
217
- * when multiple copies of the Pulumi SDK have been loaded into the same process.
218
- */
219
- static isInstance(obj: any): obj is Listener;
220
- /**
221
- * Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if `protocol` is `TLS`. Valid values are `HTTP1Only`, `HTTP2Only`, `HTTP2Optional`, `HTTP2Preferred`, and `None`.
222
- */
223
- readonly alpnPolicy: pulumi.Output<string | undefined>;
224
- /**
225
- * ARN of the target group.
226
- *
227
- * The following arguments are optional:
228
- */
229
- readonly arn: pulumi.Output<string>;
230
- /**
231
- * ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the `aws.lb.ListenerCertificate` resource.
232
- */
233
- readonly certificateArn: pulumi.Output<string | undefined>;
234
- /**
235
- * Configuration block for default actions. Detailed below.
236
- */
237
- readonly defaultActions: pulumi.Output<outputs.elasticloadbalancingv2.ListenerDefaultAction[]>;
238
- /**
239
- * ARN of the load balancer.
240
- *
241
- * The following arguments are optional:
242
- */
243
- readonly loadBalancerArn: pulumi.Output<string>;
244
- /**
245
- * Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
246
- */
247
- readonly port: pulumi.Output<number | undefined>;
248
- /**
249
- * Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
250
- */
251
- readonly protocol: pulumi.Output<string>;
252
- /**
253
- * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`.
254
- */
255
- readonly sslPolicy: pulumi.Output<string>;
256
- /**
257
- * A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
258
- *
259
- * > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol.
260
- */
261
- readonly tags: pulumi.Output<{
262
- [key: string]: string;
263
- } | undefined>;
264
- /**
265
- * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
266
- */
267
- readonly tagsAll: pulumi.Output<{
268
- [key: string]: string;
269
- }>;
270
- /**
271
- * Create a Listener resource with the given unique name, arguments, and options.
272
- *
273
- * @param name The _unique_ name of the resource.
274
- * @param args The arguments to use to populate this resource's properties.
275
- * @param opts A bag of options that control this resource's behavior.
276
- */
277
- /** @deprecated aws.elasticloadbalancingv2.Listener has been deprecated in favor of aws.lb.Listener */
278
- constructor(name: string, args: ListenerArgs, opts?: pulumi.CustomResourceOptions);
279
- }
280
- /**
281
- * Input properties used for looking up and filtering Listener resources.
282
- */
283
- export interface ListenerState {
284
- /**
285
- * Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if `protocol` is `TLS`. Valid values are `HTTP1Only`, `HTTP2Only`, `HTTP2Optional`, `HTTP2Preferred`, and `None`.
286
- */
287
- alpnPolicy?: pulumi.Input<string>;
288
- /**
289
- * ARN of the target group.
290
- *
291
- * The following arguments are optional:
292
- */
293
- arn?: pulumi.Input<string>;
294
- /**
295
- * ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the `aws.lb.ListenerCertificate` resource.
296
- */
297
- certificateArn?: pulumi.Input<string>;
298
- /**
299
- * Configuration block for default actions. Detailed below.
300
- */
301
- defaultActions?: pulumi.Input<pulumi.Input<inputs.elasticloadbalancingv2.ListenerDefaultAction>[]>;
302
- /**
303
- * ARN of the load balancer.
304
- *
305
- * The following arguments are optional:
306
- */
307
- loadBalancerArn?: pulumi.Input<string>;
308
- /**
309
- * Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
310
- */
311
- port?: pulumi.Input<number>;
312
- /**
313
- * Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
314
- */
315
- protocol?: pulumi.Input<string>;
316
- /**
317
- * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`.
318
- */
319
- sslPolicy?: pulumi.Input<string>;
320
- /**
321
- * A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
322
- *
323
- * > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol.
324
- */
325
- tags?: pulumi.Input<{
326
- [key: string]: pulumi.Input<string>;
327
- }>;
328
- /**
329
- * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
330
- */
331
- tagsAll?: pulumi.Input<{
332
- [key: string]: pulumi.Input<string>;
333
- }>;
334
- }
335
- /**
336
- * The set of arguments for constructing a Listener resource.
337
- */
338
- export interface ListenerArgs {
339
- /**
340
- * Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if `protocol` is `TLS`. Valid values are `HTTP1Only`, `HTTP2Only`, `HTTP2Optional`, `HTTP2Preferred`, and `None`.
341
- */
342
- alpnPolicy?: pulumi.Input<string>;
343
- /**
344
- * ARN of the default SSL server certificate. Exactly one certificate is required if the protocol is HTTPS. For adding additional SSL certificates, see the `aws.lb.ListenerCertificate` resource.
345
- */
346
- certificateArn?: pulumi.Input<string>;
347
- /**
348
- * Configuration block for default actions. Detailed below.
349
- */
350
- defaultActions: pulumi.Input<pulumi.Input<inputs.elasticloadbalancingv2.ListenerDefaultAction>[]>;
351
- /**
352
- * ARN of the load balancer.
353
- *
354
- * The following arguments are optional:
355
- */
356
- loadBalancerArn: pulumi.Input<string>;
357
- /**
358
- * Port on which the load balancer is listening. Not valid for Gateway Load Balancers.
359
- */
360
- port?: pulumi.Input<number>;
361
- /**
362
- * Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers.
363
- */
364
- protocol?: pulumi.Input<string>;
365
- /**
366
- * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`.
367
- */
368
- sslPolicy?: pulumi.Input<string>;
369
- /**
370
- * A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
371
- *
372
- * > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol.
373
- */
374
- tags?: pulumi.Input<{
375
- [key: string]: pulumi.Input<string>;
376
- }>;
377
- }
@@ -1,276 +0,0 @@
1
- "use strict";
2
- // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
- // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.Listener = void 0;
6
- const pulumi = require("@pulumi/pulumi");
7
- const utilities = require("../utilities");
8
- /**
9
- * Provides a Load Balancer Listener resource.
10
- *
11
- * > **Note:** `aws.alb.Listener` is known as `aws.lb.Listener`. The functionality is identical.
12
- *
13
- * ## Example Usage
14
- * ### Forward Action
15
- *
16
- * ```typescript
17
- * import * as pulumi from "@pulumi/pulumi";
18
- * import * as aws from "@pulumi/aws";
19
- *
20
- * const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {});
21
- * // ...
22
- * const frontEndTargetGroup = new aws.lb.TargetGroup("frontEndTargetGroup", {});
23
- * // ...
24
- * const frontEndListener = new aws.lb.Listener("frontEndListener", {
25
- * loadBalancerArn: frontEndLoadBalancer.arn,
26
- * port: 443,
27
- * protocol: "HTTPS",
28
- * sslPolicy: "ELBSecurityPolicy-2016-08",
29
- * certificateArn: "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4",
30
- * defaultActions: [{
31
- * type: "forward",
32
- * targetGroupArn: frontEndTargetGroup.arn,
33
- * }],
34
- * });
35
- * ```
36
- *
37
- * To a NLB:
38
- *
39
- * ```typescript
40
- * import * as pulumi from "@pulumi/pulumi";
41
- * import * as aws from "@pulumi/aws";
42
- *
43
- * const frontEnd = new aws.lb.Listener("frontEnd", {
44
- * loadBalancerArn: aws_lb.front_end.arn,
45
- * port: 443,
46
- * protocol: "TLS",
47
- * certificateArn: "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4",
48
- * alpnPolicy: "HTTP2Preferred",
49
- * defaultActions: [{
50
- * type: "forward",
51
- * targetGroupArn: aws_lb_target_group.front_end.arn,
52
- * }],
53
- * });
54
- * ```
55
- * ### Redirect Action
56
- *
57
- * ```typescript
58
- * import * as pulumi from "@pulumi/pulumi";
59
- * import * as aws from "@pulumi/aws";
60
- *
61
- * const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {});
62
- * // ...
63
- * const frontEndListener = new aws.lb.Listener("frontEndListener", {
64
- * loadBalancerArn: frontEndLoadBalancer.arn,
65
- * port: 80,
66
- * protocol: "HTTP",
67
- * defaultActions: [{
68
- * type: "redirect",
69
- * redirect: {
70
- * port: "443",
71
- * protocol: "HTTPS",
72
- * statusCode: "HTTP_301",
73
- * },
74
- * }],
75
- * });
76
- * ```
77
- * ### Fixed-response Action
78
- *
79
- * ```typescript
80
- * import * as pulumi from "@pulumi/pulumi";
81
- * import * as aws from "@pulumi/aws";
82
- *
83
- * const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {});
84
- * // ...
85
- * const frontEndListener = new aws.lb.Listener("frontEndListener", {
86
- * loadBalancerArn: frontEndLoadBalancer.arn,
87
- * port: 80,
88
- * protocol: "HTTP",
89
- * defaultActions: [{
90
- * type: "fixed-response",
91
- * fixedResponse: {
92
- * contentType: "text/plain",
93
- * messageBody: "Fixed response content",
94
- * statusCode: "200",
95
- * },
96
- * }],
97
- * });
98
- * ```
99
- * ### Authenticate-cognito Action
100
- *
101
- * ```typescript
102
- * import * as pulumi from "@pulumi/pulumi";
103
- * import * as aws from "@pulumi/aws";
104
- *
105
- * const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {});
106
- * // ...
107
- * const frontEndTargetGroup = new aws.lb.TargetGroup("frontEndTargetGroup", {});
108
- * // ...
109
- * const pool = new aws.cognito.UserPool("pool", {});
110
- * // ...
111
- * const client = new aws.cognito.UserPoolClient("client", {});
112
- * // ...
113
- * const domain = new aws.cognito.UserPoolDomain("domain", {});
114
- * // ...
115
- * const frontEndListener = new aws.lb.Listener("frontEndListener", {
116
- * loadBalancerArn: frontEndLoadBalancer.arn,
117
- * port: 80,
118
- * protocol: "HTTP",
119
- * defaultActions: [
120
- * {
121
- * type: "authenticate-cognito",
122
- * authenticateCognito: {
123
- * userPoolArn: pool.arn,
124
- * userPoolClientId: client.id,
125
- * userPoolDomain: domain.domain,
126
- * },
127
- * },
128
- * {
129
- * type: "forward",
130
- * targetGroupArn: frontEndTargetGroup.arn,
131
- * },
132
- * ],
133
- * });
134
- * ```
135
- * ### Authenticate-OIDC Action
136
- *
137
- * ```typescript
138
- * import * as pulumi from "@pulumi/pulumi";
139
- * import * as aws from "@pulumi/aws";
140
- *
141
- * const frontEndLoadBalancer = new aws.lb.LoadBalancer("frontEndLoadBalancer", {});
142
- * // ...
143
- * const frontEndTargetGroup = new aws.lb.TargetGroup("frontEndTargetGroup", {});
144
- * // ...
145
- * const frontEndListener = new aws.lb.Listener("frontEndListener", {
146
- * loadBalancerArn: frontEndLoadBalancer.arn,
147
- * port: 80,
148
- * protocol: "HTTP",
149
- * defaultActions: [
150
- * {
151
- * type: "authenticate-oidc",
152
- * authenticateOidc: {
153
- * authorizationEndpoint: "https://example.com/authorization_endpoint",
154
- * clientId: "client_id",
155
- * clientSecret: "client_secret",
156
- * issuer: "https://example.com",
157
- * tokenEndpoint: "https://example.com/token_endpoint",
158
- * userInfoEndpoint: "https://example.com/user_info_endpoint",
159
- * },
160
- * },
161
- * {
162
- * type: "forward",
163
- * targetGroupArn: frontEndTargetGroup.arn,
164
- * },
165
- * ],
166
- * });
167
- * ```
168
- * ### Gateway Load Balancer Listener
169
- *
170
- * ```typescript
171
- * import * as pulumi from "@pulumi/pulumi";
172
- * import * as aws from "@pulumi/aws";
173
- *
174
- * const exampleLoadBalancer = new aws.lb.LoadBalancer("exampleLoadBalancer", {
175
- * loadBalancerType: "gateway",
176
- * subnetMappings: [{
177
- * subnetId: aws_subnet.example.id,
178
- * }],
179
- * });
180
- * const exampleTargetGroup = new aws.lb.TargetGroup("exampleTargetGroup", {
181
- * port: 6081,
182
- * protocol: "GENEVE",
183
- * vpcId: aws_vpc.example.id,
184
- * healthCheck: {
185
- * port: "80",
186
- * protocol: "HTTP",
187
- * },
188
- * });
189
- * const exampleListener = new aws.lb.Listener("exampleListener", {
190
- * loadBalancerArn: exampleLoadBalancer.id,
191
- * defaultActions: [{
192
- * targetGroupArn: exampleTargetGroup.id,
193
- * type: "forward",
194
- * }],
195
- * });
196
- * ```
197
- *
198
- * ## Import
199
- *
200
- * Listeners can be imported using their ARN, e.g.,
201
- *
202
- * ```sh
203
- * $ pulumi import aws:elasticloadbalancingv2/listener:Listener front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96
204
- * ```
205
- *
206
- * @deprecated aws.elasticloadbalancingv2.Listener has been deprecated in favor of aws.lb.Listener
207
- */
208
- class Listener extends pulumi.CustomResource {
209
- /**
210
- * Get an existing Listener resource's state with the given name, ID, and optional extra
211
- * properties used to qualify the lookup.
212
- *
213
- * @param name The _unique_ name of the resulting resource.
214
- * @param id The _unique_ provider ID of the resource to lookup.
215
- * @param state Any extra arguments used during the lookup.
216
- * @param opts Optional settings to control the behavior of the CustomResource.
217
- */
218
- static get(name, id, state, opts) {
219
- pulumi.log.warn("Listener is deprecated: aws.elasticloadbalancingv2.Listener has been deprecated in favor of aws.lb.Listener");
220
- return new Listener(name, state, Object.assign(Object.assign({}, opts), { id: id }));
221
- }
222
- /**
223
- * Returns true if the given object is an instance of Listener. This is designed to work even
224
- * when multiple copies of the Pulumi SDK have been loaded into the same process.
225
- */
226
- static isInstance(obj) {
227
- if (obj === undefined || obj === null) {
228
- return false;
229
- }
230
- return obj['__pulumiType'] === Listener.__pulumiType;
231
- }
232
- /** @deprecated aws.elasticloadbalancingv2.Listener has been deprecated in favor of aws.lb.Listener */
233
- constructor(name, argsOrState, opts) {
234
- pulumi.log.warn("Listener is deprecated: aws.elasticloadbalancingv2.Listener has been deprecated in favor of aws.lb.Listener");
235
- let resourceInputs = {};
236
- opts = opts || {};
237
- if (opts.id) {
238
- const state = argsOrState;
239
- resourceInputs["alpnPolicy"] = state ? state.alpnPolicy : undefined;
240
- resourceInputs["arn"] = state ? state.arn : undefined;
241
- resourceInputs["certificateArn"] = state ? state.certificateArn : undefined;
242
- resourceInputs["defaultActions"] = state ? state.defaultActions : undefined;
243
- resourceInputs["loadBalancerArn"] = state ? state.loadBalancerArn : undefined;
244
- resourceInputs["port"] = state ? state.port : undefined;
245
- resourceInputs["protocol"] = state ? state.protocol : undefined;
246
- resourceInputs["sslPolicy"] = state ? state.sslPolicy : undefined;
247
- resourceInputs["tags"] = state ? state.tags : undefined;
248
- resourceInputs["tagsAll"] = state ? state.tagsAll : undefined;
249
- }
250
- else {
251
- const args = argsOrState;
252
- if ((!args || args.defaultActions === undefined) && !opts.urn) {
253
- throw new Error("Missing required property 'defaultActions'");
254
- }
255
- if ((!args || args.loadBalancerArn === undefined) && !opts.urn) {
256
- throw new Error("Missing required property 'loadBalancerArn'");
257
- }
258
- resourceInputs["alpnPolicy"] = args ? args.alpnPolicy : undefined;
259
- resourceInputs["certificateArn"] = args ? args.certificateArn : undefined;
260
- resourceInputs["defaultActions"] = args ? args.defaultActions : undefined;
261
- resourceInputs["loadBalancerArn"] = args ? args.loadBalancerArn : undefined;
262
- resourceInputs["port"] = args ? args.port : undefined;
263
- resourceInputs["protocol"] = args ? args.protocol : undefined;
264
- resourceInputs["sslPolicy"] = args ? args.sslPolicy : undefined;
265
- resourceInputs["tags"] = args ? args.tags : undefined;
266
- resourceInputs["arn"] = undefined /*out*/;
267
- resourceInputs["tagsAll"] = undefined /*out*/;
268
- }
269
- opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
270
- super(Listener.__pulumiType, name, resourceInputs, opts);
271
- }
272
- }
273
- exports.Listener = Listener;
274
- /** @internal */
275
- Listener.__pulumiType = 'aws:elasticloadbalancingv2/listener:Listener';
276
- //# sourceMappingURL=listener.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../elasticloadbalancingv2/listener.ts"],"names":[],"mappings":"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"}