localstack-core 4.4.1.dev12__py3-none-any.whl → 4.4.1.dev13__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 (51) hide show
  1. localstack/aws/api/acm/__init__.py +19 -19
  2. localstack/aws/api/apigateway/__init__.py +202 -187
  3. localstack/aws/api/cloudcontrol/__init__.py +19 -19
  4. localstack/aws/api/cloudformation/__init__.py +240 -236
  5. localstack/aws/api/cloudwatch/__init__.py +108 -108
  6. localstack/aws/api/config/__init__.py +190 -174
  7. localstack/aws/api/dynamodb/__init__.py +176 -170
  8. localstack/aws/api/dynamodbstreams/__init__.py +7 -7
  9. localstack/aws/api/ec2/__init__.py +2415 -2348
  10. localstack/aws/api/es/__init__.py +81 -73
  11. localstack/aws/api/events/__init__.py +114 -110
  12. localstack/aws/api/firehose/__init__.py +43 -36
  13. localstack/aws/api/iam/__init__.py +189 -185
  14. localstack/aws/api/kinesis/__init__.py +70 -70
  15. localstack/aws/api/kms/__init__.py +126 -122
  16. localstack/aws/api/lambda_/__init__.py +191 -191
  17. localstack/aws/api/logs/__init__.py +150 -150
  18. localstack/aws/api/opensearch/__init__.py +138 -130
  19. localstack/aws/api/pipes/__init__.py +25 -25
  20. localstack/aws/api/redshift/__init__.py +420 -420
  21. localstack/aws/api/resource_groups/__init__.py +44 -44
  22. localstack/aws/api/resourcegroupstaggingapi/__init__.py +17 -17
  23. localstack/aws/api/route53/__init__.py +86 -82
  24. localstack/aws/api/route53resolver/__init__.py +103 -103
  25. localstack/aws/api/s3/__init__.py +489 -489
  26. localstack/aws/api/s3control/__init__.py +69 -69
  27. localstack/aws/api/scheduler/__init__.py +36 -32
  28. localstack/aws/api/secretsmanager/__init__.py +51 -51
  29. localstack/aws/api/ses/__init__.py +55 -55
  30. localstack/aws/api/sns/__init__.py +35 -31
  31. localstack/aws/api/sqs/__init__.py +24 -24
  32. localstack/aws/api/ssm/__init__.py +439 -439
  33. localstack/aws/api/stepfunctions/__init__.py +58 -58
  34. localstack/aws/api/sts/__init__.py +25 -25
  35. localstack/aws/api/support/__init__.py +29 -29
  36. localstack/aws/api/swf/__init__.py +88 -84
  37. localstack/aws/api/transcribe/__init__.py +80 -80
  38. localstack/aws/scaffold.py +1 -1
  39. localstack/testing/aws/asf_utils.py +7 -3
  40. localstack/version.py +2 -2
  41. {localstack_core-4.4.1.dev12.dist-info → localstack_core-4.4.1.dev13.dist-info}/METADATA +1 -1
  42. {localstack_core-4.4.1.dev12.dist-info → localstack_core-4.4.1.dev13.dist-info}/RECORD +50 -50
  43. localstack_core-4.4.1.dev13.dist-info/plux.json +1 -0
  44. localstack_core-4.4.1.dev12.dist-info/plux.json +0 -1
  45. {localstack_core-4.4.1.dev12.data → localstack_core-4.4.1.dev13.data}/scripts/localstack +0 -0
  46. {localstack_core-4.4.1.dev12.data → localstack_core-4.4.1.dev13.data}/scripts/localstack-supervisor +0 -0
  47. {localstack_core-4.4.1.dev12.data → localstack_core-4.4.1.dev13.data}/scripts/localstack.bat +0 -0
  48. {localstack_core-4.4.1.dev12.dist-info → localstack_core-4.4.1.dev13.dist-info}/WHEEL +0 -0
  49. {localstack_core-4.4.1.dev12.dist-info → localstack_core-4.4.1.dev13.dist-info}/entry_points.txt +0 -0
  50. {localstack_core-4.4.1.dev12.dist-info → localstack_core-4.4.1.dev13.dist-info}/licenses/LICENSE.txt +0 -0
  51. {localstack_core-4.4.1.dev12.dist-info → localstack_core-4.4.1.dev13.dist-info}/top_level.txt +0 -0
@@ -1477,12 +1477,12 @@ class SwfApi:
1477
1477
  self,
1478
1478
  context: RequestContext,
1479
1479
  domain: DomainName,
