pulumi-aws 7.15.0__py3-none-any.whl → 7.16.0__py3-none-any.whl

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 (105) hide show
  1. pulumi_aws/__init__.py +80 -0
  2. pulumi_aws/alb/listener.py +7 -7
  3. pulumi_aws/alb/target_group.py +7 -7
  4. pulumi_aws/alb/target_group_attachment.py +83 -0
  5. pulumi_aws/apigateway/domain_name.py +86 -7
  6. pulumi_aws/apigateway/get_domain_name.py +15 -1
  7. pulumi_aws/apigateway/integration.py +48 -8
  8. pulumi_aws/athena/_inputs.py +412 -5
  9. pulumi_aws/athena/outputs.py +342 -2
  10. pulumi_aws/backup/global_settings.py +15 -7
  11. pulumi_aws/bedrock/agentcore_memory_strategy.py +8 -0
  12. pulumi_aws/cleanrooms/collaboration.py +26 -6
  13. pulumi_aws/cloudfront/__init__.py +6 -0
  14. pulumi_aws/cloudfront/_inputs.py +3601 -478
  15. pulumi_aws/cloudfront/connection_function.py +658 -0
  16. pulumi_aws/cloudfront/connection_group.py +649 -0
  17. pulumi_aws/cloudfront/distribution.py +142 -0
  18. pulumi_aws/cloudfront/distribution_tenant.py +857 -0
  19. pulumi_aws/cloudfront/get_connection_group.py +249 -0
  20. pulumi_aws/cloudfront/get_distribution_tenant.py +279 -0
  21. pulumi_aws/cloudfront/multitenant_distribution.py +1181 -0
  22. pulumi_aws/cloudfront/outputs.py +3034 -376
  23. pulumi_aws/cloudwatch/log_subscription_filter.py +136 -42
  24. pulumi_aws/directconnect/gateway.py +78 -3
  25. pulumi_aws/directconnect/get_gateway.py +24 -4
  26. pulumi_aws/dlm/_inputs.py +3 -3
  27. pulumi_aws/dlm/outputs.py +2 -2
  28. pulumi_aws/dynamodb/__init__.py +1 -0
  29. pulumi_aws/dynamodb/_inputs.py +370 -0
  30. pulumi_aws/dynamodb/global_secondary_index.py +666 -0
  31. pulumi_aws/dynamodb/outputs.py +315 -0
  32. pulumi_aws/dynamodb/table.py +9 -1
  33. pulumi_aws/ec2/_inputs.py +44 -4
  34. pulumi_aws/ec2/get_vpc_endpoint.py +24 -4
  35. pulumi_aws/ec2/outputs.py +54 -4
  36. pulumi_aws/ecr/__init__.py +1 -0
  37. pulumi_aws/ecr/_inputs.py +58 -22
  38. pulumi_aws/ecr/get_repository_creation_template.py +1 -1
  39. pulumi_aws/ecr/lifecycle_policy.py +152 -64
  40. pulumi_aws/ecr/outputs.py +37 -15
  41. pulumi_aws/ecr/pull_time_update_exclusion.py +363 -0
  42. pulumi_aws/ecr/repository_creation_template.py +7 -7
  43. pulumi_aws/ecs/_inputs.py +20 -0
  44. pulumi_aws/ecs/outputs.py +14 -0
  45. pulumi_aws/ecs/task_definition.py +28 -28
  46. pulumi_aws/elasticache/replication_group.py +7 -7
  47. pulumi_aws/fsx/ontap_file_system.py +14 -0
  48. pulumi_aws/glue/resource_policy.py +4 -4
  49. pulumi_aws/guardduty/_inputs.py +41 -1
  50. pulumi_aws/guardduty/outputs.py +27 -1
  51. pulumi_aws/iam/get_saml_provider.py +15 -1
  52. pulumi_aws/iam/outbound_web_identity_federation.py +0 -4
  53. pulumi_aws/iam/policy.py +47 -0
  54. pulumi_aws/iam/saml_provider.py +28 -0
  55. pulumi_aws/iam/virtual_mfa_device.py +66 -38
  56. pulumi_aws/imagebuilder/_inputs.py +87 -0
  57. pulumi_aws/imagebuilder/image.py +47 -0
  58. pulumi_aws/imagebuilder/image_pipeline.py +47 -0
  59. pulumi_aws/imagebuilder/outputs.py +87 -0
  60. pulumi_aws/kms/grant.py +18 -18
  61. pulumi_aws/lambda_/_inputs.py +24 -4
  62. pulumi_aws/lambda_/event_source_mapping.py +2 -0
  63. pulumi_aws/lambda_/function.py +28 -0
  64. pulumi_aws/lambda_/function_url.py +4 -0
  65. pulumi_aws/lambda_/get_function.py +15 -1
  66. pulumi_aws/lambda_/outputs.py +17 -3
  67. pulumi_aws/lambda_/permission.py +47 -0
  68. pulumi_aws/lb/listener.py +7 -7
  69. pulumi_aws/lb/target_group.py +7 -7
  70. pulumi_aws/lb/target_group_attachment.py +83 -0
  71. pulumi_aws/networkfirewall/_inputs.py +3 -3
  72. pulumi_aws/networkfirewall/outputs.py +2 -2
  73. pulumi_aws/networkfirewall/vpc_endpoint_association.py +2 -2
  74. pulumi_aws/networkmanager/vpc_attachment.py +7 -7
  75. pulumi_aws/opensearchingest/pipeline.py +47 -0
  76. pulumi_aws/organizations/__init__.py +1 -0
  77. pulumi_aws/organizations/tag.py +292 -0
  78. pulumi_aws/pulumi-plugin.json +1 -1
  79. pulumi_aws/rds/cluster.py +21 -21
  80. pulumi_aws/rds/get_proxy.py +29 -1
  81. pulumi_aws/rds/proxy.py +94 -0
  82. pulumi_aws/rds/proxy_default_target_group.py +0 -76
  83. pulumi_aws/rds/proxy_target.py +0 -80
  84. pulumi_aws/redshift/__init__.py +1 -0
  85. pulumi_aws/redshift/_inputs.py +329 -0
  86. pulumi_aws/redshift/idc_application.py +687 -0
  87. pulumi_aws/redshift/outputs.py +265 -0
  88. pulumi_aws/route53/get_resolver_firewall_rules.py +9 -0
  89. pulumi_aws/route53/get_resolver_rule.py +19 -4
  90. pulumi_aws/route53/outputs.py +108 -1
  91. pulumi_aws/route53/resolver_firewall_rule.py +199 -32
  92. pulumi_aws/secretsmanager/__init__.py +1 -0
  93. pulumi_aws/secretsmanager/tag.py +333 -0
  94. pulumi_aws/sesv2/__init__.py +1 -0
  95. pulumi_aws/sesv2/tenant.py +418 -0
  96. pulumi_aws/sfn/activity.py +0 -4
  97. pulumi_aws/sfn/alias.py +0 -4
  98. pulumi_aws/transfer/_inputs.py +126 -0
  99. pulumi_aws/transfer/outputs.py +97 -0
  100. pulumi_aws/transfer/web_app.py +54 -7
  101. pulumi_aws/vpclattice/service_network_resource_association.py +47 -0
  102. {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/METADATA +1 -1
  103. {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/RECORD +105 -93
  104. {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/WHEEL +0 -0
  105. {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,658 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['ConnectionFunctionArgs', 'ConnectionFunction']
20
+
21
+ @pulumi.input_type
22
+ class ConnectionFunctionArgs:
23
+ def __init__(__self__, *,
24
+ connection_function_code: pulumi.Input[_builtins.str],
25
+ connection_function_config: Optional[pulumi.Input['ConnectionFunctionConnectionFunctionConfigArgs']] = None,
26
+ name: Optional[pulumi.Input[_builtins.str]] = None,
27
+ publish: Optional[pulumi.Input[_builtins.bool]] = None,
28
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
29
+ """
30
+ The set of arguments for constructing a ConnectionFunction resource.
31
+ :param pulumi.Input[_builtins.str] connection_function_code: Code for the connection function. Maximum length is 40960 characters.
32
+ :param pulumi.Input['ConnectionFunctionConnectionFunctionConfigArgs'] connection_function_config: Configuration information for the connection function. See `connection_function_config` below.
33
+ :param pulumi.Input[_builtins.str] name: Name for the connection function. Must be 1-64 characters and can contain letters, numbers, hyphens, and underscores. Changing this forces a new resource to be created.
34
+
35
+ The following arguments are optional:
36
+ :param pulumi.Input[_builtins.bool] publish: Whether to publish the function to the `LIVE` stage after creation or update. Defaults to `false`.
37
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
38
+ """
39
+ pulumi.set(__self__, "connection_function_code", connection_function_code)
40
+ if connection_function_config is not None:
41
+ pulumi.set(__self__, "connection_function_config", connection_function_config)
42
+ if name is not None:
43
+ pulumi.set(__self__, "name", name)
44
+ if publish is not None:
45
+ pulumi.set(__self__, "publish", publish)
46
+ if tags is not None:
47
+ pulumi.set(__self__, "tags", tags)
48
+
49
+ @_builtins.property
50
+ @pulumi.getter(name="connectionFunctionCode")
51
+ def connection_function_code(self) -> pulumi.Input[_builtins.str]:
52
+ """
53
+ Code for the connection function. Maximum length is 40960 characters.
54
+ """
55
+ return pulumi.get(self, "connection_function_code")
56
+
57
+ @connection_function_code.setter
58
+ def connection_function_code(self, value: pulumi.Input[_builtins.str]):
59
+ pulumi.set(self, "connection_function_code", value)
60
+
61
+ @_builtins.property
62
+ @pulumi.getter(name="connectionFunctionConfig")
63
+ def connection_function_config(self) -> Optional[pulumi.Input['ConnectionFunctionConnectionFunctionConfigArgs']]:
64
+ """
65
+ Configuration information for the connection function. See `connection_function_config` below.
66
+ """
67
+ return pulumi.get(self, "connection_function_config")
68
+
69
+ @connection_function_config.setter
70
+ def connection_function_config(self, value: Optional[pulumi.Input['ConnectionFunctionConnectionFunctionConfigArgs']]):
71
+ pulumi.set(self, "connection_function_config", value)
72
+
73
+ @_builtins.property
74
+ @pulumi.getter
75
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
76
+ """
77
+ Name for the connection function. Must be 1-64 characters and can contain letters, numbers, hyphens, and underscores. Changing this forces a new resource to be created.
78
+
79
+ The following arguments are optional:
80
+ """
81
+ return pulumi.get(self, "name")
82
+
83
+ @name.setter
84
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
85
+ pulumi.set(self, "name", value)
86
+
87
+ @_builtins.property
88
+ @pulumi.getter
89
+ def publish(self) -> Optional[pulumi.Input[_builtins.bool]]:
90
+ """
91
+ Whether to publish the function to the `LIVE` stage after creation or update. Defaults to `false`.
92
+ """
93
+ return pulumi.get(self, "publish")
94
+
95
+ @publish.setter
96
+ def publish(self, value: Optional[pulumi.Input[_builtins.bool]]):
97
+ pulumi.set(self, "publish", value)
98
+
99
+ @_builtins.property
100
+ @pulumi.getter
101
+ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
102
+ """
103
+ Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
104
+ """
105
+ return pulumi.get(self, "tags")
106
+
107
+ @tags.setter
108
+ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
109
+ pulumi.set(self, "tags", value)
110
+
111
+
112
+ @pulumi.input_type
113
+ class _ConnectionFunctionState:
114
+ def __init__(__self__, *,
115
+ connection_function_arn: Optional[pulumi.Input[_builtins.str]] = None,
116
+ connection_function_code: Optional[pulumi.Input[_builtins.str]] = None,
117
+ connection_function_config: Optional[pulumi.Input['ConnectionFunctionConnectionFunctionConfigArgs']] = None,
118
+ etag: Optional[pulumi.Input[_builtins.str]] = None,
119
+ live_stage_etag: Optional[pulumi.Input[_builtins.str]] = None,
120
+ name: Optional[pulumi.Input[_builtins.str]] = None,
121
+ publish: Optional[pulumi.Input[_builtins.bool]] = None,
122
+ status: Optional[pulumi.Input[_builtins.str]] = None,
123
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
124
+ tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None):
125
+ """
126
+ Input properties used for looking up and filtering ConnectionFunction resources.
127
+ :param pulumi.Input[_builtins.str] connection_function_arn: ARN of the connection function.
128
+ :param pulumi.Input[_builtins.str] connection_function_code: Code for the connection function. Maximum length is 40960 characters.
129
+ :param pulumi.Input['ConnectionFunctionConnectionFunctionConfigArgs'] connection_function_config: Configuration information for the connection function. See `connection_function_config` below.
130
+ :param pulumi.Input[_builtins.str] etag: ETag of the connection function.
131
+ :param pulumi.Input[_builtins.str] live_stage_etag: ETag of the function's LIVE stage. Will be empty if the function has not been published.
132
+ :param pulumi.Input[_builtins.str] name: Name for the connection function. Must be 1-64 characters and can contain letters, numbers, hyphens, and underscores. Changing this forces a new resource to be created.
133
+
134
+ The following arguments are optional:
135
+ :param pulumi.Input[_builtins.bool] publish: Whether to publish the function to the `LIVE` stage after creation or update. Defaults to `false`.
136
+ :param pulumi.Input[_builtins.str] status: Status of the connection function.
137
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
138
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
139
+ """
140
+ if connection_function_arn is not None:
141
+ pulumi.set(__self__, "connection_function_arn", connection_function_arn)
142
+ if connection_function_code is not None:
143
+ pulumi.set(__self__, "connection_function_code", connection_function_code)
144
+ if connection_function_config is not None:
145
+ pulumi.set(__self__, "connection_function_config", connection_function_config)
146
+ if etag is not None:
147
+ pulumi.set(__self__, "etag", etag)
148
+ if live_stage_etag is not None:
149
+ pulumi.set(__self__, "live_stage_etag", live_stage_etag)
150
+ if name is not None:
151
+ pulumi.set(__self__, "name", name)
152
+ if publish is not None:
153
+ pulumi.set(__self__, "publish", publish)
154
+ if status is not None:
155
+ pulumi.set(__self__, "status", status)
156
+ if tags is not None:
157
+ pulumi.set(__self__, "tags", tags)
158
+ if tags_all is not None:
159
+ pulumi.set(__self__, "tags_all", tags_all)
160
+
161
+ @_builtins.property
162
+ @pulumi.getter(name="connectionFunctionArn")
163
+ def connection_function_arn(self) -> Optional[pulumi.Input[_builtins.str]]:
164
+ """
165
+ ARN of the connection function.
166
+ """
167
+ return pulumi.get(self, "connection_function_arn")
168
+
169
+ @connection_function_arn.setter
170
+ def connection_function_arn(self, value: Optional[pulumi.Input[_builtins.str]]):
171
+ pulumi.set(self, "connection_function_arn", value)
172
+
173
+ @_builtins.property
174
+ @pulumi.getter(name="connectionFunctionCode")
175
+ def connection_function_code(self) -> Optional[pulumi.Input[_builtins.str]]:
176
+ """
177
+ Code for the connection function. Maximum length is 40960 characters.
178
+ """
179
+ return pulumi.get(self, "connection_function_code")
180
+
181
+ @connection_function_code.setter
182
+ def connection_function_code(self, value: Optional[pulumi.Input[_builtins.str]]):
183
+ pulumi.set(self, "connection_function_code", value)
184
+
185
+ @_builtins.property
186
+ @pulumi.getter(name="connectionFunctionConfig")
187
+ def connection_function_config(self) -> Optional[pulumi.Input['ConnectionFunctionConnectionFunctionConfigArgs']]:
188
+ """
189
+ Configuration information for the connection function. See `connection_function_config` below.
190
+ """
191
+ return pulumi.get(self, "connection_function_config")
192
+
193
+ @connection_function_config.setter
194
+ def connection_function_config(self, value: Optional[pulumi.Input['ConnectionFunctionConnectionFunctionConfigArgs']]):
195
+ pulumi.set(self, "connection_function_config", value)
196
+
197
+ @_builtins.property
198
+ @pulumi.getter
199
+ def etag(self) -> Optional[pulumi.Input[_builtins.str]]:
200
+ """
201
+ ETag of the connection function.
202
+ """
203
+ return pulumi.get(self, "etag")
204
+
205
+ @etag.setter
206
+ def etag(self, value: Optional[pulumi.Input[_builtins.str]]):
207
+ pulumi.set(self, "etag", value)
208
+
209
+ @_builtins.property
210
+ @pulumi.getter(name="liveStageEtag")
211
+ def live_stage_etag(self) -> Optional[pulumi.Input[_builtins.str]]:
212
+ """
213
+ ETag of the function's LIVE stage. Will be empty if the function has not been published.
214
+ """
215
+ return pulumi.get(self, "live_stage_etag")
216
+
217
+ @live_stage_etag.setter
218
+ def live_stage_etag(self, value: Optional[pulumi.Input[_builtins.str]]):
219
+ pulumi.set(self, "live_stage_etag", value)
220
+
221
+ @_builtins.property
222
+ @pulumi.getter
223
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
224
+ """
225
+ Name for the connection function. Must be 1-64 characters and can contain letters, numbers, hyphens, and underscores. Changing this forces a new resource to be created.
226
+
227
+ The following arguments are optional:
228
+ """
229
+ return pulumi.get(self, "name")
230
+
231
+ @name.setter
232
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
233
+ pulumi.set(self, "name", value)
234
+
235
+ @_builtins.property
236
+ @pulumi.getter
237
+ def publish(self) -> Optional[pulumi.Input[_builtins.bool]]:
238
+ """
239
+ Whether to publish the function to the `LIVE` stage after creation or update. Defaults to `false`.
240
+ """
241
+ return pulumi.get(self, "publish")
242
+
243
+ @publish.setter
244
+ def publish(self, value: Optional[pulumi.Input[_builtins.bool]]):
245
+ pulumi.set(self, "publish", value)
246
+
247
+ @_builtins.property
248
+ @pulumi.getter
249
+ def status(self) -> Optional[pulumi.Input[_builtins.str]]:
250
+ """
251
+ Status of the connection function.
252
+ """
253
+ return pulumi.get(self, "status")
254
+
255
+ @status.setter
256
+ def status(self, value: Optional[pulumi.Input[_builtins.str]]):
257
+ pulumi.set(self, "status", value)
258
+
259
+ @_builtins.property
260
+ @pulumi.getter
261
+ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
262
+ """
263
+ Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
264
+ """
265
+ return pulumi.get(self, "tags")
266
+
267
+ @tags.setter
268
+ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
269
+ pulumi.set(self, "tags", value)
270
+
271
+ @_builtins.property
272
+ @pulumi.getter(name="tagsAll")
273
+ def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
274
+ """
275
+ Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
276
+ """
277
+ return pulumi.get(self, "tags_all")
278
+
279
+ @tags_all.setter
280
+ def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
281
+ pulumi.set(self, "tags_all", value)
282
+
283
+
284
+ @pulumi.type_token("aws:cloudfront/connectionFunction:ConnectionFunction")
285
+ class ConnectionFunction(pulumi.CustomResource):
286
+ @overload
287
+ def __init__(__self__,
288
+ resource_name: str,
289
+ opts: Optional[pulumi.ResourceOptions] = None,
290
+ connection_function_code: Optional[pulumi.Input[_builtins.str]] = None,
291
+ connection_function_config: Optional[pulumi.Input[Union['ConnectionFunctionConnectionFunctionConfigArgs', 'ConnectionFunctionConnectionFunctionConfigArgsDict']]] = None,
292
+ name: Optional[pulumi.Input[_builtins.str]] = None,
293
+ publish: Optional[pulumi.Input[_builtins.bool]] = None,
294
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
295
+ __props__=None):
296
+ """
297
+ Manages an AWS CloudFront Connection Function.
298
+
299
+ ## Example Usage
300
+
301
+ ### Basic Usage
302
+
303
+ ```python
304
+ import pulumi
305
+ import pulumi_aws as aws
306
+
307
+ example = aws.cloudfront.ConnectionFunction("example",
308
+ name="example-connection-function",
309
+ connection_function_code="function handler(event) { return event.request; }",
310
+ connection_function_config={
311
+ "runtime": "cloudfront-js-2.0",
312
+ "comment": "Example connection function",
313
+ })
314
+ ```
315
+
316
+ ### With Publish Enabled
317
+
318
+ ```python
319
+ import pulumi
320
+ import pulumi_aws as aws
321
+
322
+ example = aws.cloudfront.ConnectionFunction("example",
323
+ name="example-connection-function",
324
+ connection_function_code="function handler(event) { return event.request; }",
325
+ connection_function_config={
326
+ "runtime": "cloudfront-js-2.0",
327
+ "comment": "Example connection function",
328
+ },
329
+ publish=True)
330
+ ```
331
+
332
+ ### With Key Value Store Associations
333
+
334
+ ```python
335
+ import pulumi
336
+ import pulumi_aws as aws
337
+
338
+ example = aws.cloudfront.KeyValueStore("example",
339
+ name="example-kvs",
340
+ comment="Example key value store")
341
+ example_connection_function = aws.cloudfront.ConnectionFunction("example",
342
+ name="example-connection-function",
343
+ connection_function_code="function handler(event) { return event.request; }",
344
+ connection_function_config={
345
+ "runtime": "cloudfront-js-2.0",
346
+ "comment": "Example connection function",
347
+ "key_value_store_association": {
348
+ "key_value_store_arn": example.arn,
349
+ },
350
+ })
351
+ ```
352
+
353
+ ### With Tags
354
+
355
+ ```python
356
+ import pulumi
357
+ import pulumi_aws as aws
358
+
359
+ example = aws.cloudfront.ConnectionFunction("example",
360
+ name="example-connection-function",
361
+ connection_function_code="function handler(event) { return event.request; }",
362
+ connection_function_config={
363
+ "runtime": "cloudfront-js-2.0",
364
+ "comment": "Example connection function",
365
+ },
366
+ tags={
367
+ "Environment": "production",
368
+ "Team": "web",
369
+ })
370
+ ```
371
+
372
+ ## Import
373
+
374
+ Using `pulumi import`, import CloudFront Connection Function using the function ID. For example:
375
+
376
+ ```sh
377
+ $ pulumi import aws:cloudfront/connectionFunction:ConnectionFunction example E1PA6795UKMFR9
378
+ ```
379
+
380
+ :param str resource_name: The name of the resource.
381
+ :param pulumi.ResourceOptions opts: Options for the resource.
382
+ :param pulumi.Input[_builtins.str] connection_function_code: Code for the connection function. Maximum length is 40960 characters.
383
+ :param pulumi.Input[Union['ConnectionFunctionConnectionFunctionConfigArgs', 'ConnectionFunctionConnectionFunctionConfigArgsDict']] connection_function_config: Configuration information for the connection function. See `connection_function_config` below.
384
+ :param pulumi.Input[_builtins.str] name: Name for the connection function. Must be 1-64 characters and can contain letters, numbers, hyphens, and underscores. Changing this forces a new resource to be created.
385
+
386
+ The following arguments are optional:
387
+ :param pulumi.Input[_builtins.bool] publish: Whether to publish the function to the `LIVE` stage after creation or update. Defaults to `false`.
388
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
389
+ """
390
+ ...
391
+ @overload
392
+ def __init__(__self__,
393
+ resource_name: str,
394
+ args: ConnectionFunctionArgs,
395
+ opts: Optional[pulumi.ResourceOptions] = None):
396
+ """
397
+ Manages an AWS CloudFront Connection Function.
398
+
399
+ ## Example Usage
400
+
401
+ ### Basic Usage
402
+
403
+ ```python
404
+ import pulumi
405
+ import pulumi_aws as aws
406
+
407
+ example = aws.cloudfront.ConnectionFunction("example",
408
+ name="example-connection-function",
409
+ connection_function_code="function handler(event) { return event.request; }",
410
+ connection_function_config={
411
+ "runtime": "cloudfront-js-2.0",
412
+ "comment": "Example connection function",
413
+ })
414
+ ```
415
+
416
+ ### With Publish Enabled
417
+
418
+ ```python
419
+ import pulumi
420
+ import pulumi_aws as aws
421
+
422
+ example = aws.cloudfront.ConnectionFunction("example",
423
+ name="example-connection-function",
424
+ connection_function_code="function handler(event) { return event.request; }",
425
+ connection_function_config={
426
+ "runtime": "cloudfront-js-2.0",
427
+ "comment": "Example connection function",
428
+ },
429
+ publish=True)
430
+ ```
431
+
432
+ ### With Key Value Store Associations
433
+
434
+ ```python
435
+ import pulumi
436
+ import pulumi_aws as aws
437
+
438
+ example = aws.cloudfront.KeyValueStore("example",
439
+ name="example-kvs",
440
+ comment="Example key value store")
441
+ example_connection_function = aws.cloudfront.ConnectionFunction("example",
442
+ name="example-connection-function",
443
+ connection_function_code="function handler(event) { return event.request; }",
444
+ connection_function_config={
445
+ "runtime": "cloudfront-js-2.0",
446
+ "comment": "Example connection function",
447
+ "key_value_store_association": {
448
+ "key_value_store_arn": example.arn,
449
+ },
450
+ })
451
+ ```
452
+
453
+ ### With Tags
454
+
455
+ ```python
456
+ import pulumi
457
+ import pulumi_aws as aws
458
+
459
+ example = aws.cloudfront.ConnectionFunction("example",
460
+ name="example-connection-function",
461
+ connection_function_code="function handler(event) { return event.request; }",
462
+ connection_function_config={
463
+ "runtime": "cloudfront-js-2.0",
464
+ "comment": "Example connection function",
465
+ },
466
+ tags={
467
+ "Environment": "production",
468
+ "Team": "web",
469
+ })
470
+ ```
471
+
472
+ ## Import
473
+
474
+ Using `pulumi import`, import CloudFront Connection Function using the function ID. For example:
475
+
476
+ ```sh
477
+ $ pulumi import aws:cloudfront/connectionFunction:ConnectionFunction example E1PA6795UKMFR9
478
+ ```
479
+
480
+ :param str resource_name: The name of the resource.
481
+ :param ConnectionFunctionArgs args: The arguments to use to populate this resource's properties.
482
+ :param pulumi.ResourceOptions opts: Options for the resource.
483
+ """
484
+ ...
485
+ def __init__(__self__, resource_name: str, *args, **kwargs):
486
+ resource_args, opts = _utilities.get_resource_args_opts(ConnectionFunctionArgs, pulumi.ResourceOptions, *args, **kwargs)
487
+ if resource_args is not None:
488
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
489
+ else:
490
+ __self__._internal_init(resource_name, *args, **kwargs)
491
+
492
+ def _internal_init(__self__,
493
+ resource_name: str,
494
+ opts: Optional[pulumi.ResourceOptions] = None,
495
+ connection_function_code: Optional[pulumi.Input[_builtins.str]] = None,
496
+ connection_function_config: Optional[pulumi.Input[Union['ConnectionFunctionConnectionFunctionConfigArgs', 'ConnectionFunctionConnectionFunctionConfigArgsDict']]] = None,
497
+ name: Optional[pulumi.Input[_builtins.str]] = None,
498
+ publish: Optional[pulumi.Input[_builtins.bool]] = None,
499
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
500
+ __props__=None):
501
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
502
+ if not isinstance(opts, pulumi.ResourceOptions):
503
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
504
+ if opts.id is None:
505
+ if __props__ is not None:
506
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
507
+ __props__ = ConnectionFunctionArgs.__new__(ConnectionFunctionArgs)
508
+
509
+ if connection_function_code is None and not opts.urn:
510
+ raise TypeError("Missing required property 'connection_function_code'")
511
+ __props__.__dict__["connection_function_code"] = connection_function_code
512
+ __props__.__dict__["connection_function_config"] = connection_function_config
513
+ __props__.__dict__["name"] = name
514
+ __props__.__dict__["publish"] = publish
515
+ __props__.__dict__["tags"] = tags
516
+ __props__.__dict__["connection_function_arn"] = None
517
+ __props__.__dict__["etag"] = None
518
+ __props__.__dict__["live_stage_etag"] = None
519
+ __props__.__dict__["status"] = None
520
+ __props__.__dict__["tags_all"] = None
521
+ super(ConnectionFunction, __self__).__init__(
522
+ 'aws:cloudfront/connectionFunction:ConnectionFunction',
523
+ resource_name,
524
+ __props__,
525
+ opts)
526
+
527
+ @staticmethod
528
+ def get(resource_name: str,
529
+ id: pulumi.Input[str],
530
+ opts: Optional[pulumi.ResourceOptions] = None,
531
+ connection_function_arn: Optional[pulumi.Input[_builtins.str]] = None,
532
+ connection_function_code: Optional[pulumi.Input[_builtins.str]] = None,
533
+ connection_function_config: Optional[pulumi.Input[Union['ConnectionFunctionConnectionFunctionConfigArgs', 'ConnectionFunctionConnectionFunctionConfigArgsDict']]] = None,
534
+ etag: Optional[pulumi.Input[_builtins.str]] = None,
535
+ live_stage_etag: Optional[pulumi.Input[_builtins.str]] = None,
536
+ name: Optional[pulumi.Input[_builtins.str]] = None,
537
+ publish: Optional[pulumi.Input[_builtins.bool]] = None,
538
+ status: Optional[pulumi.Input[_builtins.str]] = None,
539
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
540
+ tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None) -> 'ConnectionFunction':
541
+ """
542
+ Get an existing ConnectionFunction resource's state with the given name, id, and optional extra
543
+ properties used to qualify the lookup.
544
+
545
+ :param str resource_name: The unique name of the resulting resource.
546
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
547
+ :param pulumi.ResourceOptions opts: Options for the resource.
548
+ :param pulumi.Input[_builtins.str] connection_function_arn: ARN of the connection function.
549
+ :param pulumi.Input[_builtins.str] connection_function_code: Code for the connection function. Maximum length is 40960 characters.
550
+ :param pulumi.Input[Union['ConnectionFunctionConnectionFunctionConfigArgs', 'ConnectionFunctionConnectionFunctionConfigArgsDict']] connection_function_config: Configuration information for the connection function. See `connection_function_config` below.
551
+ :param pulumi.Input[_builtins.str] etag: ETag of the connection function.
552
+ :param pulumi.Input[_builtins.str] live_stage_etag: ETag of the function's LIVE stage. Will be empty if the function has not been published.
553
+ :param pulumi.Input[_builtins.str] name: Name for the connection function. Must be 1-64 characters and can contain letters, numbers, hyphens, and underscores. Changing this forces a new resource to be created.
554
+
555
+ The following arguments are optional:
556
+ :param pulumi.Input[_builtins.bool] publish: Whether to publish the function to the `LIVE` stage after creation or update. Defaults to `false`.
557
+ :param pulumi.Input[_builtins.str] status: Status of the connection function.
558
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
559
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags_all: Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
560
+ """
561
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
562
+
563
+ __props__ = _ConnectionFunctionState.__new__(_ConnectionFunctionState)
564
+
565
+ __props__.__dict__["connection_function_arn"] = connection_function_arn
566
+ __props__.__dict__["connection_function_code"] = connection_function_code
567
+ __props__.__dict__["connection_function_config"] = connection_function_config
568
+ __props__.__dict__["etag"] = etag
569
+ __props__.__dict__["live_stage_etag"] = live_stage_etag
570
+ __props__.__dict__["name"] = name
571
+ __props__.__dict__["publish"] = publish
572
+ __props__.__dict__["status"] = status
573
+ __props__.__dict__["tags"] = tags
574
+ __props__.__dict__["tags_all"] = tags_all
575
+ return ConnectionFunction(resource_name, opts=opts, __props__=__props__)
576
+
577
+ @_builtins.property
578
+ @pulumi.getter(name="connectionFunctionArn")
579
+ def connection_function_arn(self) -> pulumi.Output[_builtins.str]:
580
+ """
581
+ ARN of the connection function.
582
+ """
583
+ return pulumi.get(self, "connection_function_arn")
584
+
585
+ @_builtins.property
586
+ @pulumi.getter(name="connectionFunctionCode")
587
+ def connection_function_code(self) -> pulumi.Output[_builtins.str]:
588
+ """
589
+ Code for the connection function. Maximum length is 40960 characters.
590
+ """
591
+ return pulumi.get(self, "connection_function_code")
592
+
593
+ @_builtins.property
594
+ @pulumi.getter(name="connectionFunctionConfig")
595
+ def connection_function_config(self) -> pulumi.Output[Optional['outputs.ConnectionFunctionConnectionFunctionConfig']]:
596
+ """
597
+ Configuration information for the connection function. See `connection_function_config` below.
598
+ """
599
+ return pulumi.get(self, "connection_function_config")
600
+
601
+ @_builtins.property
602
+ @pulumi.getter
603
+ def etag(self) -> pulumi.Output[_builtins.str]:
604
+ """
605
+ ETag of the connection function.
606
+ """
607
+ return pulumi.get(self, "etag")
608
+
609
+ @_builtins.property
610
+ @pulumi.getter(name="liveStageEtag")
611
+ def live_stage_etag(self) -> pulumi.Output[_builtins.str]:
612
+ """
613
+ ETag of the function's LIVE stage. Will be empty if the function has not been published.
614
+ """
615
+ return pulumi.get(self, "live_stage_etag")
616
+
617
+ @_builtins.property
618
+ @pulumi.getter
619
+ def name(self) -> pulumi.Output[_builtins.str]:
620
+ """
621
+ Name for the connection function. Must be 1-64 characters and can contain letters, numbers, hyphens, and underscores. Changing this forces a new resource to be created.
622
+
623
+ The following arguments are optional:
624
+ """
625
+ return pulumi.get(self, "name")
626
+
627
+ @_builtins.property
628
+ @pulumi.getter
629
+ def publish(self) -> pulumi.Output[_builtins.bool]:
630
+ """
631
+ Whether to publish the function to the `LIVE` stage after creation or update. Defaults to `false`.
632
+ """
633
+ return pulumi.get(self, "publish")
634
+
635
+ @_builtins.property
636
+ @pulumi.getter
637
+ def status(self) -> pulumi.Output[_builtins.str]:
638
+ """
639
+ Status of the connection function.
640
+ """
641
+ return pulumi.get(self, "status")
642
+
643
+ @_builtins.property
644
+ @pulumi.getter
645
+ def tags(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
646
+ """
647
+ Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
648
+ """
649
+ return pulumi.get(self, "tags")
650
+
651
+ @_builtins.property
652
+ @pulumi.getter(name="tagsAll")
653
+ def tags_all(self) -> pulumi.Output[Mapping[str, _builtins.str]]:
654
+ """
655
+ Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
656
+ """
657
+ return pulumi.get(self, "tags_all")
658
+