localstack-core 4.7.1.dev139__py3-none-any.whl → 4.10.1.dev7__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 +1 -0
- localstack/aws/api/cloudwatch/__init__.py +41 -1
- localstack/aws/api/config/__init__.py +4 -0
- localstack/aws/api/core.py +4 -0
- localstack/aws/api/ec2/__init__.py +1113 -56
- 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 +2 -0
- localstack/aws/api/s3/__init__.py +12 -0
- localstack/aws/api/s3control/__init__.py +32 -0
- localstack/aws/api/ssm/__init__.py +2 -0
- localstack/aws/client.py +7 -2
- localstack/aws/forwarder.py +52 -5
- localstack/aws/handlers/analytics.py +1 -1
- localstack/aws/handlers/logging.py +12 -2
- localstack/aws/handlers/metric_handler.py +41 -1
- localstack/aws/handlers/service.py +32 -9
- localstack/aws/protocol/parser.py +440 -21
- localstack/aws/protocol/serializer.py +684 -64
- localstack/aws/protocol/service_router.py +120 -20
- localstack/aws/skeleton.py +4 -2
- localstack/aws/spec-patches.json +58 -0
- localstack/aws/spec.py +33 -13
- localstack/cli/exceptions.py +1 -1
- localstack/cli/localstack.py +4 -4
- localstack/cli/lpm.py +3 -4
- localstack/cli/profiles.py +1 -2
- localstack/config.py +18 -12
- localstack/constants.py +4 -29
- localstack/dev/kubernetes/__main__.py +1 -1
- localstack/dev/run/paths.py +1 -1
- localstack/dns/plugins.py +5 -1
- localstack/dns/server.py +12 -3
- localstack/packages/api.py +9 -8
- localstack/packages/core.py +2 -2
- localstack/packages/plugins.py +0 -8
- localstack/runtime/init.py +1 -1
- localstack/services/apigateway/legacy/provider.py +53 -3
- 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/test_invoke.py +50 -6
- localstack/services/apigateway/next_gen/provider.py +5 -0
- localstack/services/cloudformation/engine/entities.py +12 -1
- localstack/services/cloudformation/engine/v2/change_set_model.py +0 -3
- localstack/services/cloudformation/engine/v2/change_set_model_describer.py +14 -0
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py +13 -15
- localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +118 -24
- localstack/services/cloudformation/engine/v2/change_set_model_transform.py +4 -1
- localstack/services/cloudformation/engine/v2/change_set_model_validator.py +5 -14
- localstack/services/cloudformation/engine/v2/change_set_model_visitor.py +1 -0
- localstack/services/cloudformation/engine/v2/resolving.py +6 -4
- localstack/services/cloudformation/engine/yaml_parser.py +9 -2
- localstack/services/cloudformation/resource_provider.py +5 -1
- localstack/services/cloudformation/resources.py +24149 -0
- localstack/services/cloudformation/v2/entities.py +6 -3
- localstack/services/cloudformation/v2/provider.py +172 -27
- localstack/services/cloudformation/v2/types.py +8 -4
- 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/v2/provider.py +42 -0
- localstack/services/ecr/resource_providers/aws_ecr_repository.py +5 -2
- 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/target.py +17 -9
- 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 +77 -0
- localstack/services/kms/provider.py +14 -5
- localstack/services/lambda_/invocation/internal_sqs_queue.py +5 -9
- localstack/services/lambda_/packages.py +1 -1
- localstack/services/logs/provider.py +1 -1
- 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 +6 -1
- localstack/services/opensearch/versions.py +56 -7
- localstack/services/s3/constants.py +5 -2
- localstack/services/s3/cors.py +4 -4
- localstack/services/s3/notifications.py +1 -1
- localstack/services/s3/presigned_url.py +27 -43
- localstack/services/s3/provider.py +67 -11
- localstack/services/s3/utils.py +42 -11
- localstack/services/ses/provider.py +16 -7
- localstack/services/sns/constants.py +7 -1
- localstack/services/sns/v2/models.py +167 -0
- localstack/services/sns/v2/provider.py +860 -2
- localstack/services/sns/v2/utils.py +130 -0
- localstack/services/sqs/developer_api.py +205 -0
- localstack/services/sqs/models.py +42 -3
- localstack/services/sqs/provider.py +8 -309
- localstack/services/sqs/query_api.py +1 -1
- localstack/services/sqs/utils.py +121 -2
- localstack/services/stepfunctions/asl/jsonata/jsonata.py +1 -1
- localstack/testing/aws/cloudformation_utils.py +1 -1
- localstack/testing/pytest/cloudformation/fixtures.py +3 -3
- localstack/testing/pytest/container.py +4 -5
- localstack/testing/pytest/fixtures.py +20 -19
- localstack/testing/pytest/in_memory_localstack.py +0 -4
- localstack/testing/pytest/marking.py +13 -4
- 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 +5 -0
- localstack/utils/analytics/events.py +2 -2
- localstack/utils/analytics/metadata.py +1 -2
- localstack/utils/analytics/metrics/counter.py +6 -8
- localstack/utils/analytics/publisher.py +1 -2
- localstack/utils/analytics/service_request_aggregator.py +2 -2
- localstack/utils/archives.py +11 -11
- localstack/utils/aws/arns.py +17 -9
- localstack/utils/aws/aws_responses.py +7 -7
- localstack/utils/aws/aws_stack.py +2 -3
- localstack/utils/aws/message_forwarding.py +1 -2
- localstack/utils/aws/request_context.py +4 -5
- localstack/utils/batch_policy.py +3 -3
- localstack/utils/bootstrap.py +7 -7
- localstack/utils/catalog/catalog.py +139 -0
- localstack/utils/catalog/catalog_loader.py +11 -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 +115 -131
- localstack/utils/container_utils/docker_cmd_client.py +42 -42
- localstack/utils/container_utils/docker_sdk_client.py +63 -62
- localstack/utils/diagnose.py +2 -3
- localstack/utils/docker_utils.py +3 -4
- localstack/utils/files.py +31 -7
- localstack/utils/functions.py +3 -2
- localstack/utils/http.py +4 -5
- localstack/utils/json.py +19 -5
- localstack/utils/kinesis/kinesis_connector.py +2 -1
- localstack/utils/net.py +6 -6
- localstack/utils/no_exit_argument_parser.py +2 -2
- localstack/utils/numbers.py +9 -2
- localstack/utils/objects.py +6 -5
- localstack/utils/patch.py +2 -1
- localstack/utils/run.py +10 -9
- localstack/utils/scheduler.py +11 -11
- localstack/utils/server/tcp_proxy.py +2 -2
- localstack/utils/serving.py +2 -3
- localstack/utils/strings.py +10 -11
- localstack/utils/sync.py +126 -1
- localstack/utils/tagging.py +1 -4
- localstack/utils/testutil.py +5 -4
- localstack/utils/threads.py +2 -2
- localstack/utils/time.py +11 -3
- localstack/utils/urls.py +1 -3
- localstack/version.py +2 -2
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev7.dist-info}/METADATA +17 -12
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev7.dist-info}/RECORD +168 -164
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev7.dist-info}/entry_points.txt +4 -2
- localstack_core-4.10.1.dev7.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.dev139.dist-info/plux.json +0 -1
- {localstack_core-4.7.1.dev139.data → localstack_core-4.10.1.dev7.data}/scripts/localstack +0 -0
- {localstack_core-4.7.1.dev139.data → localstack_core-4.10.1.dev7.data}/scripts/localstack-supervisor +0 -0
- {localstack_core-4.7.1.dev139.data → localstack_core-4.10.1.dev7.data}/scripts/localstack.bat +0 -0
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev7.dist-info}/WHEEL +0 -0
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev7.dist-info}/licenses/LICENSE.txt +0 -0
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev7.dist-info}/top_level.txt +0 -0
|
@@ -722,6 +722,7 @@ class WarningType(StrEnum):
|
|
|
722
722
|
UNSUPPORTED_PROPERTIES = "UNSUPPORTED_PROPERTIES"
|
|
723
723
|
MUTUALLY_EXCLUSIVE_TYPES = "MUTUALLY_EXCLUSIVE_TYPES"
|
|
724
724
|
EXCLUDED_PROPERTIES = "EXCLUDED_PROPERTIES"
|
|
725
|
+
EXCLUDED_RESOURCES = "EXCLUDED_RESOURCES"
|
|
725
726
|
|
|
726
727
|
|
|
727
728
|
class AlreadyExistsException(ServiceException):
|
|
@@ -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
|
|
|
@@ -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
|