1480
- start_time_filter: ExecutionTimeFilter = None,
1481
- close_time_filter: ExecutionTimeFilter = None,
1482
- execution_filter: WorkflowExecutionFilter = None,
1483
- type_filter: WorkflowTypeFilter = None,
1484
- tag_filter: TagFilter = None,
1485
- close_status_filter: CloseStatusFilter = None,
1480
+ start_time_filter: ExecutionTimeFilter | None = None,
1481
+ close_time_filter: ExecutionTimeFilter | None = None,
1482
+ execution_filter: WorkflowExecutionFilter | None = None,
1483
+ type_filter: WorkflowTypeFilter | None = None,
1484
+ tag_filter: TagFilter | None = None,
1485
+ close_status_filter: CloseStatusFilter | None = None,
1486
1486
  **kwargs,
1487
1487
  ) -> WorkflowExecutionCount:
1488
1488
  raise NotImplementedError
@@ -1493,9 +1493,9 @@ class SwfApi:
1493
1493
  context: RequestContext,
1494
1494
  domain: DomainName,
1495
1495
  start_time_filter: ExecutionTimeFilter,
1496
- type_filter: WorkflowTypeFilter = None,
1497
- tag_filter: TagFilter = None,
1498
- execution_filter: WorkflowExecutionFilter = None,
1496
+ type_filter: WorkflowTypeFilter | None = None,
1497
+ tag_filter: TagFilter | None = None,
1498
+ execution_filter: WorkflowExecutionFilter | None = None,
1499
1499
  **kwargs,
1500
1500
  ) -> WorkflowExecutionCount:
1501
1501
  raise NotImplementedError
@@ -1568,9 +1568,9 @@ class SwfApi:
1568
1568
  context: RequestContext,
1569
1569
  domain: DomainName,
1570
1570
  execution: WorkflowExecution,
1571
- next_page_token: PageToken = None,
1572
- maximum_page_size: PageSize = None,
1573
- reverse_order: ReverseOrder = None,
1571
+ next_page_token: PageToken | None = None,
1572
+ maximum_page_size: PageSize | None = None,
1573
+ reverse_order: ReverseOrder | None = None,
1574
1574
  **kwargs,
1575
1575
  ) -> History:
1576
1576
  raise NotImplementedError
@@ -1581,10 +1581,10 @@ class SwfApi:
1581
1581
  context: RequestContext,
1582
1582
  domain: DomainName,
1583
1583
  registration_status: RegistrationStatus,
1584
- name: Name = None,
1585
- next_page_token: PageToken = None,
1586
- maximum_page_size: PageSize = None,
1587
- reverse_order: ReverseOrder = None,
1584
+ name: Name | None = None,
1585
+ next_page_token: PageToken | None = None,
1586
+ maximum_page_size: PageSize | None = None,
1587
+ reverse_order: ReverseOrder | None = None,
1588
1588
  **kwargs,
1589
1589
  ) -> ActivityTypeInfos:
1590
1590
  raise NotImplementedError
@@ -1594,15 +1594,15 @@ class SwfApi:
1594
1594
  self,
1595
1595
  context: RequestContext,
1596
1596
  domain: DomainName,
1597
- start_time_filter: ExecutionTimeFilter = None,
1598
- close_time_filter: ExecutionTimeFilter = None,
1599
- execution_filter: WorkflowExecutionFilter = None,
1600
- close_status_filter: CloseStatusFilter = None,
1601
- type_filter: WorkflowTypeFilter = None,
1602
- tag_filter: TagFilter = None,
1603
- next_page_token: PageToken = None,
1604
- maximum_page_size: PageSize = None,
1605
- reverse_order: ReverseOrder = None,
1597
+ start_time_filter: ExecutionTimeFilter | None = None,
1598
+ close_time_filter: ExecutionTimeFilter | None = None,
1599
+ execution_filter: WorkflowExecutionFilter | None = None,
1600
+ close_status_filter: CloseStatusFilter | None = None,
1601
+ type_filter: WorkflowTypeFilter | None = None,
1602
+ tag_filter: TagFilter | None = None,
1603
+ next_page_token: PageToken | None = None,
1604
+ maximum_page_size: PageSize | None = None,
1605
+ reverse_order: ReverseOrder | None = None,
1606
1606
  **kwargs,
1607
1607
  ) -> WorkflowExecutionInfos:
1608
1608
  raise NotImplementedError
@@ -1612,9 +1612,9 @@ class SwfApi:
1612
1612
  self,
1613
1613
  context: RequestContext,
1614
1614
  registration_status: RegistrationStatus,
1615
- next_page_token: PageToken = None,
1616
- maximum_page_size: PageSize = None,
1617
- reverse_order: ReverseOrder = None,
1615
+ next_page_token: PageToken | None = None,
1616
+ maximum_page_size: PageSize | None = None,
1617
+ reverse_order: ReverseOrder | None = None,
1618
1618
  **kwargs,
1619
1619
  ) -> DomainInfos:
1620
1620
  raise NotImplementedError
@@ -1625,12 +1625,12 @@ class SwfApi:
1625
1625
  context: RequestContext,
