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
@@ -26,7 +26,7 @@ class GetGatewayResult:
26
26
  """
27
27
  A collection of values returned by getGateway.
28
28
  """
29
- def __init__(__self__, amazon_side_asn=None, arn=None, id=None, name=None, owner_account_id=None):
29
+ def __init__(__self__, amazon_side_asn=None, arn=None, id=None, name=None, owner_account_id=None, tags=None):
30
30
  if amazon_side_asn and not isinstance(amazon_side_asn, str):
31
31
  raise TypeError("Expected argument 'amazon_side_asn' to be a str")
32
32
  pulumi.set(__self__, "amazon_side_asn", amazon_side_asn)
@@ -42,6 +42,9 @@ class GetGatewayResult:
42
42
  if owner_account_id and not isinstance(owner_account_id, str):
43
43
  raise TypeError("Expected argument 'owner_account_id' to be a str")
44
44
  pulumi.set(__self__, "owner_account_id", owner_account_id)
45
+ if tags and not isinstance(tags, dict):
46
+ raise TypeError("Expected argument 'tags' to be a dict")
47
+ pulumi.set(__self__, "tags", tags)
45
48
 
46
49
  @_builtins.property
47
50
  @pulumi.getter(name="amazonSideAsn")
@@ -80,6 +83,14 @@ class GetGatewayResult:
80
83
  """
81
84
  return pulumi.get(self, "owner_account_id")
82
85
 
86
+ @_builtins.property
87
+ @pulumi.getter
88
+ def tags(self) -> Mapping[str, _builtins.str]:
89
+ """
90
+ A map of tags assigned to the gateway.
91
+ """
92
+ return pulumi.get(self, "tags")
93
+
83
94
 
84
95
  class AwaitableGetGatewayResult(GetGatewayResult):
85
96
  # pylint: disable=using-constant-test
@@ -91,10 +102,12 @@ class AwaitableGetGatewayResult(GetGatewayResult):
91
102
  arn=self.arn,
92
103
  id=self.id,
93
104
  name=self.name,
94
- owner_account_id=self.owner_account_id)
105
+ owner_account_id=self.owner_account_id,
106
+ tags=self.tags)
95
107
 
96
108
 
97
109
  def get_gateway(name: Optional[_builtins.str] = None,
110
+ tags: Optional[Mapping[str, _builtins.str]] = None,
98
111
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetGatewayResult:
99
112
  """
100
113
  Retrieve information about a Direct Connect Gateway.
