localstack-core 4.7.1.dev49__py3-none-any.whl → 4.10.1.dev12__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.
- localstack/aws/api/cloudformation/__init__.py +18 -4
- localstack/aws/api/cloudwatch/__init__.py +41 -1
- localstack/aws/api/config/__init__.py +4 -0
- localstack/aws/api/core.py +6 -2
- localstack/aws/api/dynamodb/__init__.py +30 -0
- localstack/aws/api/ec2/__init__.py +1522 -65
- localstack/aws/api/iam/__init__.py +7 -0
- localstack/aws/api/kinesis/__init__.py +19 -0
- localstack/aws/api/kms/__init__.py +6 -0
- localstack/aws/api/lambda_/__init__.py +13 -0
- localstack/aws/api/logs/__init__.py +15 -0
- localstack/aws/api/redshift/__init__.py +9 -3
- localstack/aws/api/route53/__init__.py +5 -0
- localstack/aws/api/s3/__init__.py +12 -0
- localstack/aws/api/s3control/__init__.py +54 -0
- localstack/aws/api/ssm/__init__.py +2 -0
- localstack/aws/api/transcribe/__init__.py +17 -0
- localstack/aws/client.py +7 -2
- localstack/aws/forwarder.py +52 -5
- localstack/aws/handlers/analytics.py +1 -1
- localstack/aws/handlers/internal_requests.py +6 -1
- localstack/aws/handlers/logging.py +12 -2
- localstack/aws/handlers/metric_handler.py +41 -1
- localstack/aws/handlers/service.py +40 -20
- localstack/aws/mocking.py +2 -2
- localstack/aws/patches.py +2 -2
- localstack/aws/protocol/parser.py +459 -32
- localstack/aws/protocol/serializer.py +689 -69
- localstack/aws/protocol/service_router.py +120 -20
- localstack/aws/protocol/validate.py +1 -1
- localstack/aws/scaffold.py +1 -1
- localstack/aws/skeleton.py +4 -2
- localstack/aws/spec-patches.json +58 -0
- localstack/aws/spec.py +37 -16
- localstack/cli/exceptions.py +1 -1
- localstack/cli/localstack.py +6 -6
- localstack/cli/lpm.py +3 -4
- localstack/cli/plugins.py +1 -1
- localstack/cli/profiles.py +1 -2
- localstack/config.py +25 -18
- localstack/constants.py +4 -29
- localstack/dev/kubernetes/__main__.py +130 -7
- localstack/dev/run/configurators.py +1 -4
- localstack/dev/run/paths.py +1 -1
- localstack/dns/plugins.py +5 -1
- localstack/dns/server.py +13 -4
- localstack/logging/format.py +3 -3
- localstack/packages/api.py +9 -8
- localstack/packages/core.py +2 -2
- localstack/packages/plugins.py +0 -8
- localstack/runtime/analytics.py +3 -0
- localstack/runtime/hooks.py +1 -1
- localstack/runtime/init.py +2 -2
- localstack/runtime/main.py +5 -5
- localstack/runtime/patches.py +2 -2
- localstack/services/apigateway/helpers.py +1 -4
- localstack/services/apigateway/legacy/helpers.py +7 -8
- localstack/services/apigateway/legacy/integration.py +4 -3
- localstack/services/apigateway/legacy/invocations.py +6 -5
- localstack/services/apigateway/legacy/provider.py +148 -68
- localstack/services/apigateway/legacy/templates.py +1 -1
- localstack/services/apigateway/next_gen/execute_api/handlers/method_request.py +7 -2
- localstack/services/apigateway/next_gen/execute_api/handlers/resource_router.py +1 -2
- localstack/services/apigateway/next_gen/execute_api/integrations/aws.py +3 -0
- localstack/services/apigateway/next_gen/execute_api/integrations/http.py +3 -3
- localstack/services/apigateway/next_gen/execute_api/template_mapping.py +2 -2
- localstack/services/apigateway/next_gen/execute_api/test_invoke.py +114 -9
- localstack/services/apigateway/next_gen/provider.py +5 -0
- localstack/services/apigateway/resource_providers/aws_apigateway_resource.py +1 -1
- localstack/services/cloudformation/api_utils.py +4 -8
- localstack/services/cloudformation/cfn_utils.py +1 -1
- localstack/services/cloudformation/engine/entities.py +14 -4
- localstack/services/cloudformation/engine/template_deployer.py +6 -4
- localstack/services/cloudformation/engine/transformers.py +6 -4
- localstack/services/cloudformation/engine/v2/change_set_model.py +201 -13
- localstack/services/cloudformation/engine/v2/change_set_model_describer.py +52 -3
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py +117 -76
- localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +205 -52
- localstack/services/cloudformation/engine/v2/change_set_model_transform.py +350 -116
- localstack/services/cloudformation/engine/v2/change_set_model_validator.py +56 -14
- localstack/services/cloudformation/engine/v2/change_set_model_visitor.py +1 -0
- localstack/services/cloudformation/engine/v2/resolving.py +7 -5
- localstack/services/cloudformation/engine/yaml_parser.py +9 -2
- localstack/services/cloudformation/provider.py +7 -5
- localstack/services/cloudformation/resource_provider.py +7 -1
- localstack/services/cloudformation/resources.py +24149 -0
- localstack/services/cloudformation/service_models.py +2 -2
- localstack/services/cloudformation/v2/entities.py +19 -9
- localstack/services/cloudformation/v2/provider.py +336 -106
- localstack/services/cloudformation/v2/types.py +13 -7
- localstack/services/cloudformation/v2/utils.py +4 -1
- localstack/services/cloudwatch/alarm_scheduler.py +4 -1
- localstack/services/cloudwatch/provider.py +18 -13
- localstack/services/cloudwatch/provider_v2.py +25 -28
- localstack/services/dynamodb/packages.py +2 -1
- localstack/services/dynamodb/provider.py +42 -0
- localstack/services/dynamodb/server.py +2 -2
- localstack/services/dynamodb/v2/provider.py +42 -0
- localstack/services/ecr/resource_providers/aws_ecr_repository.py +5 -2
- localstack/services/edge.py +1 -1
- localstack/services/es/provider.py +2 -2
- localstack/services/events/event_rule_engine.py +31 -13
- localstack/services/events/models.py +4 -5
- localstack/services/events/provider.py +17 -14
- localstack/services/events/target.py +17 -9
- localstack/services/events/v1/provider.py +5 -5
- localstack/services/firehose/provider.py +14 -4
- localstack/services/iam/provider.py +11 -116
- localstack/services/iam/resources/policy_simulator.py +133 -0
- localstack/services/kinesis/models.py +15 -2
- localstack/services/kinesis/provider.py +86 -3
- localstack/services/kms/provider.py +14 -5
- localstack/services/lambda_/api_utils.py +6 -3
- localstack/services/lambda_/invocation/docker_runtime_executor.py +1 -1
- localstack/services/lambda_/invocation/event_manager.py +1 -1
- localstack/services/lambda_/invocation/internal_sqs_queue.py +5 -9
- localstack/services/lambda_/invocation/lambda_models.py +10 -7
- localstack/services/lambda_/invocation/lambda_service.py +5 -1
- localstack/services/lambda_/packages.py +1 -1
- localstack/services/lambda_/provider.py +4 -3
- localstack/services/lambda_/provider_utils.py +1 -1
- localstack/services/logs/provider.py +36 -19
- localstack/services/moto.py +2 -1
- localstack/services/opensearch/cluster.py +15 -7
- localstack/services/opensearch/packages.py +26 -7
- localstack/services/opensearch/provider.py +8 -2
- localstack/services/opensearch/versions.py +56 -7
- localstack/services/plugins.py +11 -7
- localstack/services/providers.py +10 -2
- localstack/services/redshift/provider.py +0 -21
- localstack/services/s3/constants.py +5 -2
- localstack/services/s3/cors.py +4 -4
- localstack/services/s3/models.py +1 -1
- localstack/services/s3/notifications.py +55 -39
- localstack/services/s3/presigned_url.py +35 -54
- localstack/services/s3/provider.py +73 -15
- localstack/services/s3/utils.py +42 -22
- localstack/services/s3/validation.py +46 -32
- localstack/services/s3/website_hosting.py +4 -2
- localstack/services/ses/provider.py +18 -8
- localstack/services/sns/constants.py +7 -1
- localstack/services/sns/executor.py +9 -2
- localstack/services/sns/provider.py +8 -5
- localstack/services/sns/publisher.py +31 -16
- localstack/services/sns/v2/models.py +167 -0
- localstack/services/sns/v2/provider.py +867 -0
- localstack/services/sns/v2/utils.py +130 -0
- localstack/services/sqs/constants.py +1 -1
- localstack/services/sqs/developer_api.py +205 -0
- localstack/services/sqs/models.py +48 -5
- localstack/services/sqs/provider.py +38 -311
- localstack/services/sqs/query_api.py +6 -2
- localstack/services/sqs/utils.py +121 -2
- localstack/services/ssm/provider.py +1 -1
- localstack/services/stepfunctions/asl/component/intrinsic/member.py +1 -1
- localstack/services/stepfunctions/asl/component/state/state_choice/comparison/comparison.py +5 -11
- localstack/services/stepfunctions/asl/component/state/state_choice/state_choice.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/state_map.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/state_parallel.py +1 -1
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/state_task.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_fail/state_fail.py +1 -1
- localstack/services/stepfunctions/asl/component/state/state_pass/state_pass.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_succeed/state_succeed.py +1 -1
- localstack/services/stepfunctions/asl/component/state/state_wait/state_wait.py +1 -1
- localstack/services/stepfunctions/asl/eval/environment.py +1 -1
- localstack/services/stepfunctions/asl/jsonata/jsonata.py +1 -1
- localstack/services/stepfunctions/backend/execution.py +2 -1
- localstack/services/stores.py +1 -1
- localstack/services/transcribe/provider.py +6 -1
- localstack/state/codecs.py +61 -0
- localstack/state/core.py +11 -5
- localstack/state/pickle.py +10 -49
- localstack/testing/aws/cloudformation_utils.py +1 -1
- localstack/testing/pytest/cloudformation/fixtures.py +3 -3
- localstack/testing/pytest/cloudformation/transformers.py +0 -0
- localstack/testing/pytest/container.py +4 -5
- localstack/testing/pytest/fixtures.py +33 -31
- localstack/testing/pytest/in_memory_localstack.py +0 -4
- localstack/testing/pytest/marking.py +38 -11
- localstack/testing/pytest/stepfunctions/utils.py +4 -3
- localstack/testing/pytest/util.py +1 -1
- localstack/testing/pytest/validation_tracking.py +1 -2
- localstack/testing/snapshots/transformer_utility.py +6 -1
- localstack/utils/analytics/events.py +2 -2
- localstack/utils/analytics/metadata.py +6 -4
- localstack/utils/analytics/metrics/counter.py +8 -15
- localstack/utils/analytics/publisher.py +1 -2
- localstack/utils/analytics/service_providers.py +19 -0
- localstack/utils/analytics/service_request_aggregator.py +2 -2
- localstack/utils/archives.py +11 -11
- localstack/utils/asyncio.py +2 -2
- localstack/utils/aws/arns.py +24 -29
- localstack/utils/aws/aws_responses.py +8 -8
- localstack/utils/aws/aws_stack.py +2 -3
- localstack/utils/aws/dead_letter_queue.py +1 -5
- localstack/utils/aws/message_forwarding.py +1 -2
- localstack/utils/aws/request_context.py +4 -5
- localstack/utils/aws/resources.py +1 -1
- localstack/utils/aws/templating.py +1 -1
- localstack/utils/batch_policy.py +3 -3
- localstack/utils/bootstrap.py +21 -13
- localstack/utils/catalog/catalog.py +139 -0
- localstack/utils/catalog/catalog_loader.py +119 -0
- localstack/utils/catalog/common.py +58 -0
- localstack/utils/catalog/plugins.py +28 -0
- localstack/utils/cloudwatch/cloudwatch_util.py +5 -5
- localstack/utils/collections.py +7 -8
- localstack/utils/config_listener.py +1 -1
- localstack/utils/container_networking.py +2 -3
- localstack/utils/container_utils/container_client.py +135 -136
- localstack/utils/container_utils/docker_cmd_client.py +85 -69
- localstack/utils/container_utils/docker_sdk_client.py +69 -66
- localstack/utils/crypto.py +10 -10
- localstack/utils/diagnose.py +3 -4
- localstack/utils/docker_utils.py +9 -5
- localstack/utils/files.py +33 -13
- localstack/utils/functions.py +4 -3
- localstack/utils/http.py +11 -11
- localstack/utils/json.py +20 -6
- localstack/utils/kinesis/kinesis_connector.py +2 -1
- localstack/utils/net.py +15 -9
- localstack/utils/no_exit_argument_parser.py +2 -2
- localstack/utils/numbers.py +9 -2
- localstack/utils/objects.py +7 -6
- localstack/utils/patch.py +10 -3
- localstack/utils/run.py +12 -11
- localstack/utils/scheduler.py +11 -11
- localstack/utils/server/tcp_proxy.py +2 -2
- localstack/utils/serving.py +3 -4
- localstack/utils/strings.py +15 -16
- localstack/utils/sync.py +126 -1
- localstack/utils/tagging.py +8 -6
- localstack/utils/testutil.py +8 -8
- localstack/utils/threads.py +2 -2
- localstack/utils/time.py +12 -4
- localstack/utils/urls.py +1 -3
- localstack/utils/xray/traceid.py +1 -1
- localstack/version.py +16 -3
- {localstack_core-4.7.1.dev49.dist-info → localstack_core-4.10.1.dev12.dist-info}/METADATA +18 -14
- {localstack_core-4.7.1.dev49.dist-info → localstack_core-4.10.1.dev12.dist-info}/RECORD +248 -239
- {localstack_core-4.7.1.dev49.dist-info → localstack_core-4.10.1.dev12.dist-info}/entry_points.txt +8 -4
- localstack_core-4.10.1.dev12.dist-info/plux.json +1 -0
- localstack/packages/terraform.py +0 -46
- localstack/services/cloudformation/deploy.html +0 -144
- localstack/services/cloudformation/deploy_ui.py +0 -47
- localstack/services/cloudformation/plugins.py +0 -12
- localstack_core-4.7.1.dev49.dist-info/plux.json +0 -1
- {localstack_core-4.7.1.dev49.data → localstack_core-4.10.1.dev12.data}/scripts/localstack +0 -0
- {localstack_core-4.7.1.dev49.data → localstack_core-4.10.1.dev12.data}/scripts/localstack-supervisor +0 -0
- {localstack_core-4.7.1.dev49.data → localstack_core-4.10.1.dev12.data}/scripts/localstack.bat +0 -0
- {localstack_core-4.7.1.dev49.dist-info → localstack_core-4.10.1.dev12.dist-info}/WHEEL +0 -0
- {localstack_core-4.7.1.dev49.dist-info → localstack_core-4.10.1.dev12.dist-info}/licenses/LICENSE.txt +0 -0
- {localstack_core-4.7.1.dev49.dist-info → localstack_core-4.10.1.dev12.dist-info}/top_level.txt +0 -0
|
@@ -47,10 +47,12 @@ FailureTolerancePercentage = int
|
|
|
47
47
|
GeneratedTemplateId = str
|
|
48
48
|
GeneratedTemplateName = str
|
|
49
49
|
HookInvocationCount = int
|
|
50
|
+
HookInvocationId = str
|
|
50
51
|
HookResultId = str
|
|
51
52
|
HookStatusReason = str
|
|
52
53
|
HookTargetTypeName = str
|
|
53
54
|
HookType = str
|
|
55
|
+
HookTypeArn = str
|
|
54
56
|
HookTypeConfigurationVersionId = str
|
|
55
57
|
HookTypeName = str
|
|
56
58
|
HookTypeVersionId = str
|
|
@@ -720,6 +722,7 @@ class WarningType(StrEnum):
|
|
|
720
722
|
UNSUPPORTED_PROPERTIES = "UNSUPPORTED_PROPERTIES"
|
|
721
723
|
MUTUALLY_EXCLUSIVE_TYPES = "MUTUALLY_EXCLUSIVE_TYPES"
|
|
722
724
|
EXCLUDED_PROPERTIES = "EXCLUDED_PROPERTIES"
|
|
725
|
+
EXCLUDED_RESOURCES = "EXCLUDED_RESOURCES"
|
|
723
726
|
|
|
724
727
|
|
|
725
728
|
class AlreadyExistsException(ServiceException):
|
|
@@ -1603,6 +1606,7 @@ class StackEvent(TypedDict, total=False):
|
|
|
1603
1606
|
HookStatus: Optional[HookStatus]
|
|
1604
1607
|
HookStatusReason: Optional[HookStatusReason]
|
|
1605
1608
|
HookInvocationPoint: Optional[HookInvocationPoint]
|
|
1609
|
+
HookInvocationId: Optional[HookInvocationId]
|
|
1606
1610
|
HookFailureMode: Optional[HookFailureMode]
|
|
1607
1611
|
DetailedStatus: Optional[DetailedStatus]
|
|
1608
1612
|
|
|
@@ -2118,6 +2122,7 @@ class GetTemplateSummaryOutput(TypedDict, total=False):
|
|
|
2118
2122
|
|
|
2119
2123
|
|
|
2120
2124
|
class HookResultSummary(TypedDict, total=False):
|
|
2125
|
+
HookResultId: Optional[HookInvocationId]
|
|
2121
2126
|
InvocationPoint: Optional[HookInvocationPoint]
|
|
2122
2127
|
FailureMode: Optional[HookFailureMode]
|
|
2123
2128
|
TypeName: Optional[HookTypeName]
|
|
@@ -2125,6 +2130,11 @@ class HookResultSummary(TypedDict, total=False):
|
|
|
2125
2130
|
TypeConfigurationVersionId: Optional[HookTypeConfigurationVersionId]
|
|
2126
2131
|
Status: Optional[HookStatus]
|
|
2127
2132
|
HookStatusReason: Optional[HookStatusReason]
|
|
2133
|
+
InvokedAt: Optional[Timestamp]
|
|
2134
|
+
TargetType: Optional[ListHookResultsTargetType]
|
|
2135
|
+
TargetId: Optional[HookResultId]
|
|
2136
|
+
TypeArn: Optional[HookTypeArn]
|
|
2137
|
+
HookExecutionTarget: Optional[HookResultId]
|
|
2128
2138
|
|
|
2129
2139
|
|
|
2130
2140
|
HookResultSummaries = List[HookResultSummary]
|
|
@@ -2195,8 +2205,10 @@ class ListGeneratedTemplatesOutput(TypedDict, total=False):
|
|
|
2195
2205
|
|
|
2196
2206
|
|
|
2197
2207
|
class ListHookResultsInput(ServiceRequest):
|
|
2198
|
-
TargetType: ListHookResultsTargetType
|
|
2199
|
-
TargetId: HookResultId
|
|
2208
|
+
TargetType: Optional[ListHookResultsTargetType]
|
|
2209
|
+
TargetId: Optional[HookResultId]
|
|
2210
|
+
TypeArn: Optional[HookTypeArn]
|
|
2211
|
+
Status: Optional[HookStatus]
|
|
2200
2212
|
NextToken: Optional[NextToken]
|
|
2201
2213
|
|
|
2202
2214
|
|
|
@@ -3456,8 +3468,10 @@ class CloudformationApi:
|
|
|
3456
3468
|
def list_hook_results(
|
|
3457
3469
|
self,
|
|
3458
3470
|
context: RequestContext,
|
|
3459
|
-
target_type: ListHookResultsTargetType,
|
|
3460
|
-
target_id: HookResultId,
|
|
3471
|
+
target_type: ListHookResultsTargetType | None = None,
|
|
3472
|
+
target_id: HookResultId | None = None,
|
|
3473
|
+
type_arn: HookTypeArn | None = None,
|
|
3474
|
+
status: HookStatus | None = None,
|
|
3461
3475
|
next_token: NextToken | None = None,
|
|
3462
3476
|
**kwargs,
|
|
3463
3477
|
) -> ListHookResultsOutput:
|
|
@@ -16,7 +16,10 @@ AlarmRule = str
|
|
|
16
16
|
AmazonResourceName = str
|
|
17
17
|
AnomalyDetectorMetricStat = str
|
|
18
18
|
AnomalyDetectorMetricTimezone = str
|
|
19
|
+
AttributeName = str
|
|
20
|
+
AttributeValue = str
|
|
19
21
|
AwsQueryErrorMessage = str
|
|
22
|
+
ContributorId = str
|
|
20
23
|
DashboardArn = str
|
|
21
24
|
DashboardBody = str
|
|
22
25
|
DashboardErrorMessage = str
|
|
@@ -136,6 +139,8 @@ class HistoryItemType(StrEnum):
|
|
|
136
139
|
ConfigurationUpdate = "ConfigurationUpdate"
|
|
137
140
|
StateUpdate = "StateUpdate"
|
|
138
141
|
Action = "Action"
|
|
142
|
+
AlarmContributorStateUpdate = "AlarmContributorStateUpdate"
|
|
143
|
+
AlarmContributorAction = "AlarmContributorAction"
|
|
139
144
|
|
|
140
145
|
|
|
141
146
|
class MetricStreamOutputFormat(StrEnum):
|
|
@@ -213,7 +218,7 @@ class ConcurrentModificationException(ServiceException):
|
|
|
213
218
|
class ConflictException(ServiceException):
|
|
214
219
|
code: str = "ConflictException"
|
|
215
220
|
sender_fault: bool = False
|
|
216
|
-
status_code: int =
|
|
221
|
+
status_code: int = 409
|
|
217
222
|
|
|
218
223
|
|
|
219
224
|
class DashboardValidationMessage(TypedDict, total=False):
|
|
@@ -300,15 +305,28 @@ class ResourceNotFoundException(ServiceException):
|
|
|
300
305
|
|
|
301
306
|
|
|
302
307
|
Timestamp = datetime
|
|
308
|
+
ContributorAttributes = Dict[AttributeName, AttributeValue]
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
class AlarmContributor(TypedDict, total=False):
|
|
312
|
+
ContributorId: ContributorId
|
|
313
|
+
ContributorAttributes: ContributorAttributes
|
|
314
|
+
StateReason: StateReason
|
|
315
|
+
StateTransitionedTimestamp: Optional[Timestamp]
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
AlarmContributors = List[AlarmContributor]
|
|
303
319
|
|
|
304
320
|
|
|
305
321
|
class AlarmHistoryItem(TypedDict, total=False):
|
|
306
322
|
AlarmName: Optional[AlarmName]
|
|
323
|
+
AlarmContributorId: Optional[ContributorId]
|
|
307
324
|
AlarmType: Optional[AlarmType]
|
|
308
325
|
Timestamp: Optional[Timestamp]
|
|
309
326
|
HistoryItemType: Optional[HistoryItemType]
|
|
310
327
|
HistorySummary: Optional[HistorySummary]
|
|
311
328
|
HistoryData: Optional[HistoryData]
|
|
329
|
+
AlarmContributorAttributes: Optional[ContributorAttributes]
|
|
312
330
|
|
|
313
331
|
|
|
314
332
|
AlarmHistoryItems = List[AlarmHistoryItem]
|
|
@@ -505,8 +523,19 @@ class DeleteMetricStreamOutput(TypedDict, total=False):
|
|
|
505
523
|
pass
|
|
506
524
|
|
|
507
525
|
|
|
526
|
+
class DescribeAlarmContributorsInput(ServiceRequest):
|
|
527
|
+
AlarmName: AlarmName
|
|
528
|
+
NextToken: Optional[NextToken]
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
class DescribeAlarmContributorsOutput(TypedDict, total=False):
|
|
532
|
+
AlarmContributors: AlarmContributors
|
|
533
|
+
NextToken: Optional[NextToken]
|
|
534
|
+
|
|
535
|
+
|
|
508
536
|
class DescribeAlarmHistoryInput(ServiceRequest):
|
|
509
537
|
AlarmName: Optional[AlarmName]
|
|
538
|
+
AlarmContributorId: Optional[ContributorId]
|
|
510
539
|
AlarmTypes: Optional[AlarmTypes]
|
|
511
540
|
HistoryItemType: Optional[HistoryItemType]
|
|
512
541
|
StartDate: Optional[Timestamp]
|
|
@@ -1179,11 +1208,22 @@ class CloudwatchApi:
|
|
|
1179
1208
|
) -> DeleteMetricStreamOutput:
|
|
1180
1209
|
raise NotImplementedError
|
|
1181
1210
|
|
|
1211
|
+
@handler("DescribeAlarmContributors")
|
|
1212
|
+
def describe_alarm_contributors(
|
|
1213
|
+
self,
|
|
1214
|
+
context: RequestContext,
|
|
1215
|
+
alarm_name: AlarmName,
|
|
1216
|
+
next_token: NextToken | None = None,
|
|
1217
|
+
**kwargs,
|
|
1218
|
+
) -> DescribeAlarmContributorsOutput:
|
|
1219
|
+
raise NotImplementedError
|
|
1220
|
+
|
|
1182
1221
|
@handler("DescribeAlarmHistory")
|
|
1183
1222
|
def describe_alarm_history(
|
|
1184
1223
|
self,
|
|
1185
1224
|
context: RequestContext,
|
|
1186
1225
|
alarm_name: AlarmName | None = None,
|
|
1226
|
+
alarm_contributor_id: ContributorId | None = None,
|
|
1187
1227
|
alarm_types: AlarmTypes | None = None,
|
|
1188
1228
|
history_item_type: HistoryItemType | None = None,
|
|
1189
1229
|
start_date: Timestamp | None = None,
|
|
@@ -291,12 +291,16 @@ class RemediationExecutionState(StrEnum):
|
|
|
291
291
|
IN_PROGRESS = "IN_PROGRESS"
|
|
292
292
|
SUCCEEDED = "SUCCEEDED"
|
|
293
293
|
FAILED = "FAILED"
|
|
294
|
+
UNKNOWN = "UNKNOWN"
|
|
294
295
|
|
|
295
296
|
|
|
296
297
|
class RemediationExecutionStepState(StrEnum):
|
|
297
298
|
SUCCEEDED = "SUCCEEDED"
|
|
298
299
|
PENDING = "PENDING"
|
|
299
300
|
FAILED = "FAILED"
|
|
301
|
+
IN_PROGRESS = "IN_PROGRESS"
|
|
302
|
+
EXITED = "EXITED"
|
|
303
|
+
UNKNOWN = "UNKNOWN"
|
|
300
304
|
|
|
301
305
|
|
|
302
306
|
class RemediationTargetType(StrEnum):
|
localstack/aws/api/core.py
CHANGED
|
@@ -13,6 +13,7 @@ from botocore.model import OperationModel, ServiceModel
|
|
|
13
13
|
from rolo.gateway import RequestContext as RoloRequestContext
|
|
14
14
|
|
|
15
15
|
from localstack.aws.connect import InternalRequestParameters
|
|
16
|
+
from localstack.aws.spec import ProtocolName
|
|
16
17
|
from localstack.http import Request, Response
|
|
17
18
|
from localstack.utils.strings import long_uid
|
|
18
19
|
|
|
@@ -41,7 +42,7 @@ class ServiceException(Exception):
|
|
|
41
42
|
message: str
|
|
42
43
|
|
|
43
44
|
def __init__(self, *args: Any, **kwargs: Any):
|
|
44
|
-
super(
|
|
45
|
+
super().__init__(*args)
|
|
45
46
|
|
|
46
47
|
if len(args) >= 1:
|
|
47
48
|
self.message = args[0]
|
|
@@ -60,7 +61,7 @@ class CommonServiceException(ServiceException):
|
|
|
60
61
|
"""
|
|
61
62
|
|
|
62
63
|
def __init__(self, code: str, message: str, status_code: int = 400, sender_fault: bool = False):
|
|
63
|
-
super(
|
|
64
|
+
super().__init__(message)
|
|
64
65
|
self.code = code
|
|
65
66
|
self.status_code = status_code
|
|
66
67
|
self.sender_fault = sender_fault
|
|
@@ -88,6 +89,8 @@ class RequestContext(RoloRequestContext):
|
|
|
88
89
|
"""The underlying incoming HTTP request."""
|
|
89
90
|
service: ServiceModel | None
|
|
90
91
|
"""The botocore ServiceModel of the service the request is made to."""
|
|
92
|
+
protocol: ProtocolName | None
|
|
93
|
+
"""The botocore Protocol for the service the request is made to."""
|
|
91
94
|
operation: OperationModel | None
|
|
92
95
|
"""The botocore OperationModel of the AWS operation being invoked."""
|
|
93
96
|
region: str
|
|
@@ -112,6 +115,7 @@ class RequestContext(RoloRequestContext):
|
|
|
112
115
|
def __init__(self, request: Request):
|
|
113
116
|
super().__init__(request)
|
|
114
117
|
self.service = None
|
|
118
|
+
self.protocol = None
|
|
115
119
|
self.operation = None
|
|
116
120
|
self.region = None # type: ignore[assignment] # type=str, because we know it will always be set downstream
|
|
117
121
|
self.partition = "aws" # Sensible default - will be overwritten by region-handler
|
|
@@ -8,6 +8,7 @@ ArchivalReason = str
|
|
|
8
8
|
AttributeName = str
|
|
9
9
|
AutoScalingPolicyName = str
|
|
10
10
|
AutoScalingRoleArn = str
|
|
11
|
+
AvailabilityErrorMessage = str
|
|
11
12
|
Backfilling = bool
|
|
12
13
|
BackupArn = str
|
|
13
14
|
BackupName = str
|
|
@@ -61,10 +62,12 @@ PartiQLStatement = str
|
|
|
61
62
|
PolicyRevisionId = str
|
|
62
63
|
PositiveIntegerObject = int
|
|
63
64
|
ProjectionExpression = str
|
|
65
|
+
Reason = str
|
|
64
66
|
RecoveryPeriodInDays = int
|
|
65
67
|
RegionName = str
|
|
66
68
|
ReplicaStatusDescription = str
|
|
67
69
|
ReplicaStatusPercentProgress = str
|
|
70
|
+
Resource = str
|
|
68
71
|
ResourceArnString = str
|
|
69
72
|
ResourcePolicy = str
|
|
70
73
|
RestoreInProgress = bool
|
|
@@ -169,6 +172,11 @@ class ContributorInsightsAction(StrEnum):
|
|
|
169
172
|
DISABLE = "DISABLE"
|
|
170
173
|
|
|
171
174
|
|
|
175
|
+
class ContributorInsightsMode(StrEnum):
|
|
176
|
+
ACCESSED_AND_THROTTLED_KEYS = "ACCESSED_AND_THROTTLED_KEYS"
|
|
177
|
+
THROTTLED_KEYS = "THROTTLED_KEYS"
|
|
178
|
+
|
|
179
|
+
|
|
172
180
|
class ContributorInsightsStatus(StrEnum):
|
|
173
181
|
ENABLING = "ENABLING"
|
|
174
182
|
ENABLED = "ENABLED"
|
|
@@ -509,10 +517,19 @@ class PolicyNotFoundException(ServiceException):
|
|
|
509
517
|
status_code: int = 400
|
|
510
518
|
|
|
511
519
|
|
|
520
|
+
class ThrottlingReason(TypedDict, total=False):
|
|
521
|
+
reason: Optional[Reason]
|
|
522
|
+
resource: Optional[Resource]
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
ThrottlingReasonList = List[ThrottlingReason]
|
|
526
|
+
|
|
527
|
+
|
|
512
528
|
class ProvisionedThroughputExceededException(ServiceException):
|
|
513
529
|
code: str = "ProvisionedThroughputExceededException"
|
|
514
530
|
sender_fault: bool = False
|
|
515
531
|
status_code: int = 400
|
|
532
|
+
ThrottlingReasons: Optional[ThrottlingReasonList]
|
|
516
533
|
|
|
517
534
|
|
|
518
535
|
class ReplicaAlreadyExistsException(ServiceException):
|
|
@@ -537,6 +554,7 @@ class RequestLimitExceeded(ServiceException):
|
|
|
537
554
|
code: str = "RequestLimitExceeded"
|
|
538
555
|
sender_fault: bool = False
|
|
539
556
|
status_code: int = 400
|
|
557
|
+
ThrottlingReasons: Optional[ThrottlingReasonList]
|
|
540
558
|
|
|
541
559
|
|
|
542
560
|
class ResourceInUseException(ServiceException):
|
|
@@ -569,6 +587,13 @@ class TableNotFoundException(ServiceException):
|
|
|
569
587
|
status_code: int = 400
|
|
570
588
|
|
|
571
589
|
|
|
590
|
+
class ThrottlingException(ServiceException):
|
|
591
|
+
code: str = "ThrottlingException"
|
|
592
|
+
sender_fault: bool = False
|
|
593
|
+
status_code: int = 400
|
|
594
|
+
throttlingReasons: Optional[ThrottlingReasonList]
|
|
595
|
+
|
|
596
|
+
|
|
572
597
|
class CancellationReason(TypedDict, total=False):
|
|
573
598
|
Item: Optional[AttributeMap]
|
|
574
599
|
Code: Optional[Code]
|
|
@@ -981,6 +1006,7 @@ class ContributorInsightsSummary(TypedDict, total=False):
|
|
|
981
1006
|
TableName: Optional[TableName]
|
|
982
1007
|
IndexName: Optional[IndexName]
|
|
983
1008
|
ContributorInsightsStatus: Optional[ContributorInsightsStatus]
|
|
1009
|
+
ContributorInsightsMode: Optional[ContributorInsightsMode]
|
|
984
1010
|
|
|
985
1011
|
|
|
986
1012
|
ContributorInsightsSummaries = List[ContributorInsightsSummary]
|
|
@@ -1375,6 +1401,7 @@ class DescribeContributorInsightsOutput(TypedDict, total=False):
|
|
|
1375
1401
|
ContributorInsightsStatus: Optional[ContributorInsightsStatus]
|
|
1376
1402
|
LastUpdateDateTime: Optional[LastUpdateDateTime]
|
|
1377
1403
|
FailureException: Optional[FailureException]
|
|
1404
|
+
ContributorInsightsMode: Optional[ContributorInsightsMode]
|
|
1378
1405
|
|
|
1379
1406
|
|
|
1380
1407
|
class DescribeEndpointsRequest(ServiceRequest):
|
|
@@ -2200,12 +2227,14 @@ class UpdateContributorInsightsInput(ServiceRequest):
|
|
|
2200
2227
|
TableName: TableArn
|
|
2201
2228
|
IndexName: Optional[IndexName]
|
|
2202
2229
|
ContributorInsightsAction: ContributorInsightsAction
|
|
2230
|
+
ContributorInsightsMode: Optional[ContributorInsightsMode]
|
|
2203
2231
|
|
|
2204
2232
|
|
|
2205
2233
|
class UpdateContributorInsightsOutput(TypedDict, total=False):
|
|
2206
2234
|
TableName: Optional[TableName]
|
|
2207
2235
|
IndexName: Optional[IndexName]
|
|
2208
2236
|
ContributorInsightsStatus: Optional[ContributorInsightsStatus]
|
|
2237
|
+
ContributorInsightsMode: Optional[ContributorInsightsMode]
|
|
2209
2238
|
|
|
2210
2239
|
|
|
2211
2240
|
class UpdateGlobalTableInput(ServiceRequest):
|
|
@@ -2858,6 +2887,7 @@ class DynamodbApi:
|
|
|
2858
2887
|
table_name: TableArn,
|
|
2859
2888
|
contributor_insights_action: ContributorInsightsAction,
|
|
2860
2889
|
index_name: IndexName | None = None,
|
|
2890
|
+
contributor_insights_mode: ContributorInsightsMode | None = None,
|
|
2861
2891
|
**kwargs,
|
|
2862
2892
|
) -> UpdateContributorInsightsOutput:
|
|
2863
2893
|
raise NotImplementedError
|