1626
1626
  domain: DomainName,
1627
1627
  start_time_filter: ExecutionTimeFilter,
1628
- type_filter: WorkflowTypeFilter = None,
1629
- tag_filter: TagFilter = None,
1630
- next_page_token: PageToken = None,
1631
- maximum_page_size: PageSize = None,
1632
- reverse_order: ReverseOrder = None,
1633
- execution_filter: WorkflowExecutionFilter = None,
1628
+ type_filter: WorkflowTypeFilter | None = None,
1629
+ tag_filter: TagFilter | None = None,
1630
+ next_page_token: PageToken | None = None,
1631
+ maximum_page_size: PageSize | None = None,
1632
+ reverse_order: ReverseOrder | None = None,
1633
+ execution_filter: WorkflowExecutionFilter | None = None,
1634
1634
  **kwargs,
1635
1635
  ) -> WorkflowExecutionInfos:
1636
1636
  raise NotImplementedError
@@ -1647,10 +1647,10 @@ class SwfApi:
1647
1647
  context: RequestContext,
1648
1648
  domain: DomainName,
1649
1649
  registration_status: RegistrationStatus,
1650
- name: Name = None,
1651
- next_page_token: PageToken = None,
1652
- maximum_page_size: PageSize = None,
1653
- reverse_order: ReverseOrder = None,
1650
+ name: Name | None = None,
1651
+ next_page_token: PageToken | None = None,
1652
+ maximum_page_size: PageSize | None = None,
1653
+ reverse_order: ReverseOrder | None = None,
1654
1654
  **kwargs,
1655
1655
  ) -> WorkflowTypeInfos:
1656
1656
  raise NotImplementedError
@@ -1661,7 +1661,7 @@ class SwfApi:
1661
1661
  context: RequestContext,
1662
1662
  domain: DomainName,
1663
1663
  task_list: TaskList,
1664
- identity: Identity = None,
1664
+ identity: Identity | None = None,
1665
1665
  **kwargs,
1666
1666
  ) -> ActivityTask:
1667
1667
  raise NotImplementedError
@@ -1672,18 +1672,22 @@ class SwfApi:
1672
1672
  context: RequestContext,
1673
1673
  domain: DomainName,
1674
1674
  task_list: TaskList,
1675
- identity: Identity = None,
1676
- next_page_token: PageToken = None,
1677
- maximum_page_size: PageSize = None,
1678
- reverse_order: ReverseOrder = None,
1679
- start_at_previous_started_event: StartAtPreviousStartedEvent = None,
1675
+ identity: Identity | None = None,
1676
+ next_page_token: PageToken | None = None,
1677
+ maximum_page_size: PageSize | None = None,
1678
+ reverse_order: ReverseOrder | None = None,
1679
+ start_at_previous_started_event: StartAtPreviousStartedEvent | None = None,
1680
1680
  **kwargs,
1681
1681
  ) -> DecisionTask:
1682
1682
  raise NotImplementedError
1683
1683
 
1684
1684
  @handler("RecordActivityTaskHeartbeat")
1685
1685
  def record_activity_task_heartbeat(
1686
- self, context: RequestContext, task_token: TaskToken, details: LimitedData = None, **kwargs
1686
+ self,
1687
+ context: RequestContext,
1688
+ task_token: TaskToken,
1689
+ details: LimitedData | None = None,
1690
+ **kwargs,
1687
1691
  ) -> ActivityTaskStatus:
1688
1692
  raise NotImplementedError
1689
1693
 
@@ -1694,13 +1698,13 @@ class SwfApi:
1694
1698
  domain: DomainName,
1695
1699
  name: Name,
1696
1700
  version: Version,
1697
- description: Description = None,
1698
- default_task_start_to_close_timeout: DurationInSecondsOptional = None,
1699
- default_task_heartbeat_timeout: DurationInSecondsOptional = None,
1700
- default_task_list: TaskList = None,
1701
- default_task_priority: TaskPriority = None,
1702
- default_task_schedule_to_start_timeout: DurationInSecondsOptional = None,
1703
- default_task_schedule_to_close_timeout: DurationInSecondsOptional = None,
1701
+ description: Description | None = None,
1702
+ default_task_start_to_close_timeout: DurationInSecondsOptional | None = None,
1703
+ default_task_heartbeat_timeout: DurationInSecondsOptional | None = None,
1704
+ default_task_list: TaskList | None = None,
1705
+ default_task_priority: TaskPriority | None = None,
1706
+ default_task_schedule_to_start_timeout: DurationInSecondsOptional | None = None,
1707
+ default_task_schedule_to_close_timeout: DurationInSecondsOptional | None = None,
1704
1708
  **kwargs,
1705
1709
  ) -> None:
1706
1710
  raise NotImplementedError
@@ -1711,8 +1715,8 @@ class SwfApi:
1711
1715
  context: RequestContext,