@@ -110,9 +123,11 @@ def get_gateway(name: Optional[_builtins.str] = None,
110
123
 
111
124
 
112
125
  :param _builtins.str name: Name of the gateway to retrieve.
126
+ :param Mapping[str, _builtins.str] tags: A map of tags assigned to the gateway.
113
127
  """
114
128
  __args__ = dict()
115
129
  __args__['name'] = name
130
+ __args__['tags'] = tags
116
131
  opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
117
132
  __ret__ = pulumi.runtime.invoke('aws:directconnect/getGateway:getGateway', __args__, opts=opts, typ=GetGatewayResult).value
118
133
 
@@ -121,8 +136,10 @@ def get_gateway(name: Optional[_builtins.str] = None,
121
136
  arn=pulumi.get(__ret__, 'arn'),
122
137
  id=pulumi.get(__ret__, 'id'),
123
138
  name=pulumi.get(__ret__, 'name'),
124
- owner_account_id=pulumi.get(__ret__, 'owner_account_id'))
139
+ owner_account_id=pulumi.get(__ret__, 'owner_account_id'),
140
+ tags=pulumi.get(__ret__, 'tags'))
125
141
  def get_gateway_output(name: Optional[pulumi.Input[_builtins.str]] = None,
142
+ tags: Optional[pulumi.Input[Optional[Mapping[str, _builtins.str]]]] = None,
126
143
  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetGatewayResult]:
127
144
  """
128
145
  Retrieve information about a Direct Connect Gateway.
@@ -138,9 +155,11 @@ def get_gateway_output(name: Optional[pulumi.Input[_builtins.str]] = None,
138
155
 
139
156
 
140
157
  :param _builtins.str name: Name of the gateway to retrieve.
158
+ :param Mapping[str, _builtins.str] tags: A map of tags assigned to the gateway.
141
159
  """
142
160
  __args__ = dict()
143
161
  __args__['name'] = name
162
+ __args__['tags'] = tags
144
163
  opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
145
164
  __ret__ = pulumi.runtime.invoke_output('aws:directconnect/getGateway:getGateway', __args__, opts=opts, typ=GetGatewayResult)
146
165
  return __ret__.apply(lambda __response__: GetGatewayResult(
@@ -148,4 +167,5 @@ def get_gateway_output(name: Optional[pulumi.Input[_builtins.str]] = None,
148
167
  arn=pulumi.get(__response__, 'arn'),
149
168
  id=pulumi.get(__response__, 'id'),
150
169
  name=pulumi.get(__response__, 'name'),
151
- owner_account_id=pulumi.get(__response__, 'owner_account_id')))
170
+ owner_account_id=pulumi.get(__response__, 'owner_account_id'),
171
+ tags=pulumi.get(__response__, 'tags')))
pulumi_aws/dlm/_inputs.py CHANGED
@@ -1088,7 +1088,7 @@ if not MYPY:
1088
1088
  class LifecyclePolicyPolicyDetailsScheduleCreateRuleArgsDict(TypedDict):
1089
1089
  cron_expression: NotRequired[pulumi.Input[_builtins.str]]
1090
1090
  """
1091
- The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with `interval`, `interval_unit`, and `times`.
1091
+ The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with `interval`, `interval_unit`, and `times`. For details on valid Cron expressions, see [here](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions).
1092
1092
  """
1093
1093
  interval: NotRequired[pulumi.Input[_builtins.int]]
1094
1094
  interval_unit: NotRequired[pulumi.Input[_builtins.str]]
@@ -1117,7 +1117,7 @@ class LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs:
1117
1117
  scripts: Optional[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCreateRuleScriptsArgs']] = None,
1118
1118
  times: Optional[pulumi.Input[_builtins.str]] = None):
1119
1119
  """
1120
- :param pulumi.Input[_builtins.str] cron_expression: The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with `interval`, `interval_unit`, and `times`.
1120
+ :param pulumi.Input[_builtins.str] cron_expression: The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with `interval`, `interval_unit`, and `times`. For details on valid Cron expressions, see [here](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions).
1121
1121
  :param pulumi.Input[_builtins.str] location: Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify `CLOUD`. To create snapshots on the same Outpost as the source resource, specify `OUTPOST_LOCAL`. If you omit this parameter, `CLOUD` is used by default. If the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost. Valid values are `CLOUD` and `OUTPOST_LOCAL`.
1122
1122
  :param pulumi.Input['LifecyclePolicyPolicyDetailsScheduleCreateRuleScriptsArgs'] scripts: Specifies pre and/or post scripts for a snapshot lifecycle policy that targets instances. Valid only when `resource_type` is INSTANCE. See the `scripts` configuration block.
1123
1123
  :param pulumi.Input[_builtins.str] times: A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1. Conflicts with `cron_expression`. Must be set if `interval` is set.
@@ -1139,7 +1139,7 @@ class LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs:
1139
1139
  @pulumi.getter(name="cronExpression")
1140
1140
  def cron_expression(self) -> Optional[pulumi.Input[_builtins.str]]:
1141
1141
  """
1142
- The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with `interval`, `interval_unit`, and `times`.
1142
+ The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with `interval`, `interval_unit`, and `times`. For details on valid Cron expressions, see [here](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions).
1143
1143
  """
1144
1144
  return pulumi.get(self, "cron_expression")
1145
1145
 
pulumi_aws/dlm/outputs.py CHANGED
@@ -928,7 +928,7 @@ class LifecyclePolicyPolicyDetailsScheduleCreateRule(dict):
928
928
  scripts: Optional['outputs.LifecyclePolicyPolicyDetailsScheduleCreateRuleScripts'] = None,
929
929
  times: Optional[_builtins.str] = None):
930
930
  """
931
- :param _builtins.str cron_expression: The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with `interval`, `interval_unit`, and `times`.
931
+ :param _builtins.str cron_expression: The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with `interval`, `interval_unit`, and `times`. For details on valid Cron expressions, see [here](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions).
932
932
  :param _builtins.str location: Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify `CLOUD`. To create snapshots on the same Outpost as the source resource, specify `OUTPOST_LOCAL`. If you omit this parameter, `CLOUD` is used by default. If the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost. Valid values are `CLOUD` and `OUTPOST_LOCAL`.
933
933
  :param 'LifecyclePolicyPolicyDetailsScheduleCreateRuleScriptsArgs' scripts: Specifies pre and/or post scripts for a snapshot lifecycle policy that targets instances. Valid only when `resource_type` is INSTANCE. See the `scripts` configuration block.
934
934
  :param _builtins.str times: A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1. Conflicts with `cron_expression`. Must be set if `interval` is set.
@@ -950,7 +950,7 @@ class LifecyclePolicyPolicyDetailsScheduleCreateRule(dict):
950
950
  @pulumi.getter(name="cronExpression")
951
951
  def cron_expression(self) -> Optional[_builtins.str]:
952
952
  """
953
- The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with `interval`, `interval_unit`, and `times`.
953
+ The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with `interval`, `interval_unit`, and `times`. For details on valid Cron expressions, see [here](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions).
954
954
  """
955
955
  return pulumi.get(self, "cron_expression")
956
956
 
@@ -10,6 +10,7 @@ from .contributor_insights import *
10
10
  from .get_table import *
11
11
  from .get_table_item import *
12
12
  from .get_tables import *
13
+ from .global_secondary_index import *
13
14
  from .global_table import *
14
15
  from .kinesis_streaming_destination import *
15
16
  from .resource_policy import *
@@ -15,6 +15,18 @@ else:
15
15
  from .. import _utilities
16
16
 
17
17
  __all__ = [
18
+ 'GlobalSecondaryIndexKeySchemaArgs',
19
+ 'GlobalSecondaryIndexKeySchemaArgsDict',
20
+ 'GlobalSecondaryIndexOnDemandThroughputArgs',
21
+ 'GlobalSecondaryIndexOnDemandThroughputArgsDict',
22
+ 'GlobalSecondaryIndexProjectionArgs',
23
+ 'GlobalSecondaryIndexProjectionArgsDict',
24
+ 'GlobalSecondaryIndexProvisionedThroughputArgs',
25
+ 'GlobalSecondaryIndexProvisionedThroughputArgsDict',
26
+ 'GlobalSecondaryIndexTimeoutsArgs',
27
+ 'GlobalSecondaryIndexTimeoutsArgsDict',
28
+ 'GlobalSecondaryIndexWarmThroughputArgs',
29
+ 'GlobalSecondaryIndexWarmThroughputArgsDict',
18
30
  'GlobalTableReplicaArgs',
19
31
  'GlobalTableReplicaArgsDict',
20
32
  'TableAttributeArgs',
@@ -57,6 +69,364 @@ __all__ = [
57
69
 
58
70
  MYPY = False
59
71
 
72
+ if not MYPY:
73
+ class GlobalSecondaryIndexKeySchemaArgsDict(TypedDict):
74
+ attribute_name: pulumi.Input[_builtins.str]
75
+ """
76
+ Name of the attribute.
77
+ """
78
+ attribute_type: pulumi.Input[_builtins.str]
79
+ """
80
+ Type of the attribute in the index.
81
+ Valid values are `S` (string), `N` (number), or `B` (binary).
82
+ """
83
+ key_type: pulumi.Input[_builtins.str]
84
+ """
85
+ Key type.
86
+ Valid values are `HASH` or `RANGE`.
87
+ """
88
+ elif False:
89
+ GlobalSecondaryIndexKeySchemaArgsDict: TypeAlias = Mapping[str, Any]
90
+
91
+ @pulumi.input_type
92
+ class GlobalSecondaryIndexKeySchemaArgs:
93
+ def __init__(__self__, *,
94
+ attribute_name: pulumi.Input[_builtins.str],
95
+ attribute_type: pulumi.Input[_builtins.str],
96
+ key_type: pulumi.Input[_builtins.str]):
97
+ """
98
+ :param pulumi.Input[_builtins.str] attribute_name: Name of the attribute.
99
+ :param pulumi.Input[_builtins.str] attribute_type: Type of the attribute in the index.
100
+ Valid values are `S` (string), `N` (number), or `B` (binary).
101
+ :param pulumi.Input[_builtins.str] key_type: Key type.
102
+ Valid values are `HASH` or `RANGE`.
103
+ """
104
+ pulumi.set(__self__, "attribute_name", attribute_name)
105
+ pulumi.set(__self__, "attribute_type", attribute_type)
106
+ pulumi.set(__self__, "key_type", key_type)
107
+
108
+ @_builtins.property
109
+ @pulumi.getter(name="attributeName")
110
+ def attribute_name(self) -> pulumi.Input[_builtins.str]:
111
+ """
112
+ Name of the attribute.
113
+ """
114
+ return pulumi.get(self, "attribute_name")
115
+
116
+ @attribute_name.setter
117
+ def attribute_name(self, value: pulumi.Input[_builtins.str]):
118
+ pulumi.set(self, "attribute_name", value)
119
+
120
+ @_builtins.property
121
+ @pulumi.getter(name="attributeType")
122
+ def attribute_type(self) -> pulumi.Input[_builtins.str]:
123
+ """
124
+ Type of the attribute in the index.
125
+ Valid values are `S` (string), `N` (number), or `B` (binary).
126
+ """
127
+ return pulumi.get(self, "attribute_type")
128
+
129
+ @attribute_type.setter
130
+ def attribute_type(self, value: pulumi.Input[_builtins.str]):
131
+ pulumi.set(self, "attribute_type", value)
132
+
133
+ @_builtins.property
134
+ @pulumi.getter(name="keyType")
135
+ def key_type(self) -> pulumi.Input[_builtins.str]:
136
+ """
137
+ Key type.
138
+ Valid values are `HASH` or `RANGE`.
139
+ """
140
+ return pulumi.get(self, "key_type")
141
+
142
+ @key_type.setter
143
+ def key_type(self, value: pulumi.Input[_builtins.str]):
144
+ pulumi.set(self, "key_type", value)
145
+
146
+
147
+ if not MYPY:
148
+ class GlobalSecondaryIndexOnDemandThroughputArgsDict(TypedDict):
149
+ max_read_request_units: NotRequired[pulumi.Input[_builtins.int]]
150
+ """
151
+ Maximum number of read request units for this index.
152
+ """
153
+ max_write_request_units: NotRequired[pulumi.Input[_builtins.int]]
154
+ """
155
+ Maximum number of write request units for this index.
156
+ """
157
+ elif False:
158
+ GlobalSecondaryIndexOnDemandThroughputArgsDict: TypeAlias = Mapping[str, Any]
159
+
160
+ @pulumi.input_type
161
+ class GlobalSecondaryIndexOnDemandThroughputArgs:
162
+ def __init__(__self__, *,
163
+ max_read_request_units: Optional[pulumi.Input[_builtins.int]] = None,
164
+ max_write_request_units: Optional[pulumi.Input[_builtins.int]] = None):
165
+ """
166
+ :param pulumi.Input[_builtins.int] max_read_request_units: Maximum number of read request units for this index.
167
+ :param pulumi.Input[_builtins.int] max_write_request_units: Maximum number of write request units for this index.
168
+ """
169
+ if max_read_request_units is not None:
170
+ pulumi.set(__self__, "max_read_request_units", max_read_request_units)
171
+ if max_write_request_units is not None:
172
+ pulumi.set(__self__, "max_write_request_units", max_write_request_units)
173
+
174
+ @_builtins.property
175
+ @pulumi.getter(name="maxReadRequestUnits")
176
+ def max_read_request_units(self) -> Optional[pulumi.Input[_builtins.int]]:
177
+ """
178
+ Maximum number of read request units for this index.
179
+ """
180
+ return pulumi.get(self, "max_read_request_units")
181
+
182
+ @max_read_request_units.setter
183
+ def max_read_request_units(self, value: Optional[pulumi.Input[_builtins.int]]):
184
+ pulumi.set(self, "max_read_request_units", value)
185
+
186
+ @_builtins.property
187
+ @pulumi.getter(name="maxWriteRequestUnits")
188
+ def max_write_request_units(self) -> Optional[pulumi.Input[_builtins.int]]:
189
+ """
190
+ Maximum number of write request units for this index.
191
+ """
192
+ return pulumi.get(self, "max_write_request_units")
193
+
194
+ @max_write_request_units.setter
195
+ def max_write_request_units(self, value: Optional[pulumi.Input[_builtins.int]]):
196
+ pulumi.set(self, "max_write_request_units", value)
197
+
198
+
199
+ if not MYPY:
200
+ class GlobalSecondaryIndexProjectionArgsDict(TypedDict):
201
+ projection_type: pulumi.Input[_builtins.str]
202
+ """
203
+ The set of attributes represented in the index.
204
+ One of `ALL`, `INCLUDE`, or `KEYS_ONLY`.
205
+ """
206
+ non_key_attributes: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
207
+ """
208
+ Specifies which additional attributes to include in the index.
209
+ Only valid when `projection_type` is `INCLUDE`.`
210
+ """
211
+ elif False:
212
+ GlobalSecondaryIndexProjectionArgsDict: TypeAlias = Mapping[str, Any]
213
+
214
+ @pulumi.input_type
215
+ class GlobalSecondaryIndexProjectionArgs:
216
+ def __init__(__self__, *,
217
+ projection_type: pulumi.Input[_builtins.str],
218
+ non_key_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
219
+ """
220
+ :param pulumi.Input[_builtins.str] projection_type: The set of attributes represented in the index.
221
+ One of `ALL`, `INCLUDE`, or `KEYS_ONLY`.
222
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] non_key_attributes: Specifies which additional attributes to include in the index.
223
+ Only valid when `projection_type` is `INCLUDE`.`
224
+ """
225
+ pulumi.set(__self__, "projection_type", projection_type)
226
+ if non_key_attributes is not None:
227
+ pulumi.set(__self__, "non_key_attributes", non_key_attributes)
228
+
229
+ @_builtins.property
230
+ @pulumi.getter(name="projectionType")
231
+ def projection_type(self) -> pulumi.Input[_builtins.str]:
232
+ """
233
+ The set of attributes represented in the index.
234
+ One of `ALL`, `INCLUDE`, or `KEYS_ONLY`.
235
+ """
236
+ return pulumi.get(self, "projection_type")
237
+
238
+ @projection_type.setter
239
+ def projection_type(self, value: pulumi.Input[_builtins.str]):
240
+ pulumi.set(self, "projection_type", value)
241
+
242
+ @_builtins.property
243
+ @pulumi.getter(name="nonKeyAttributes")
244
+ def non_key_attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
245
+ """
246
+ Specifies which additional attributes to include in the index.
247
+ Only valid when `projection_type` is `INCLUDE`.`
248
+ """
249
+ return pulumi.get(self, "non_key_attributes")
250
+
251
+ @non_key_attributes.setter
252
+ def non_key_attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
253
+ pulumi.set(self, "non_key_attributes", value)
254
+
255
+
256
+ if not MYPY:
257
+ class GlobalSecondaryIndexProvisionedThroughputArgsDict(TypedDict):
258
+ read_capacity_units: NotRequired[pulumi.Input[_builtins.int]]
259
+ """
260
+ Number of read capacity units for this index.
261
+ """
262
+ write_capacity_units: NotRequired[pulumi.Input[_builtins.int]]
263
+ """
264
+ Number of write capacity units for this index.
265
+ """
266
+ elif False:
267
+ GlobalSecondaryIndexProvisionedThroughputArgsDict: TypeAlias = Mapping[str, Any]
268
+
269
+ @pulumi.input_type
270
+ class GlobalSecondaryIndexProvisionedThroughputArgs:
271
+ def __init__(__self__, *,
272
+ read_capacity_units: Optional[pulumi.Input[_builtins.int]] = None,
273
+ write_capacity_units: Optional[pulumi.Input[_builtins.int]] = None):
274
+ """
275
+ :param pulumi.Input[_builtins.int] read_capacity_units: Number of read capacity units for this index.
276
+ :param pulumi.Input[_builtins.int] write_capacity_units: Number of write capacity units for this index.
277
+ """
278
+ if read_capacity_units is not None:
279
+ pulumi.set(__self__, "read_capacity_units", read_capacity_units)
280
+ if write_capacity_units is not None:
281
+ pulumi.set(__self__, "write_capacity_units", write_capacity_units)
282
+
283
+ @_builtins.property
284
+ @pulumi.getter(name="readCapacityUnits")
285
+ def read_capacity_units(self) -> Optional[pulumi.Input[_builtins.int]]:
286
+ """
287
+ Number of read capacity units for this index.
288
+ """
289
+ return pulumi.get(self, "read_capacity_units")
290
+
291
+ @read_capacity_units.setter
292
+ def read_capacity_units(self, value: Optional[pulumi.Input[_builtins.int]]):
293
+ pulumi.set(self, "read_capacity_units", value)
294
+
295
+ @_builtins.property
296
+ @pulumi.getter(name="writeCapacityUnits")
297
+ def write_capacity_units(self) -> Optional[pulumi.Input[_builtins.int]]:
298
+ """
299
+ Number of write capacity units for this index.
300
+ """
301
+ return pulumi.get(self, "write_capacity_units")
302
+
303
+ @write_capacity_units.setter
304
+ def write_capacity_units(self, value: Optional[pulumi.Input[_builtins.int]]):
305
+ pulumi.set(self, "write_capacity_units", value)
306
+
307
+
308
+ if not MYPY:
309
+ class GlobalSecondaryIndexTimeoutsArgsDict(TypedDict):
310
+ create: NotRequired[pulumi.Input[_builtins.str]]
311
+ """
312
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
313
+ """
314
+ delete: NotRequired[pulumi.Input[_builtins.str]]
315
+ """
316
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
317
+ """
318
+ update: NotRequired[pulumi.Input[_builtins.str]]
319
+ """
320
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
321
+ """
322
+ elif False:
323
+ GlobalSecondaryIndexTimeoutsArgsDict: TypeAlias = Mapping[str, Any]
324
+
325
+ @pulumi.input_type
326
+ class GlobalSecondaryIndexTimeoutsArgs:
327
+ def __init__(__self__, *,
328
+ create: Optional[pulumi.Input[_builtins.str]] = None,
329
+ delete: Optional[pulumi.Input[_builtins.str]] = None,
330
+ update: Optional[pulumi.Input[_builtins.str]] = None):
331
+ """
332
+ :param pulumi.Input[_builtins.str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
333
+ :param pulumi.Input[_builtins.str] delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
334
+ :param pulumi.Input[_builtins.str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
335
+ """
336
+ if create is not None:
337
+ pulumi.set(__self__, "create", create)
338
+ if delete is not None:
339
+ pulumi.set(__self__, "delete", delete)
340
+ if update is not None:
341
+ pulumi.set(__self__, "update", update)
342
+
343
+ @_builtins.property
344
+ @pulumi.getter
345
+ def create(self) -> Optional[pulumi.Input[_builtins.str]]:
346
+ """
347
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
348
+ """
349
+ return pulumi.get(self, "create")
350
+
351
+ @create.setter
352
+ def create(self, value: Optional[pulumi.Input[_builtins.str]]):
353
+ pulumi.set(self, "create", value)
354
+
355
+ @_builtins.property
356
+ @pulumi.getter
357
+ def delete(self) -> Optional[pulumi.Input[_builtins.str]]:
358
+ """
359
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
360
+ """
361
+ return pulumi.get(self, "delete")
362
+
363
+ @delete.setter
364
+ def delete(self, value: Optional[pulumi.Input[_builtins.str]]):
365
+ pulumi.set(self, "delete", value)
366
+
367
+ @_builtins.property
368
+ @pulumi.getter
369
+ def update(self) -> Optional[pulumi.Input[_builtins.str]]:
370
+ """
371
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
372
+ """
373
+ return pulumi.get(self, "update")
374
+
375
+ @update.setter
376
+ def update(self, value: Optional[pulumi.Input[_builtins.str]]):
377
+ pulumi.set(self, "update", value)
378
+
379
+
380
+ if not MYPY:
381
+ class GlobalSecondaryIndexWarmThroughputArgsDict(TypedDict):
382
+ read_units_per_second: pulumi.Input[_builtins.int]
383
+ """
384
+ Number of read operations this index can instantaneously support.
385
+ """
386
+ write_units_per_second: pulumi.Input[_builtins.int]
387
+ """
388
+ Number of write operations this index can instantaneously support.
389
+ """
390
+ elif False:
391
+ GlobalSecondaryIndexWarmThroughputArgsDict: TypeAlias = Mapping[str, Any]
392
+
393
+ @pulumi.input_type
394
+ class GlobalSecondaryIndexWarmThroughputArgs:
395
+ def __init__(__self__, *,
396
+ read_units_per_second: pulumi.Input[_builtins.int],
397
+ write_units_per_second: pulumi.Input[_builtins.int]):
398
+ """
399
+ :param pulumi.Input[_builtins.int] read_units_per_second: Number of read operations this index can instantaneously support.
400
+ :param pulumi.Input[_builtins.int] write_units_per_second: Number of write operations this index can instantaneously support.
401
+ """
402
+ pulumi.set(__self__, "read_units_per_second", read_units_per_second)
403
+ pulumi.set(__self__, "write_units_per_second", write_units_per_second)
404
+
405
+ @_builtins.property
406
+ @pulumi.getter(name="readUnitsPerSecond")
407
+ def read_units_per_second(self) -> pulumi.Input[_builtins.int]:
408
+ """
409
+ Number of read operations this index can instantaneously support.
410
+ """
411
+ return pulumi.get(self, "read_units_per_second")
412
+
413
+ @read_units_per_second.setter
414
+ def read_units_per_second(self, value: pulumi.Input[_builtins.int]):
415
+ pulumi.set(self, "read_units_per_second", value)
416
+
417
+ @_builtins.property
418
+ @pulumi.getter(name="writeUnitsPerSecond")
419
+ def write_units_per_second(self) -> pulumi.Input[_builtins.int]:
420
+ """
421
+ Number of write operations this index can instantaneously support.
422
+ """
423
+ return pulumi.get(self, "write_units_per_second")
424
+
425
+ @write_units_per_second.setter
426
+ def write_units_per_second(self, value: pulumi.Input[_builtins.int]):
427
+ pulumi.set(self, "write_units_per_second", value)
428
+
429
+
60
430
  if not MYPY:
61
431
  class GlobalTableReplicaArgsDict(TypedDict):
62
432
  region_name: pulumi.Input[_builtins.str]