ominfra 0.0.0.dev368__py3-none-any.whl → 0.0.0.dev501__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 ominfra might be problematic. Click here for more details.

Files changed (82) hide show
  1. ominfra/{.manifests.json → .omlish-manifests.json} +6 -6
  2. ominfra/README.md +26 -0
  3. ominfra/__about__.py +6 -3
  4. ominfra/clouds/aws/auth.py +1 -0
  5. ominfra/clouds/aws/instancetypes/cache.json.gz +0 -0
  6. ominfra/clouds/aws/instancetypes/cli.py +1 -1
  7. ominfra/clouds/aws/journald2aws/cursor.py +5 -1
  8. ominfra/clouds/aws/journald2aws/driver.py +4 -1
  9. ominfra/clouds/aws/journald2aws/main.py +1 -1
  10. ominfra/clouds/aws/journald2aws/poster.py +5 -1
  11. ominfra/clouds/aws/models/{base.py → base/__init__.py} +7 -2
  12. ominfra/clouds/aws/models/base/_dataclasses.py +721 -0
  13. ominfra/clouds/aws/models/gen/cli.py +2 -1
  14. ominfra/clouds/aws/models/gen/gen.py +16 -7
  15. ominfra/clouds/aws/models/services/{ec2.py → ec2/__init__.py} +227 -1
  16. ominfra/clouds/aws/models/services/ec2/_dataclasses.py +30654 -0
  17. ominfra/clouds/aws/models/services/{lambda_.py → lambda_/__init__.py} +139 -1
  18. ominfra/clouds/aws/models/services/lambda_/_dataclasses.py +4182 -0
  19. ominfra/clouds/aws/models/services/{rds.py → rds/__init__.py} +254 -78
  20. ominfra/clouds/aws/models/services/rds/_dataclasses.py +8231 -0
  21. ominfra/clouds/aws/models/services/{s3.py → s3/__init__.py} +9 -1
  22. ominfra/clouds/aws/models/services/s3/_dataclasses.py +5014 -0
  23. ominfra/commands/runners.py +2 -0
  24. ominfra/commands/ssh.py +3 -0
  25. ominfra/journald/messages.py +4 -1
  26. ominfra/journald/tailer.py +13 -10
  27. ominfra/manage/bootstrap_.py +1 -1
  28. ominfra/manage/commands/base.py +7 -6
  29. ominfra/manage/deploy/commands.py +4 -1
  30. ominfra/manage/deploy/conf/specs.py +2 -2
  31. ominfra/manage/deploy/paths/owners.py +3 -2
  32. ominfra/manage/deploy/paths/paths.py +4 -3
  33. ominfra/manage/deploy/tags.py +8 -8
  34. ominfra/manage/inject.py +2 -1
  35. ominfra/manage/main.py +5 -3
  36. ominfra/manage/remote/_main.py +5 -1
  37. ominfra/manage/remote/channel.py +2 -1
  38. ominfra/manage/remote/execution.py +10 -6
  39. ominfra/manage/remote/spawning.py +2 -1
  40. ominfra/manage/system/commands.py +4 -1
  41. ominfra/manage/system/packages.py +2 -1
  42. ominfra/manage/system/platforms.py +7 -4
  43. ominfra/manage/targets/bestpython.sh +1 -1
  44. ominfra/manage/targets/connection.py +2 -1
  45. ominfra/manage/targets/targets.py +5 -5
  46. ominfra/scripts/journald2aws.py +5386 -2425
  47. ominfra/scripts/manage.py +10604 -7389
  48. ominfra/scripts/supervisor.py +7168 -4002
  49. ominfra/supervisor/configs.py +6 -6
  50. ominfra/supervisor/dispatchers.py +3 -0
  51. ominfra/supervisor/dispatchersimpl.py +9 -3
  52. ominfra/supervisor/events.py +13 -6
  53. ominfra/supervisor/groups.py +3 -0
  54. ominfra/supervisor/groupsimpl.py +3 -0
  55. ominfra/supervisor/http.py +1 -1
  56. ominfra/supervisor/inject.py +3 -0
  57. ominfra/supervisor/io.py +4 -1
  58. ominfra/supervisor/main.py +4 -4
  59. ominfra/supervisor/pipes.py +3 -0
  60. ominfra/supervisor/privileges.py +3 -0
  61. ominfra/supervisor/processimpl.py +4 -1
  62. ominfra/supervisor/setup.py +4 -2
  63. ominfra/supervisor/setupimpl.py +4 -1
  64. ominfra/supervisor/signals.py +7 -1
  65. ominfra/supervisor/spawning.py +3 -0
  66. ominfra/supervisor/supervisor.py +4 -1
  67. ominfra/supervisor/types.py +9 -8
  68. ominfra/supervisor/utils/collections.py +7 -2
  69. ominfra/supervisor/utils/diag.py +3 -0
  70. ominfra/supervisor/utils/fds.py +3 -0
  71. ominfra/supervisor/utils/fs.py +3 -0
  72. ominfra/supervisor/utils/os.py +3 -2
  73. ominfra/supervisor/utils/strings.py +1 -0
  74. ominfra/threadworkers.py +6 -2
  75. ominfra/tools/listresources.py +1 -1
  76. ominfra-0.0.0.dev501.dist-info/METADATA +54 -0
  77. {ominfra-0.0.0.dev368.dist-info → ominfra-0.0.0.dev501.dist-info}/RECORD +81 -75
  78. ominfra-0.0.0.dev368.dist-info/METADATA +0 -23
  79. {ominfra-0.0.0.dev368.dist-info → ominfra-0.0.0.dev501.dist-info}/WHEEL +0 -0
  80. {ominfra-0.0.0.dev368.dist-info → ominfra-0.0.0.dev501.dist-info}/entry_points.txt +0 -0
  81. {ominfra-0.0.0.dev368.dist-info → ominfra-0.0.0.dev501.dist-info}/licenses/LICENSE +0 -0
  82. {ominfra-0.0.0.dev368.dist-info → ominfra-0.0.0.dev501.dist-info}/top_level.txt +0 -0