1712
1716
  name: DomainName,
1713
1717
  workflow_execution_retention_period_in_days: DurationInDays,
1714
- description: Description = None,
1715
- tags: ResourceTagList = None,
1718
+ description: Description | None = None,
1719
+ tags: ResourceTagList | None = None,
1716
1720
  **kwargs,
1717
1721
  ) -> None:
1718
1722
  raise NotImplementedError
@@ -1724,13 +1728,13 @@ class SwfApi:
1724
1728
  domain: DomainName,
1725
1729
  name: Name,
1726
1730
  version: Version,
1727
- description: Description = None,
1728
- default_task_start_to_close_timeout: DurationInSecondsOptional = None,
1729
- default_execution_start_to_close_timeout: DurationInSecondsOptional = None,
1730
- default_task_list: TaskList = None,
1731
- default_task_priority: TaskPriority = None,
1732
- default_child_policy: ChildPolicy = None,
1733
- default_lambda_role: Arn = None,
1731
+ description: Description | None = None,
1732
+ default_task_start_to_close_timeout: DurationInSecondsOptional | None = None,
1733
+ default_execution_start_to_close_timeout: DurationInSecondsOptional | None = None,
1734
+ default_task_list: TaskList | None = None,
1735
+ default_task_priority: TaskPriority | None = None,
1736
+ default_child_policy: ChildPolicy | None = None,
1737
+ default_lambda_role: Arn | None = None,
1734
1738
  **kwargs,
1735
1739
  ) -> None:
1736
1740
  raise NotImplementedError
@@ -1741,20 +1745,20 @@ class SwfApi:
1741
1745
  context: RequestContext,
1742
1746
  domain: DomainName,
1743
1747
  workflow_id: WorkflowId,
1744
- run_id: WorkflowRunIdOptional = None,
1748
+ run_id: WorkflowRunIdOptional | None = None,
1745
1749
  **kwargs,
1746
1750
  ) -> None:
1747
1751
  raise NotImplementedError
1748
1752
 
1749
1753
  @handler("RespondActivityTaskCanceled")
1750
1754
  def respond_activity_task_canceled(
1751
- self, context: RequestContext, task_token: TaskToken, details: Data = None, **kwargs
1755
+ self, context: RequestContext, task_token: TaskToken, details: Data | None = None, **kwargs
1752
1756
  ) -> None:
1753
1757
  raise NotImplementedError
1754
1758
 
1755
1759
  @handler("RespondActivityTaskCompleted")
1756
1760
  def respond_activity_task_completed(
1757
- self, context: RequestContext, task_token: TaskToken, result: Data = None, **kwargs
1761
+ self, context: RequestContext, task_token: TaskToken, result: Data | None = None, **kwargs
1758
1762
  ) -> None:
1759
1763
  raise NotImplementedError
1760
1764
 
@@ -1763,8 +1767,8 @@ class SwfApi:
1763
1767
  self,
1764
1768
  context: RequestContext,
1765
1769
  task_token: TaskToken,
1766
- reason: FailureReason = None,
1767
- details: Data = None,
1770
+ reason: FailureReason | None = None,
1771
+ details: Data | None = None,
1768
1772
  **kwargs,
1769
1773
  ) -> None:
1770
1774
  raise NotImplementedError
@@ -1774,10 +1778,10 @@ class SwfApi:
1774
1778
  self,
1775
1779
  context: RequestContext,
1776
1780
  task_token: TaskToken,
1777
- decisions: DecisionList = None,
1778
- execution_context: Data = None,
1779
- task_list: TaskList = None,
1780
- task_list_schedule_to_start_timeout: DurationInSecondsOptional = None,
1781
+ decisions: DecisionList | None = None,
1782
+ execution_context: Data | None = None,
1783
+ task_list: TaskList | None = None,
1784
+ task_list_schedule_to_start_timeout: DurationInSecondsOptional | None = None,
1781
1785
  **kwargs,
1782
1786
  ) -> None:
1783
1787
  raise NotImplementedError
@@ -1789,8 +1793,8 @@ class SwfApi:
1789
1793
  domain: DomainName,
1790
1794
  workflow_id: WorkflowId,
1791
1795
  signal_name: SignalName,
1792
- run_id: WorkflowRunIdOptional = None,
1793
- input: Data = None,
1796
+ run_id: WorkflowRunIdOptional | None = None,
1797
+ input: Data | None = None,
1794
1798
  **kwargs,
1795
1799
  ) -> None:
1796
1800
  raise NotImplementedError
@@ -1802,14 +1806,14 @@ class SwfApi:
1802
1806
  domain: DomainName,
1803
1807
  workflow_id: WorkflowId,
1804
1808
  workflow_type: WorkflowType,
