localstack-core 4.7.1.dev139__py3-none-any.whl → 4.10.1.dev42__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.
Potentially problematic release.
This version of localstack-core might be problematic. Click here for more details.
- localstack/aws/api/acm/__init__.py +122 -122
- localstack/aws/api/apigateway/__init__.py +560 -559
- localstack/aws/api/cloudcontrol/__init__.py +63 -63
- localstack/aws/api/cloudformation/__init__.py +1041 -969
- localstack/aws/api/cloudwatch/__init__.py +408 -368
- localstack/aws/api/config/__init__.py +788 -786
- localstack/aws/api/core.py +4 -0
- localstack/aws/api/dynamodb/__init__.py +753 -759
- localstack/aws/api/dynamodbstreams/__init__.py +74 -74
- localstack/aws/api/ec2/__init__.py +9713 -8573
- localstack/aws/api/es/__init__.py +453 -453
- localstack/aws/api/events/__init__.py +552 -552
- localstack/aws/api/firehose/__init__.py +541 -543
- localstack/aws/api/iam/__init__.py +646 -572
- localstack/aws/api/kinesis/__init__.py +251 -144
- localstack/aws/api/kms/__init__.py +343 -333
- localstack/aws/api/lambda_/__init__.py +585 -571
- localstack/aws/api/logs/__init__.py +682 -666
- localstack/aws/api/opensearch/__init__.py +814 -785
- localstack/aws/api/pipes/__init__.py +336 -336
- localstack/aws/api/redshift/__init__.py +1192 -1164
- localstack/aws/api/resource_groups/__init__.py +175 -175
- localstack/aws/api/resourcegroupstaggingapi/__init__.py +67 -67
- localstack/aws/api/route53/__init__.py +256 -254
- localstack/aws/api/route53resolver/__init__.py +396 -396
- localstack/aws/api/s3/__init__.py +1358 -1345
- localstack/aws/api/s3control/__init__.py +616 -584
- localstack/aws/api/scheduler/__init__.py +118 -118
- localstack/aws/api/secretsmanager/__init__.py +193 -193
- localstack/aws/api/ses/__init__.py +227 -227
- localstack/aws/api/sns/__init__.py +115 -115
- localstack/aws/api/sqs/__init__.py +100 -100
- localstack/aws/api/ssm/__init__.py +1978 -1970
- localstack/aws/api/stepfunctions/__init__.py +323 -323
- localstack/aws/api/sts/__init__.py +90 -66
- localstack/aws/api/support/__init__.py +112 -112
- localstack/aws/api/swf/__init__.py +378 -386
- localstack/aws/api/transcribe/__init__.py +425 -425
- 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 +43 -10
- localstack/aws/protocol/parser.py +440 -21
- localstack/aws/protocol/serializer.py +684 -64
- localstack/aws/protocol/service_router.py +120 -20
- localstack/aws/scaffold.py +15 -17
- 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 +10 -5
- 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 +39 -4
- 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/helpers.py +5 -9
- localstack/services/apigateway/legacy/provider.py +85 -12
- 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/apigateway/patches.py +0 -9
- 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/provider.py +2 -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 +178 -33
- 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/packages.py +1 -1
- localstack/services/kinesis/provider.py +77 -0
- localstack/services/kms/models.py +34 -4
- localstack/services/kms/provider.py +107 -21
- localstack/services/lambda_/api_utils.py +3 -1
- localstack/services/lambda_/invocation/internal_sqs_queue.py +5 -9
- localstack/services/lambda_/packages.py +1 -1
- localstack/services/lambda_/provider.py +1 -1
- localstack/services/lambda_/runtimes.py +8 -3
- 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 +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 +68 -12
- 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 +190 -0
- localstack/services/sns/v2/provider.py +992 -2
- localstack/services/sns/v2/utils.py +138 -0
- localstack/services/sqs/developer_api.py +205 -0
- localstack/services/sqs/models.py +79 -13
- 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 +7 -0
- localstack/testing/testselection/matching.py +0 -1
- 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/client_types.py +0 -8
- 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 +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 +115 -131
- localstack/utils/container_utils/docker_cmd_client.py +42 -42
- localstack/utils/container_utils/docker_sdk_client.py +63 -62
- localstack/utils/crypto.py +109 -0
- 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.dev42.dist-info}/METADATA +19 -13
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev42.dist-info}/RECORD +203 -199
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev42.dist-info}/entry_points.txt +4 -2
- localstack_core-4.10.1.dev42.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.dev42.data}/scripts/localstack +0 -0
- {localstack_core-4.7.1.dev139.data → localstack_core-4.10.1.dev42.data}/scripts/localstack-supervisor +0 -0
- {localstack_core-4.7.1.dev139.data → localstack_core-4.10.1.dev42.data}/scripts/localstack.bat +0 -0
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev42.dist-info}/WHEEL +0 -0
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev42.dist-info}/licenses/LICENSE.txt +0 -0
- {localstack_core-4.7.1.dev139.dist-info → localstack_core-4.10.1.dev42.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from enum import StrEnum
|
|
2
|
-
from typing import
|
|
2
|
+
from typing import TypedDict
|
|
3
3
|
|
|
4
4
|
from localstack.aws.api import RequestContext, ServiceException, ServiceRequest, handler
|
|
5
5
|
|
|
@@ -78,13 +78,13 @@ class ThrottledException(ServiceException):
|
|
|
78
78
|
status_code: int = 400
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
TagKeyList =
|
|
81
|
+
TagKeyList = list[TagKey]
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
class ComplianceDetails(TypedDict, total=False):
|
|
85
|
-
NoncompliantKeys:
|
|
86
|
-
KeysWithNoncompliantValues:
|
|
87
|
-
ComplianceStatus:
|
|
85
|
+
NoncompliantKeys: TagKeyList | None
|
|
86
|
+
KeysWithNoncompliantValues: TagKeyList | None
|
|
87
|
+
ComplianceStatus: ComplianceStatus | None
|
|
88
88
|
|
|
89
89
|
|
|
90
90
|
class DescribeReportCreationInput(ServiceRequest):
|
|
@@ -92,76 +92,76 @@ class DescribeReportCreationInput(ServiceRequest):
|
|
|
92
92
|
|
|
93
93
|
|
|
94
94
|
class DescribeReportCreationOutput(TypedDict, total=False):
|
|
95
|
-
Status:
|
|
96
|
-
S3Location:
|
|
97
|
-
ErrorMessage:
|
|
95
|
+
Status: Status | None
|
|
96
|
+
S3Location: S3Location | None
|
|
97
|
+
ErrorMessage: ErrorMessage | None
|
|
98
98
|
|
|
99
99
|
|
|
100
100
|
class FailureInfo(TypedDict, total=False):
|
|
101
|
-
StatusCode:
|
|
102
|
-
ErrorCode:
|
|
103
|
-
ErrorMessage:
|
|
101
|
+
StatusCode: StatusCode | None
|
|
102
|
+
ErrorCode: ErrorCode | None
|
|
103
|
+
ErrorMessage: ErrorMessage | None
|
|
104
104
|
|
|
105
105
|
|
|
106
|
-
FailedResourcesMap =
|
|
107
|
-
GroupBy =
|
|
108
|
-
TagKeyFilterList =
|
|
109
|
-
ResourceTypeFilterList =
|
|
110
|
-
RegionFilterList =
|
|
111
|
-
TargetIdFilterList =
|
|
106
|
+
FailedResourcesMap = dict[ResourceARN, FailureInfo]
|
|
107
|
+
GroupBy = list[GroupByAttribute]
|
|
108
|
+
TagKeyFilterList = list[TagKey]
|
|
109
|
+
ResourceTypeFilterList = list[AmazonResourceType]
|
|
110
|
+
RegionFilterList = list[Region]
|
|
111
|
+
TargetIdFilterList = list[TargetId]
|
|
112
112
|
|
|
113
113
|
|
|
114
114
|
class GetComplianceSummaryInput(ServiceRequest):
|
|
115
|
-
TargetIdFilters:
|
|
116
|
-
RegionFilters:
|
|
117
|
-
ResourceTypeFilters:
|
|
118
|
-
TagKeyFilters:
|
|
119
|
-
GroupBy:
|
|
120
|
-
MaxResults:
|
|
121
|
-
PaginationToken:
|
|
115
|
+
TargetIdFilters: TargetIdFilterList | None
|
|
116
|
+
RegionFilters: RegionFilterList | None
|
|
117
|
+
ResourceTypeFilters: ResourceTypeFilterList | None
|
|
118
|
+
TagKeyFilters: TagKeyFilterList | None
|
|
119
|
+
GroupBy: GroupBy | None
|
|
120
|
+
MaxResults: MaxResultsGetComplianceSummary | None
|
|
121
|
+
PaginationToken: PaginationToken | None
|
|
122
122
|
|
|
123
123
|
|
|
124
124
|
NonCompliantResources = int
|
|
125
125
|
|
|
126
126
|
|
|
127
127
|
class Summary(TypedDict, total=False):
|
|
128
|
-
LastUpdated:
|
|
129
|
-
TargetId:
|
|
130
|
-
TargetIdType:
|
|
131
|
-
Region:
|
|
132
|
-
ResourceType:
|
|
133
|
-
NonCompliantResources:
|
|
128
|
+
LastUpdated: LastUpdated | None
|
|
129
|
+
TargetId: TargetId | None
|
|
130
|
+
TargetIdType: TargetIdType | None
|
|
131
|
+
Region: Region | None
|
|
132
|
+
ResourceType: AmazonResourceType | None
|
|
133
|
+
NonCompliantResources: NonCompliantResources | None
|
|
134
134
|
|
|
135
135
|
|
|
136
|
-
SummaryList =
|
|
136
|
+
SummaryList = list[Summary]
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
class GetComplianceSummaryOutput(TypedDict, total=False):
|
|
140
|
-
SummaryList:
|
|
141
|
-
PaginationToken:
|
|
140
|
+
SummaryList: SummaryList | None
|
|
141
|
+
PaginationToken: PaginationToken | None
|
|
142
142
|
|
|
143
143
|
|
|
144
|
-
ResourceARNListForGet =
|
|
145
|
-
TagValueList =
|
|
144
|
+
ResourceARNListForGet = list[ResourceARN]
|
|
145
|
+
TagValueList = list[TagValue]
|
|
146
146
|
|
|
147
147
|
|
|
148
148
|
class TagFilter(TypedDict, total=False):
|
|
149
|
-
Key:
|
|
150
|
-
Values:
|
|
149
|
+
Key: TagKey | None
|
|
150
|
+
Values: TagValueList | None
|
|
151
151
|
|
|
152
152
|
|
|
153
|
-
TagFilterList =
|
|
153
|
+
TagFilterList = list[TagFilter]
|
|
154
154
|
|
|
155
155
|
|
|
156
156
|
class GetResourcesInput(ServiceRequest):
|
|
157
|
-
PaginationToken:
|
|
158
|
-
TagFilters:
|
|
159
|
-
ResourcesPerPage:
|
|
160
|
-
TagsPerPage:
|
|
161
|
-
ResourceTypeFilters:
|
|
162
|
-
IncludeComplianceDetails:
|
|
163
|
-
ExcludeCompliantResources:
|
|
164
|
-
ResourceARNList:
|
|
157
|
+
PaginationToken: PaginationToken | None
|
|
158
|
+
TagFilters: TagFilterList | None
|
|
159
|
+
ResourcesPerPage: ResourcesPerPage | None
|
|
160
|
+
TagsPerPage: TagsPerPage | None
|
|
161
|
+
ResourceTypeFilters: ResourceTypeFilterList | None
|
|
162
|
+
IncludeComplianceDetails: IncludeComplianceDetails | None
|
|
163
|
+
ExcludeCompliantResources: ExcludeCompliantResources | None
|
|
164
|
+
ResourceARNList: ResourceARNListForGet | None
|
|
165
165
|
|
|
166
166
|
|
|
167
167
|
class Tag(TypedDict, total=False):
|
|
@@ -169,46 +169,46 @@ class Tag(TypedDict, total=False):
|
|
|
169
169
|
Value: TagValue
|
|
170
170
|
|
|
171
171
|
|
|
172
|
-
TagList =
|
|
172
|
+
TagList = list[Tag]
|
|
173
173
|
|
|
174
174
|
|
|
175
175
|
class ResourceTagMapping(TypedDict, total=False):
|
|
176
|
-
ResourceARN:
|
|
177
|
-
Tags:
|
|
178
|
-
ComplianceDetails:
|
|
176
|
+
ResourceARN: ResourceARN | None
|
|
177
|
+
Tags: TagList | None
|
|
178
|
+
ComplianceDetails: ComplianceDetails | None
|
|
179
179
|
|
|
180
180
|
|
|
181
|
-
ResourceTagMappingList =
|
|
181
|
+
ResourceTagMappingList = list[ResourceTagMapping]
|
|
182
182
|
|
|
183
183
|
|
|
184
184
|
class GetResourcesOutput(TypedDict, total=False):
|
|
185
|
-
PaginationToken:
|
|
186
|
-
ResourceTagMappingList:
|
|
185
|
+
PaginationToken: PaginationToken | None
|
|
186
|
+
ResourceTagMappingList: ResourceTagMappingList | None
|
|
187
187
|
|
|
188
188
|
|
|
189
189
|
class GetTagKeysInput(ServiceRequest):
|
|
190
|
-
PaginationToken:
|
|
190
|
+
PaginationToken: PaginationToken | None
|
|
191
191
|
|
|
192
192
|
|
|
193
193
|
class GetTagKeysOutput(TypedDict, total=False):
|
|
194
|
-
PaginationToken:
|
|
195
|
-
TagKeys:
|
|
194
|
+
PaginationToken: PaginationToken | None
|
|
195
|
+
TagKeys: TagKeyList | None
|
|
196
196
|
|
|
197
197
|
|
|
198
198
|
class GetTagValuesInput(ServiceRequest):
|
|
199
|
-
PaginationToken:
|
|
199
|
+
PaginationToken: PaginationToken | None
|
|
200
200
|
Key: TagKey
|
|
201
201
|
|
|
202
202
|
|
|
203
|
-
TagValuesOutputList =
|
|
203
|
+
TagValuesOutputList = list[TagValue]
|
|
204
204
|
|
|
205
205
|
|
|
206
206
|
class GetTagValuesOutput(TypedDict, total=False):
|
|
207
|
-
PaginationToken:
|
|
208
|
-
TagValues:
|
|
207
|
+
PaginationToken: PaginationToken | None
|
|
208
|
+
TagValues: TagValuesOutputList | None
|
|
209
209
|
|
|
210
210
|
|
|
211
|
-
ResourceARNListForTagUntag =
|
|
211
|
+
ResourceARNListForTagUntag = list[ResourceARN]
|
|
212
212
|
|
|
213
213
|
|
|
214
214
|
class StartReportCreationInput(ServiceRequest):
|
|
@@ -219,8 +219,8 @@ class StartReportCreationOutput(TypedDict, total=False):
|
|
|
219
219
|
pass
|
|
220
220
|
|
|
221
221
|
|
|
222
|
-
TagKeyListForUntag =
|
|
223
|
-
TagMap =
|
|
222
|
+
TagKeyListForUntag = list[TagKey]
|
|
223
|
+
TagMap = dict[TagKey, TagValue]
|
|
224
224
|
|
|
225
225
|
|
|
226
226
|
class TagResourcesInput(ServiceRequest):
|
|
@@ -229,7 +229,7 @@ class TagResourcesInput(ServiceRequest):
|
|
|
229
229
|
|
|
230
230
|
|
|
231
231
|
class TagResourcesOutput(TypedDict, total=False):
|
|
232
|
-
FailedResourcesMap:
|
|
232
|
+
FailedResourcesMap: FailedResourcesMap | None
|
|
233
233
|
|
|
234
234
|
|
|
235
235
|
class UntagResourcesInput(ServiceRequest):
|
|
@@ -238,12 +238,12 @@ class UntagResourcesInput(ServiceRequest):
|
|
|
238
238
|
|
|
239
239
|
|
|
240
240
|
class UntagResourcesOutput(TypedDict, total=False):
|
|
241
|
-
FailedResourcesMap:
|
|
241
|
+
FailedResourcesMap: FailedResourcesMap | None
|
|
242
242
|
|
|
243
243
|
|
|
244
244
|
class ResourcegroupstaggingapiApi:
|
|
245
|
-
service = "resourcegroupstaggingapi"
|
|
246
|
-
version = "2017-01-26"
|
|
245
|
+
service: str = "resourcegroupstaggingapi"
|
|
246
|
+
version: str = "2017-01-26"
|
|
247
247
|
|
|
248
248
|
@handler("DescribeReportCreation")
|
|
249
249
|
def describe_report_creation(
|