@@ -86,7 +86,8 @@ class Cli(ap.Cli):
86
86
  fn = svc.name
87
87
  if fn in keyword.kwlist:
88
88
  fn += '_'
89
- output_file = os.path.join(output_dir, f'{fn}.py')
89
+ output_file = os.path.join(output_dir, fn, '__init__.py')
90
+ os.makedirs(os.path.dirname(output_file), exist_ok=True)
90
91
  with open(output_file, 'w') as f:
91
92
  f.write(mod)
92
93
 
@@ -17,7 +17,7 @@ from omlish.lite.strings import snake_case
17
17
 
18
18
  if ta.TYPE_CHECKING:
19
19
  import botocore.loaders
20
- import botocore.mode2
20
+ import botocore.model
21
21
  import botocore.session
22
22
  else:
23
23
  botocore = lang.proxy_import('botocore', extras=[
@@ -175,10 +175,13 @@ class ModelGen:
175
175
 
176
176
  def get_type_ann(
177
177
  self,
178
- name: str,
178
+ name: str | None,
179
179
  *,
180
180
  unquoted_names: bool = False,
181
181
  ) -> str | None:
182
+ if name is None:
183
+ return None
184
+
182
185
  try:
183
186
  return self.BASE_TYPE_ANNS[name]
184
187
  except KeyError:
@@ -300,7 +303,13 @@ class ModelGen:
300
303
  '',
301
304
  'from omlish import dataclasses as _dc # noqa',
302
305
  '',
303
- 'from .. import base as _base # noqa',
306
+ 'from ... import base as _base # noqa',
307
+ '',
308
+ '',
309
+ '_dc.init_package(',
310
+ ' globals(),',
311
+ ' codegen=True,',
312
+ ')',
304
313
  '',
305
314
  '',
306
315
  '##',
@@ -434,17 +443,17 @@ class ModelGen:
434
443
  elif isinstance(shape, botocore.model.MapShape):
435
444
  # shape.key, shape.value
436
445
  kn = shape.key.name
437
- ka = self.get_type_ann(
446
+ ka2 = self.get_type_ann(
438
447
  kn,
439
448
  unquoted_names=unquoted_names,
440
449
  )
441
450
  vn = shape.key.name
442
- va = self.get_type_ann(
451
+ va2 = self.get_type_ann(
443
452
  vn,
444
453
  unquoted_names=unquoted_names,
445
454
  )
446
- l = f'{san_name}: _ta.TypeAlias = _ta.Mapping[{ka or kn}, {va or vn}]'
447
- if ka is None or va is None:
455
+ l = f'{san_name}: _ta.TypeAlias = _ta.Mapping[{ka2 or kn}, {va2 or vn}]'
456
+ if ka2 is None or va2 is None:
448
457
  l = '# ' + l
449
458
  return self.ShapeSrc(l)
450
459
 
@@ -7,7 +7,13 @@ import typing as _ta # noqa
7
7
 
8
8
  from omlish import dataclasses as _dc # noqa
9
9
 
10
- from .. import base as _base # noqa
10
+ from ... import base as _base # noqa
11
+
12
+
13
+ _dc.init_package(
14
+ globals(),
15
+ codegen=True,
16
+ )
11
17
 
12
18
 
13
19
  ##
@@ -37,6 +43,11 @@ class ArchitectureValues(_enum.Enum):
37
43
  ARM64_MAC = 'arm64_mac'
38
44
 
39
45
 
46
+ class AttachmentLimitType(_enum.Enum):
47
+ SHARED = 'shared'
48
+ DEDICATED = 'dedicated'
49
+
50
+
40
51
  class AttachmentStatus(_enum.Enum):
41
52
  ATTACHING = 'attaching'
42
53
  ATTACHED = 'attached'
@@ -46,6 +57,8 @@ class AttachmentStatus(_enum.Enum):
46
57
 
47
58
  AutoRecoveryFlag = _ta.NewType('AutoRecoveryFlag', bool)
48
59
 
60
+ AvailabilityZoneId = _ta.NewType('AvailabilityZoneId', str)
61
+
49
62
 
50
63
  class BandwidthWeightingType(_enum.Enum):
51
64
  DEFAULT = 'default'
@@ -291,6 +304,7 @@ class InstanceLifecycleType(_enum.Enum):
291
304
  SPOT = 'spot'
292
305
  SCHEDULED = 'scheduled'
293
306
  CAPACITY_BLOCK = 'capacity-block'
307
+ INTERRUPTIBLE_CAPACITY_RESERVATION = 'interruptible-capacity-reservation'
294
308
 
295
309
 
296
310
  class InstanceMetadataEndpointState(_enum.Enum):
@@ -1295,6 +1309,145 @@ class InstanceType(_enum.Enum):
1295
1309
  C8GN_METAL_48XL = 'c8gn.metal-48xl'
1296
1310
  F2_6XLARGE = 'f2.6xlarge'
1297
1311
  P6E_GB200_36XLARGE = 'p6e-gb200.36xlarge'
1312
+ G6F_LARGE = 'g6f.large'
1313
+ G6F_XLARGE = 'g6f.xlarge'
1314
+ G6F_2XLARGE = 'g6f.2xlarge'
1315
+ G6F_4XLARGE = 'g6f.4xlarge'
1316
+ GR6F_4XLARGE = 'gr6f.4xlarge'
1317
+ P5_4XLARGE = 'p5.4xlarge'
1318
+ R8I_LARGE = 'r8i.large'
1319
+ R8I_XLARGE = 'r8i.xlarge'
1320
+ R8I_2XLARGE = 'r8i.2xlarge'
1321
+ R8I_4XLARGE = 'r8i.4xlarge'
1322
+ R8I_8XLARGE = 'r8i.8xlarge'
1323
+ R8I_12XLARGE = 'r8i.12xlarge'
1324
+ R8I_16XLARGE = 'r8i.16xlarge'
1325
+ R8I_24XLARGE = 'r8i.24xlarge'
1326
+ R8I_32XLARGE = 'r8i.32xlarge'
1327
+ R8I_48XLARGE = 'r8i.48xlarge'
1328
+ R8I_96XLARGE = 'r8i.96xlarge'
1329
+ R8I_METAL_48XL = 'r8i.metal-48xl'
1330
+ R8I_METAL_96XL = 'r8i.metal-96xl'
1331
+ R8I_FLEX_LARGE = 'r8i-flex.large'
1332
+ R8I_FLEX_XLARGE = 'r8i-flex.xlarge'
1333
+ R8I_FLEX_2XLARGE = 'r8i-flex.2xlarge'
1334
+ R8I_FLEX_4XLARGE = 'r8i-flex.4xlarge'
1335
+ R8I_FLEX_8XLARGE = 'r8i-flex.8xlarge'
1336
+ R8I_FLEX_12XLARGE = 'r8i-flex.12xlarge'
1337
+ R8I_FLEX_16XLARGE = 'r8i-flex.16xlarge'
1338
+ M8I_LARGE = 'm8i.large'
1339
+ M8I_XLARGE = 'm8i.xlarge'
1340
+ M8I_2XLARGE = 'm8i.2xlarge'
1341
+ M8I_4XLARGE = 'm8i.4xlarge'
1342
+ M8I_8XLARGE = 'm8i.8xlarge'
1343
+ M8I_12XLARGE = 'm8i.12xlarge'
1344
+ M8I_16XLARGE = 'm8i.16xlarge'
1345
+ M8I_24XLARGE = 'm8i.24xlarge'
1346
+ M8I_32XLARGE = 'm8i.32xlarge'
1347
+ M8I_48XLARGE = 'm8i.48xlarge'
1348
+ M8I_96XLARGE = 'm8i.96xlarge'
1349
+ M8I_METAL_48XL = 'm8i.metal-48xl'
1350
+ M8I_METAL_96XL = 'm8i.metal-96xl'
1351
+ M8I_FLEX_LARGE = 'm8i-flex.large'
1352
+ M8I_FLEX_XLARGE = 'm8i-flex.xlarge'
1353
+ M8I_FLEX_2XLARGE = 'm8i-flex.2xlarge'
1354
+ M8I_FLEX_4XLARGE = 'm8i-flex.4xlarge'
1355
+ M8I_FLEX_8XLARGE = 'm8i-flex.8xlarge'
1356
+ M8I_FLEX_12XLARGE = 'm8i-flex.12xlarge'
1357
+ M8I_FLEX_16XLARGE = 'm8i-flex.16xlarge'
1358
+ I8GE_LARGE = 'i8ge.large'
1359
+ I8GE_XLARGE = 'i8ge.xlarge'
1360
+ I8GE_2XLARGE = 'i8ge.2xlarge'
1361
+ I8GE_3XLARGE = 'i8ge.3xlarge'
1362
+ I8GE_6XLARGE = 'i8ge.6xlarge'
1363
+ I8GE_12XLARGE = 'i8ge.12xlarge'
1364
+ I8GE_18XLARGE = 'i8ge.18xlarge'
1365
+ I8GE_24XLARGE = 'i8ge.24xlarge'
1366
+ I8GE_48XLARGE = 'i8ge.48xlarge'
1367
+ I8GE_METAL_24XL = 'i8ge.metal-24xl'
1368
+ I8GE_METAL_48XL = 'i8ge.metal-48xl'
1369
+ MAC_M4_METAL = 'mac-m4.metal'
1370
+ MAC_M4PRO_METAL = 'mac-m4pro.metal'
1371
+ R8GN_MEDIUM = 'r8gn.medium'
1372
+ R8GN_LARGE = 'r8gn.large'
1373
+ R8GN_XLARGE = 'r8gn.xlarge'
1374
+ R8GN_2XLARGE = 'r8gn.2xlarge'
1375
+ R8GN_4XLARGE = 'r8gn.4xlarge'
1376
+ R8GN_8XLARGE = 'r8gn.8xlarge'
1377
+ R8GN_12XLARGE = 'r8gn.12xlarge'
1378
+ R8GN_16XLARGE = 'r8gn.16xlarge'
1379
+ R8GN_24XLARGE = 'r8gn.24xlarge'
1380
+ R8GN_48XLARGE = 'r8gn.48xlarge'
1381
+ R8GN_METAL_24XL = 'r8gn.metal-24xl'
1382
+ R8GN_METAL_48XL = 'r8gn.metal-48xl'
1383
+ C8I_LARGE = 'c8i.large'
1384
+ C8I_XLARGE = 'c8i.xlarge'
1385
+ C8I_2XLARGE = 'c8i.2xlarge'
1386
+ C8I_4XLARGE = 'c8i.4xlarge'
1387
+ C8I_8XLARGE = 'c8i.8xlarge'
1388
+ C8I_12XLARGE = 'c8i.12xlarge'
1389
+ C8I_16XLARGE = 'c8i.16xlarge'
1390
+ C8I_24XLARGE = 'c8i.24xlarge'
1391
+ C8I_32XLARGE = 'c8i.32xlarge'
1392
+ C8I_48XLARGE = 'c8i.48xlarge'
1393
+ C8I_96XLARGE = 'c8i.96xlarge'
1394
+ C8I_METAL_48XL = 'c8i.metal-48xl'
1395
+ C8I_METAL_96XL = 'c8i.metal-96xl'
1396
+ C8I_FLEX_LARGE = 'c8i-flex.large'
1397
+ C8I_FLEX_XLARGE = 'c8i-flex.xlarge'
1398
+ C8I_FLEX_2XLARGE = 'c8i-flex.2xlarge'
1399
+ C8I_FLEX_4XLARGE = 'c8i-flex.4xlarge'
1400
+ C8I_FLEX_8XLARGE = 'c8i-flex.8xlarge'
1401
+ C8I_FLEX_12XLARGE = 'c8i-flex.12xlarge'
1402
+ C8I_FLEX_16XLARGE = 'c8i-flex.16xlarge'
1403
+ R8GB_MEDIUM = 'r8gb.medium'
1404
+ R8GB_LARGE = 'r8gb.large'
1405
+ R8GB_XLARGE = 'r8gb.xlarge'
1406
+ R8GB_2XLARGE = 'r8gb.2xlarge'
1407
+ R8GB_4XLARGE = 'r8gb.4xlarge'
1408
+ R8GB_8XLARGE = 'r8gb.8xlarge'
1409
+ R8GB_12XLARGE = 'r8gb.12xlarge'
1410
+ R8GB_16XLARGE = 'r8gb.16xlarge'
1411
+ R8GB_24XLARGE = 'r8gb.24xlarge'
1412
+ R8GB_METAL_24XL = 'r8gb.metal-24xl'
1413
+ M8A_MEDIUM = 'm8a.medium'
1414
+ M8A_LARGE = 'm8a.large'
1415
+ M8A_XLARGE = 'm8a.xlarge'
1416
+ M8A_2XLARGE = 'm8a.2xlarge'
1417
+ M8A_4XLARGE = 'm8a.4xlarge'
1418
+ M8A_8XLARGE = 'm8a.8xlarge'
1419
+ M8A_12XLARGE = 'm8a.12xlarge'
1420
+ M8A_16XLARGE = 'm8a.16xlarge'
1421
+ M8A_24XLARGE = 'm8a.24xlarge'
1422
+ M8A_48XLARGE = 'm8a.48xlarge'
1423
+ M8A_METAL_24XL = 'm8a.metal-24xl'
1424
+ M8A_METAL_48XL = 'm8a.metal-48xl'
1425
+ TRN2_3XLARGE = 'trn2.3xlarge'
1426
+ R8A_MEDIUM = 'r8a.medium'
1427
+ R8A_LARGE = 'r8a.large'
1428
+ R8A_XLARGE = 'r8a.xlarge'
1429
+ R8A_2XLARGE = 'r8a.2xlarge'
1430
+ R8A_4XLARGE = 'r8a.4xlarge'
1431
+ R8A_8XLARGE = 'r8a.8xlarge'
1432
+ R8A_12XLARGE = 'r8a.12xlarge'
1433
+ R8A_16XLARGE = 'r8a.16xlarge'
1434
+ R8A_24XLARGE = 'r8a.24xlarge'
1435
+ R8A_48XLARGE = 'r8a.48xlarge'
1436
+ R8A_METAL_24XL = 'r8a.metal-24xl'
1437
+ R8A_METAL_48XL = 'r8a.metal-48xl'
1438
+ P6_B300_48XLARGE = 'p6-b300.48xlarge'
1439
+ C8A_MEDIUM = 'c8a.medium'
1440
+ C8A_LARGE = 'c8a.large'
1441
+ C8A_XLARGE = 'c8a.xlarge'
1442
+ C8A_2XLARGE = 'c8a.2xlarge'
1443
+ C8A_4XLARGE = 'c8a.4xlarge'
1444
+ C8A_8XLARGE = 'c8a.8xlarge'
1445
+ C8A_12XLARGE = 'c8a.12xlarge'
1446
+ C8A_16XLARGE = 'c8a.16xlarge'
1447
+ C8A_24XLARGE = 'c8a.24xlarge'
1448
+ C8A_48XLARGE = 'c8a.48xlarge'
1449
+ C8A_METAL_24XL = 'c8a.metal-24xl'
1450
+ C8A_METAL_48XL = 'c8a.metal-48xl'
1298
1451
 
1299
1452
 
1300
1453
  class InstanceTypeHypervisor(_enum.Enum):
@@ -1338,6 +1491,7 @@ LocalGatewayId = _ta.NewType('LocalGatewayId', str)
1338
1491
  class MarketType(_enum.Enum):
1339
1492
  SPOT = 'spot'
1340
1493
  CAPACITY_BLOCK = 'capacity-block'
1494
+ INTERRUPTIBLE_CAPACITY_RESERVATION = 'interruptible-capacity-reservation'
1341
1495
 
1342
1496
 
1343
1497
  MaxIpv4AddrPerInterface = _ta.NewType('MaxIpv4AddrPerInterface', int)
@@ -1348,6 +1502,8 @@ MaxNetworkInterfaces = _ta.NewType('MaxNetworkInterfaces', int)
1348
1502
 
1349
1503
  MaximumBandwidthInMbps = _ta.NewType('MaximumBandwidthInMbps', int)
1350
1504
 
1505
+ MaximumEbsAttachments = _ta.NewType('MaximumEbsAttachments', int)
1506
+
1351
1507
  MaximumEfaInterfaces = _ta.NewType('MaximumEfaInterfaces', int)
1352
1508
 
1353
1509
  MaximumEnaQueueCount = _ta.NewType('MaximumEnaQueueCount', int)
@@ -1502,6 +1658,7 @@ class ResourceType(_enum.Enum):
1502
1658
  FPGA_IMAGE = 'fpga-image'
1503
1659
  HOST_RESERVATION = 'host-reservation'
1504
1660
  IMAGE = 'image'
1661
+ IMAGE_USAGE_REPORT = 'image-usage-report'
1505
1662
  IMPORT_IMAGE_TASK = 'import-image-task'
1506
1663
  IMPORT_SNAPSHOT_TASK = 'import-snapshot-task'
1507
1664
  INSTANCE = 'instance'
@@ -1549,6 +1706,7 @@ class ResourceType(_enum.Enum):
1549
1706
  TRANSIT_GATEWAY_CONNECT_PEER = 'transit-gateway-connect-peer'
1550
1707
  TRANSIT_GATEWAY_MULTICAST_DOMAIN = 'transit-gateway-multicast-domain'
1551
1708
  TRANSIT_GATEWAY_POLICY_TABLE = 'transit-gateway-policy-table'
1709
+ TRANSIT_GATEWAY_METERING_POLICY = 'transit-gateway-metering-policy'
1552
1710
  TRANSIT_GATEWAY_ROUTE_TABLE = 'transit-gateway-route-table'
1553
1711
  TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT = 'transit-gateway-route-table-announcement'
1554
1712
  VOLUME = 'volume'
@@ -1571,6 +1729,7 @@ class ResourceType(_enum.Enum):
1571
1729
  VERIFIED_ACCESS_TRUST_PROVIDER = 'verified-access-trust-provider'
1572
1730
  VPN_CONNECTION_DEVICE_TYPE = 'vpn-connection-device-type'
1573
1731
  VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION = 'vpc-block-public-access-exclusion'
1732
+ VPC_ENCRYPTION_CONTROL = 'vpc-encryption-control'
1574
1733
  ROUTE_SERVER = 'route-server'
1575
1734
  ROUTE_SERVER_ENDPOINT = 'route-server-endpoint'
1576
1735
  ROUTE_SERVER_PEER = 'route-server-peer'
@@ -1581,6 +1740,11 @@ class ResourceType(_enum.Enum):
1581
1740
  IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN = 'ipam-external-resource-verification-token'
1582
1741
  CAPACITY_BLOCK = 'capacity-block'
1583
1742
  MAC_MODIFICATION_TASK = 'mac-modification-task'
1743
+ IPAM_PREFIX_LIST_RESOLVER = 'ipam-prefix-list-resolver'
1744
+ IPAM_POLICY = 'ipam-policy'
1745
+ IPAM_PREFIX_LIST_RESOLVER_TARGET = 'ipam-prefix-list-resolver-target'
1746
+ CAPACITY_MANAGER_DATA_EXPORT = 'capacity-manager-data-export'
1747
+ VPN_CONCENTRATOR = 'vpn-concentrator'
1584
1748
 
1585
1749
 
1586
1750
  class RootDeviceType(_enum.Enum):
@@ -1595,11 +1759,13 @@ class RouteOrigin(_enum.Enum):
1595
1759
  CREATE_ROUTE_TABLE = 'CreateRouteTable'
1596
1760
  CREATE_ROUTE = 'CreateRoute'
1597
1761
  ENABLE_VGW_ROUTE_PROPAGATION = 'EnableVgwRoutePropagation'
1762
+ ADVERTISEMENT = 'Advertisement'
1598
1763
 
1599
1764
 
1600
1765
  class RouteState(_enum.Enum):
1601
1766
  ACTIVE = 'active'
1602
1767
  BLACKHOLE = 'blackhole'
1768
+ FILTERED = 'filtered'
1603
1769
 
1604
1770
 
1605
1771
  class RouteTableAssociationStateCode(_enum.Enum):
@@ -1623,6 +1789,7 @@ class ServiceManaged(_enum.Enum):
1623
1789
  ALB = 'alb'
1624
1790
  NLB = 'nlb'
1625
1791
  RNAT = 'rnat'
1792
+ RDS = 'rds'
1626
1793
 
1627
1794
 
1628
1795
  class ShutdownBehavior(_enum.Enum):
@@ -3369,6 +3536,12 @@ class Placement(
3369
3536
  _base.Shape,
3370
3537
  shape_name='Placement',
3371
3538
  ):
3539
+ availability_zone_id: AvailabilityZoneId | None = _dc.field(default=None, metadata=_base.field_metadata(
3540
+ member_name='AvailabilityZoneId',
3541
+ serialization_name='availabilityZoneId',
3542
+ shape_name='AvailabilityZoneId',
3543
+ ))
3544
+
3372
3545
  affinity: str | None = _dc.field(default=None, metadata=_base.field_metadata(
3373
3546
  member_name='Affinity',
3374
3547
  serialization_name='affinity',
@@ -3706,6 +3879,12 @@ class Route(
3706
3879
  shape_name='OdbNetworkArn',
3707
3880
  ))
3708
3881
 
3882
+ ip_address: str | None = _dc.field(default=None, metadata=_base.field_metadata(
3883
+ member_name='IpAddress',
3884
+ serialization_name='ipAddress',
3885
+ shape_name='String',
3886
+ ))
3887
+
3709
3888
 
3710
3889
  @_dc.dataclass(frozen=True, kw_only=True)
3711
3890
  class RouteTableAssociationState(
@@ -4049,6 +4228,18 @@ class EbsInfo(
4049
4228
  shape_name='EbsNvmeSupport',
4050
4229
  ))
4051
4230
 
4231
+ maximum_ebs_attachments: MaximumEbsAttachments | None = _dc.field(default=None, metadata=_base.field_metadata(
4232
+ member_name='MaximumEbsAttachments',
4233
+ serialization_name='maximumEbsAttachments',
4234
+ shape_name='MaximumEbsAttachments',
4235
+ ))
4236
+
4237
+ attachment_limit_type: AttachmentLimitType | None = _dc.field(default=None, metadata=_base.field_metadata(
4238
+ member_name='AttachmentLimitType',
4239
+ serialization_name='attachmentLimitType',
4240
+ shape_name='AttachmentLimitType',
4241
+ ))
4242
+
4052
4243
 
4053
4244
  @_dc.dataclass(frozen=True, kw_only=True)
4054
4245
  class EbsInstanceBlockDevice(
@@ -4570,6 +4761,12 @@ class RouteTableAssociation(
4570
4761
  shape_name='String',
4571
4762
  ))
4572
4763
 
4764
+ public_ipv4_pool: str | None = _dc.field(default=None, metadata=_base.field_metadata(
4765
+ member_name='PublicIpv4Pool',
4766
+ serialization_name='publicIpv4Pool',
4767
+ shape_name='String',
4768
+ ))
4769
+
4573
4770
  association_state: RouteTableAssociationState | None = _dc.field(default=None, metadata=_base.field_metadata(
4574
4771
  member_name='AssociationState',
4575
4772
  serialization_name='associationState',
@@ -4688,6 +4885,11 @@ class TerminateInstancesRequest(
4688
4885
  shape_name='InstanceIdStringList',
4689
4886
  ))
4690
4887
 
4888
+ force: bool | None = _dc.field(default=None, metadata=_base.field_metadata(
4889
+ member_name='Force',
4890
+ shape_name='Boolean',
4891
+ ))
4892
+
4691
4893
  skip_os_shutdown: bool | None = _dc.field(default=None, metadata=_base.field_metadata(
4692
4894
  member_name='SkipOsShutdown',
4693
4895
  shape_name='Boolean',
@@ -4800,6 +5002,24 @@ class VpcEncryptionControlExclusions(
4800
5002
  shape_name='VpcEncryptionControlExclusion',
4801
5003
  ))
4802
5004
 
5005
+ lambda_: VpcEncryptionControlExclusion | None = _dc.field(default=None, metadata=_base.field_metadata(
5006
+ member_name='Lambda',
5007
+ serialization_name='lambda',
5008
+ shape_name='VpcEncryptionControlExclusion',
5009
+ ))
5010
+
5011
+ vpc_lattice: VpcEncryptionControlExclusion | None = _dc.field(default=None, metadata=_base.field_metadata(
5012
+ member_name='VpcLattice',
5013
+ serialization_name='vpcLattice',
5014
+ shape_name='VpcEncryptionControlExclusion',
5015
+ ))
5016
+
5017
+ elastic_file_system: VpcEncryptionControlExclusion | None = _dc.field(default=None, metadata=_base.field_metadata(
5018
+ member_name='ElasticFileSystem',
5019
+ serialization_name='elasticFileSystem',
5020
+ shape_name='VpcEncryptionControlExclusion',
5021
+ ))
5022
+
4803
5023
 
4804
5024
  @_dc.dataclass(frozen=True, kw_only=True)
4805
5025
  class VpcIpv6CidrBlockAssociation(
@@ -6589,6 +6809,12 @@ class NetworkInterface(
6589
6809
  shape_name='AssociatedSubnetList',
6590
6810
  ))
6591
6811
 
6812
+ availability_zone_id: str | None = _dc.field(default=None, metadata=_base.field_metadata(
6813
+ member_name='AvailabilityZoneId',
6814
+ serialization_name='availabilityZoneId',
6815
+ shape_name='String',
6816
+ ))
6817
+
6592
6818
 
6593
6819
  @_dc.dataclass(frozen=True, kw_only=True)
6594
6820
  class NeuronInfo(