1805
- task_list: TaskList = None,
1806
- task_priority: TaskPriority = None,
1807
- input: Data = None,
1808
- execution_start_to_close_timeout: DurationInSecondsOptional = None,
1809
- tag_list: TagList = None,
1810
- task_start_to_close_timeout: DurationInSecondsOptional = None,
1811
- child_policy: ChildPolicy = None,
1812
- lambda_role: Arn = None,
1809
+ task_list: TaskList | None = None,
1810
+ task_priority: TaskPriority | None = None,
1811
+ input: Data | None = None,
1812
+ execution_start_to_close_timeout: DurationInSecondsOptional | None = None,
1813
+ tag_list: TagList | None = None,
1814
+ task_start_to_close_timeout: DurationInSecondsOptional | None = None,
1815
+ child_policy: ChildPolicy | None = None,
1816
+ lambda_role: Arn | None = None,
1813
1817
  **kwargs,
1814
1818
  ) -> Run:
1815
1819
  raise NotImplementedError
@@ -1826,10 +1830,10 @@ class SwfApi:
1826
1830
  context: RequestContext,
1827
1831
  domain: DomainName,
1828
1832
  workflow_id: WorkflowId,
1829
- run_id: WorkflowRunIdOptional = None,
1830
- reason: TerminateReason = None,
1831
- details: Data = None,
1832
- child_policy: ChildPolicy = None,
1833
+ run_id: WorkflowRunIdOptional | None = None,
1834
+ reason: TerminateReason | None = None,
1835
+ details: Data | None = None,
1836
+ child_policy: ChildPolicy | None = None,
1833
1837
  **kwargs,
1834
1838
  ) -> None:
1835
1839
  raise NotImplementedError
@@ -1257,8 +1257,8 @@ class TranscribeApi:
1257
1257
  context: RequestContext,
1258
1258
  category_name: CategoryName,
1259
1259
  rules: RuleList,
1260
- tags: TagList = None,
1261
- input_type: InputType = None,
1260
+ tags: TagList | None = None,
1261
+ input_type: InputType | None = None,
1262
1262
  **kwargs,
1263
1263
  ) -> CreateCallAnalyticsCategoryResponse:
1264
1264
  raise NotImplementedError
@@ -1271,7 +1271,7 @@ class TranscribeApi:
1271
1271
  base_model_name: BaseModelName,
1272
1272
  model_name: ModelName,
1273
1273
  input_data_config: InputDataConfig,
1274
- tags: TagList = None,
1274
+ tags: TagList | None = None,
1275
1275
  **kwargs,
1276
1276
  ) -> CreateLanguageModelResponse:
1277
1277
  raise NotImplementedError
@@ -1283,7 +1283,7 @@ class TranscribeApi:
1283
1283
  vocabulary_name: VocabularyName,
1284
1284
  language_code: LanguageCode,
1285
1285
  vocabulary_file_uri: Uri,
1286
- tags: TagList = None,
1286
+ tags: TagList | None = None,
1287
1287
  **kwargs,
1288
1288
  ) -> CreateMedicalVocabularyResponse:
1289
1289
  raise NotImplementedError
@@ -1294,10 +1294,10 @@ class TranscribeApi:
1294
1294
  context: RequestContext,
1295
1295
  vocabulary_name: VocabularyName,
1296
1296
  language_code: LanguageCode,
1297
- phrases: Phrases = None,
1298
- vocabulary_file_uri: Uri = None,
1299
- tags: TagList = None,
1300
- data_access_role_arn: DataAccessRoleArn = None,
1297
+ phrases: Phrases | None = None,
1298
+ vocabulary_file_uri: Uri | None = None,
1299
+ tags: TagList | None = None,
1300
+ data_access_role_arn: DataAccessRoleArn | None = None,
1301
1301
  **kwargs,
1302
1302
  ) -> CreateVocabularyResponse:
1303
1303
  raise NotImplementedError
@@ -1308,10 +1308,10 @@ class TranscribeApi:
1308
1308
  context: RequestContext,
1309
1309
  vocabulary_filter_name: VocabularyFilterName,
1310
1310
  language_code: LanguageCode,
1311
- words: Words = None,
1312
- vocabulary_filter_file_uri: Uri = None,
1313
- tags: TagList = None,
1314
- data_access_role_arn: DataAccessRoleArn = None,
1311
+ words: Words | None = None,
1312
+ vocabulary_filter_file_uri: Uri | None = None,
1313
+ tags: TagList | None = None,
1314
+ data_access_role_arn: DataAccessRoleArn | None = None,
1315
1315
  **kwargs,
1316
1316
  ) -> CreateVocabularyFilterResponse:
1317
1317
  raise NotImplementedError
@@ -1434,8 +1434,8 @@ class TranscribeApi:
1434
1434
  def list_call_analytics_categories(
1435
1435
  self,
1436
1436
  context: RequestContext,
1437
- next_token: NextToken = None,
1438
- max_results: MaxResults = None,
1437
+ next_token: NextToken | None = None,
1438
+ max_results: MaxResults | None = None,
1439
1439
  **kwargs,
1440
1440
  ) -> ListCallAnalyticsCategoriesResponse:
1441
1441
  raise NotImplementedError
@@ -1444,10 +1444,10 @@ class TranscribeApi:
1444
1444
  def list_call_analytics_jobs(
1445
1445
  self,
1446
1446
  context: RequestContext,
1447
- status: CallAnalyticsJobStatus = None,
1448
- job_name_contains: CallAnalyticsJobName = None,
1449
- next_token: NextToken = None,
1450
- max_results: MaxResults = None,
1447
+ status: CallAnalyticsJobStatus | None = None,
1448
+ job_name_contains: CallAnalyticsJobName | None = None,
1449
+ next_token: NextToken | None = None,
1450
+ max_results: MaxResults | None = None,
1451
1451
  **kwargs,
1452
1452
  ) -> ListCallAnalyticsJobsResponse:
1453
1453
  raise NotImplementedError
@@ -1456,10 +1456,10 @@ class TranscribeApi:
1456
1456
  def list_language_models(
1457
1457
  self,
1458
1458
  context: RequestContext,
1459
- status_equals: ModelStatus = None,
1460
- name_contains: ModelName = None,
1461
- next_token: NextToken = None,
1462
- max_results: MaxResults = None,
1459
+ status_equals: ModelStatus | None = None,
1460
+ name_contains: ModelName | None = None,
1461
+ next_token: NextToken | None = None,
1462
+ max_results: MaxResults | None = None,
1463
1463
  **kwargs,
1464
1464
  ) -> ListLanguageModelsResponse:
1465
1465
  raise NotImplementedError
@@ -1468,10 +1468,10 @@ class TranscribeApi:
1468
1468
  def list_medical_scribe_jobs(
1469
1469
  self,
1470
1470
  context: RequestContext,
1471
- status: MedicalScribeJobStatus = None,
1472
- job_name_contains: TranscriptionJobName = None,
1473
- next_token: NextToken = None,
1474
- max_results: MaxResults = None,
1471
+ status: MedicalScribeJobStatus | None = None,
1472
+ job_name_contains: TranscriptionJobName | None = None,
1473
+ next_token: NextToken | None = None,
1474
+ max_results: MaxResults | None = None,
1475
1475
  **kwargs,
1476
1476
  ) -> ListMedicalScribeJobsResponse:
1477
1477
  raise NotImplementedError
@@ -1480,10 +1480,10 @@ class TranscribeApi:
1480
1480
  def list_medical_transcription_jobs(
1481
1481
  self,
1482
1482
  context: RequestContext,
1483
- status: TranscriptionJobStatus = None,
1484
- job_name_contains: TranscriptionJobName = None,
1485
- next_token: NextToken = None,
1486
- max_results: MaxResults = None,
1483
+ status: TranscriptionJobStatus | None = None,
1484
+ job_name_contains: TranscriptionJobName | None = None,
1485
+ next_token: NextToken | None = None,
1486
+ max_results: MaxResults | None = None,
1487
1487
  **kwargs,
1488
1488
  ) -> ListMedicalTranscriptionJobsResponse:
1489
1489
  raise NotImplementedError
@@ -1492,10 +1492,10 @@ class TranscribeApi:
1492
1492
  def list_medical_vocabularies(
1493
1493
  self,
1494
1494
  context: RequestContext,
1495
- next_token: NextToken = None,
1496
- max_results: MaxResults = None,
1497
- state_equals: VocabularyState = None,
1498
- name_contains: VocabularyName = None,
1495
+ next_token: NextToken | None = None,
1496
+ max_results: MaxResults | None = None,
1497
+ state_equals: VocabularyState | None = None,
1498
+ name_contains: VocabularyName | None = None,
1499
1499
  **kwargs,
1500
1500
  ) -> ListMedicalVocabulariesResponse:
1501
1501
  raise NotImplementedError
@@ -1510,10 +1510,10 @@ class TranscribeApi:
1510
1510
  def list_transcription_jobs(
1511
1511
  self,
1512
1512
  context: RequestContext,
1513
- status: TranscriptionJobStatus = None,
1514
- job_name_contains: TranscriptionJobName = None,
1515
- next_token: NextToken = None,
1516
- max_results: MaxResults = None,
1513
+ status: TranscriptionJobStatus | None = None,
1514
+ job_name_contains: TranscriptionJobName | None = None,
1515
+ next_token: NextToken | None = None,
1516
+ max_results: MaxResults | None = None,
1517
1517
  **kwargs,
1518
1518
  ) -> ListTranscriptionJobsResponse:
1519
1519
  raise NotImplementedError
@@ -1522,10 +1522,10 @@ class TranscribeApi:
1522
1522
  def list_vocabularies(
1523
1523
  self,
1524
1524
  context: RequestContext,
1525
- next_token: NextToken = None,
1526
- max_results: MaxResults = None,
1527
- state_equals: VocabularyState = None,
1528
- name_contains: VocabularyName = None,
1525
+ next_token: NextToken | None = None,
1526
+ max_results: MaxResults | None = None,
1527
+ state_equals: VocabularyState | None = None,
1528
+ name_contains: VocabularyName | None = None,
1529
1529
  **kwargs,
1530
1530
  ) -> ListVocabulariesResponse:
1531
1531
  raise NotImplementedError
@@ -1534,9 +1534,9 @@ class TranscribeApi:
1534
1534
  def list_vocabulary_filters(
1535
1535
  self,
1536
1536
  context: RequestContext,
1537
- next_token: NextToken = None,
1538
- max_results: MaxResults = None,
1539
- name_contains: VocabularyFilterName = None,
1537
+ next_token: NextToken | None = None,
1538
+ max_results: MaxResults | None = None,
1539
+ name_contains: VocabularyFilterName | None = None,
1540
1540
  **kwargs,
1541
1541
  ) -> ListVocabularyFiltersResponse:
1542
1542
  raise NotImplementedError
@@ -1547,12 +1547,12 @@ class TranscribeApi:
1547
1547
  context: RequestContext,
1548
1548
  call_analytics_job_name: CallAnalyticsJobName,
1549
1549
  media: Media,
1550
- output_location: Uri = None,
1551
- output_encryption_kms_key_id: KMSKeyId = None,
1552
- data_access_role_arn: DataAccessRoleArn = None,
1553
- settings: CallAnalyticsJobSettings = None,
1554
- tags: TagList = None,
1555
- channel_definitions: ChannelDefinitions = None,
1550
+ output_location: Uri | None = None,
1551
+ output_encryption_kms_key_id: KMSKeyId | None = None,
1552
+ data_access_role_arn: DataAccessRoleArn | None = None,
1553
+ settings: CallAnalyticsJobSettings | None = None,
1554
+ tags: TagList | None = None,
1555
+ channel_definitions: ChannelDefinitions | None = None,
1556
1556
  **kwargs,
1557
1557
  ) -> StartCallAnalyticsJobResponse:
1558
1558
  raise NotImplementedError
@@ -1566,10 +1566,10 @@ class TranscribeApi:
1566
1566
  output_bucket_name: OutputBucketName,
1567
1567
  data_access_role_arn: DataAccessRoleArn,
1568
1568
  settings: MedicalScribeSettings,
1569
- output_encryption_kms_key_id: KMSKeyId = None,
1570
- kms_encryption_context: KMSEncryptionContextMap = None,
1571
- channel_definitions: MedicalScribeChannelDefinitions = None,
1572
- tags: TagList = None,
1569
+ output_encryption_kms_key_id: KMSKeyId | None = None,
1570
+ kms_encryption_context: KMSEncryptionContextMap | None = None,
1571
+ channel_definitions: MedicalScribeChannelDefinitions | None = None,
1572
+ tags: TagList | None = None,
1573
1573
  **kwargs,
1574
1574
  ) -> StartMedicalScribeJobResponse:
1575
1575
  raise NotImplementedError
@@ -1586,24 +1586,24 @@ class TranscribeApi:
1586
1586
  context: RequestContext,
1587
1587
  transcription_job_name: TranscriptionJobName,
1588
1588
  media: Media,
1589
- language_code: LanguageCode = None,
1590
- media_sample_rate_hertz: MediaSampleRateHertz = None,
1591
- media_format: MediaFormat = None,
1592
- output_bucket_name: OutputBucketName = None,
1593
- output_key: OutputKey = None,
1594
- output_encryption_kms_key_id: KMSKeyId = None,
1595
- kms_encryption_context: KMSEncryptionContextMap = None,
1596
- settings: Settings = None,
1597
- model_settings: ModelSettings = None,
1598
- job_execution_settings: JobExecutionSettings = None,
1599
- content_redaction: ContentRedaction = None,
1600
- identify_language: Boolean = None,
1601
- identify_multiple_languages: Boolean = None,
1602
- language_options: LanguageOptions = None,
1603
- subtitles: Subtitles = None,
1604
- tags: TagList = None,
1605
- language_id_settings: LanguageIdSettingsMap = None,
1606
- toxicity_detection: ToxicityDetection = None,
1589
+ language_code: LanguageCode | None = None,
1590
+ media_sample_rate_hertz: MediaSampleRateHertz | None = None,
1591
+ media_format: MediaFormat | None = None,
1592
+ output_bucket_name: OutputBucketName | None = None,
1593
+ output_key: OutputKey | None = None,
1594
+ output_encryption_kms_key_id: KMSKeyId | None = None,
1595
+ kms_encryption_context: KMSEncryptionContextMap | None = None,
1596
+ settings: Settings | None = None,
1597
+ model_settings: ModelSettings | None = None,
1598
+ job_execution_settings: JobExecutionSettings | None = None,
1599
+ content_redaction: ContentRedaction | None = None,
1600
+ identify_language: Boolean | None = None,
1601
+ identify_multiple_languages: Boolean | None = None,
1602
+ language_options: LanguageOptions | None = None,
1603
+ subtitles: Subtitles | None = None,
1604
+ tags: TagList | None = None,
1605
+ language_id_settings: LanguageIdSettingsMap | None = None,
1606
+ toxicity_detection: ToxicityDetection | None = None,
1607
1607
  **kwargs,
1608
1608
  ) -> StartTranscriptionJobResponse:
1609
1609
  raise NotImplementedError
@@ -1626,7 +1626,7 @@ class TranscribeApi:
1626
1626
  context: RequestContext,
1627
1627
  category_name: CategoryName,
1628
1628
  rules: RuleList,
1629
- input_type: InputType = None,
1629
+ input_type: InputType | None = None,
1630
1630
  **kwargs,
1631
1631
  ) -> UpdateCallAnalyticsCategoryResponse:
1632
1632
  raise NotImplementedError
@@ -1648,9 +1648,9 @@ class TranscribeApi:
1648
1648
  context: RequestContext,
1649
1649
  vocabulary_name: VocabularyName,
1650
1650
  language_code: LanguageCode,
1651
- phrases: Phrases = None,
1652
- vocabulary_file_uri: Uri = None,
1653
- data_access_role_arn: DataAccessRoleArn = None,
1651
+ phrases: Phrases | None = None,
1652
+ vocabulary_file_uri: Uri | None = None,
1653
+ data_access_role_arn: DataAccessRoleArn | None = None,
1654
1654
  **kwargs,
1655
1655
  ) -> UpdateVocabularyResponse:
1656
1656
  raise NotImplementedError
@@ -1660,9 +1660,9 @@ class TranscribeApi:
1660
1660
  self,
1661
1661
  context: RequestContext,
1662
1662
  vocabulary_filter_name: VocabularyFilterName,
1663
- words: Words = None,
1664
- vocabulary_filter_file_uri: Uri = None,
1665
- data_access_role_arn: DataAccessRoleArn = None,
1663
+ words: Words | None = None,
1664
+ vocabulary_filter_file_uri: Uri | None = None,
1665
+ data_access_role_arn: DataAccessRoleArn | None = None,
1666
1666
  **kwargs,
1667
1667
  ) -> UpdateVocabularyFilterResponse:
1668
1668
  raise NotImplementedError
@@ -411,7 +411,7 @@ def generate_service_api(output, service: ServiceModel, doc=True):
411
411
  type_name = to_valid_python_name(m_shape.name)
412
412
  if m == streaming_payload_member:
413
413
  type_name = f"IO[{type_name}]"
414
- parameters[xform_name(m)] = f"{type_name} = None"
414
+ parameters[xform_name(m)] = f"{type_name} | None = None"
415
415
 
416
416
  if any(map(is_bad_param_name, parameters.keys())):
417
417
  # if we cannot render the parameter name, don't expand the parameters in the handler
@@ -4,7 +4,7 @@ import inspect
4
4
  import pkgutil
5
5
  import re
6
6
  from types import FunctionType, ModuleType, NoneType, UnionType
7
- from typing import Optional, Pattern, get_args
7
+ from typing import Optional, Pattern, Union, get_args, get_origin
8
8
 
9
9
 
10
10
  def _import_submodules(
@@ -160,8 +160,12 @@ def check_provider_signature(sub_class: type, base_class: type, method_name: str
160
160
 
161
161
 
162
162
  def _remove_optional(_type: type) -> list[type]:
163
- if type(_type) == UnionType:
163
+ if get_origin(_type) in [Union, UnionType]:
164
164
  union_types = list(get_args(_type))
165
- union_types.remove(NoneType)
165
+ try:
166
+ union_types.remove(NoneType)
167
+ except ValueError:
168
+ # Union of some other kind, like 'str | int'
169
+ pass
166
170
  return union_types
167
171
  return [_type]
localstack/version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '4.4.1.dev12'
21
- __version_tuple__ = version_tuple = (4, 4, 1, 'dev12')
20
+ __version__ = version = '4.4.1.dev13'
21
+ __version_tuple__ = version_tuple = (4, 4, 1, 'dev13')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.4.1.dev12
3
+ Version: 4.4.1.dev13
4
4
  Summary: The core library and runtime of LocalStack
5
5
  Author-email: LocalStack Contributors <info@localstack.cloud>
6
6
  License-Expression: Apache-2.0