ominfra 0.0.0.dev433__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 (29) hide show
  1. ominfra/README.md +26 -0
  2. ominfra/__about__.py +5 -2
  3. ominfra/clouds/aws/instancetypes/cache.json.gz +0 -0
  4. ominfra/clouds/aws/journald2aws/main.py +1 -1
  5. ominfra/clouds/aws/models/{base.py → base/__init__.py} +6 -0
  6. ominfra/clouds/aws/models/base/_dataclasses.py +721 -0
  7. ominfra/clouds/aws/models/gen/cli.py +2 -1
  8. ominfra/clouds/aws/models/gen/gen.py +16 -7
  9. ominfra/clouds/aws/models/services/{ec2.py → ec2/__init__.py} +123 -1
  10. ominfra/clouds/aws/models/services/ec2/_dataclasses.py +30654 -0
  11. ominfra/clouds/aws/models/services/{lambda_.py → lambda_/__init__.py} +139 -1
  12. ominfra/clouds/aws/models/services/lambda_/_dataclasses.py +4182 -0
  13. ominfra/clouds/aws/models/services/{rds.py → rds/__init__.py} +244 -78
  14. ominfra/clouds/aws/models/services/rds/_dataclasses.py +8231 -0
  15. ominfra/clouds/aws/models/services/{s3.py → s3/__init__.py} +9 -1
  16. ominfra/clouds/aws/models/services/s3/_dataclasses.py +5014 -0
  17. ominfra/manage/bootstrap_.py +1 -1
  18. ominfra/manage/main.py +1 -2
  19. ominfra/manage/targets/bestpython.sh +1 -1
  20. ominfra/scripts/journald2aws.py +748 -71
  21. ominfra/scripts/manage.py +824 -99
  22. ominfra/scripts/supervisor.py +925 -123
  23. ominfra/supervisor/main.py +1 -1
  24. {ominfra-0.0.0.dev433.dist-info → ominfra-0.0.0.dev501.dist-info}/METADATA +7 -5
  25. {ominfra-0.0.0.dev433.dist-info → ominfra-0.0.0.dev501.dist-info}/RECORD +29 -23
  26. {ominfra-0.0.0.dev433.dist-info → ominfra-0.0.0.dev501.dist-info}/WHEEL +0 -0
  27. {ominfra-0.0.0.dev433.dist-info → ominfra-0.0.0.dev501.dist-info}/entry_points.txt +0 -0
  28. {ominfra-0.0.0.dev433.dist-info → ominfra-0.0.0.dev501.dist-info}/licenses/LICENSE +0 -0
  29. {ominfra-0.0.0.dev433.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
  ##
@@ -298,6 +304,7 @@ class InstanceLifecycleType(_enum.Enum):
298
304
  SPOT = 'spot'
299
305
  SCHEDULED = 'scheduled'
300
306
  CAPACITY_BLOCK = 'capacity-block'
307
+ INTERRUPTIBLE_CAPACITY_RESERVATION = 'interruptible-capacity-reservation'
301
308
 
302
309
 
303
310
  class InstanceMetadataEndpointState(_enum.Enum):
@@ -1359,6 +1366,88 @@ class InstanceType(_enum.Enum):
1359
1366
  I8GE_48XLARGE = 'i8ge.48xlarge'
1360
1367
  I8GE_METAL_24XL = 'i8ge.metal-24xl'
1361
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'
1362
1451
 
1363
1452
 
1364
1453
  class InstanceTypeHypervisor(_enum.Enum):
@@ -1402,6 +1491,7 @@ LocalGatewayId = _ta.NewType('LocalGatewayId', str)
1402
1491
  class MarketType(_enum.Enum):
1403
1492
  SPOT = 'spot'
1404
1493
  CAPACITY_BLOCK = 'capacity-block'
1494
+ INTERRUPTIBLE_CAPACITY_RESERVATION = 'interruptible-capacity-reservation'
1405
1495
 
1406
1496
 
1407
1497
  MaxIpv4AddrPerInterface = _ta.NewType('MaxIpv4AddrPerInterface', int)
@@ -1616,6 +1706,7 @@ class ResourceType(_enum.Enum):
1616
1706
  TRANSIT_GATEWAY_CONNECT_PEER = 'transit-gateway-connect-peer'
1617
1707
  TRANSIT_GATEWAY_MULTICAST_DOMAIN = 'transit-gateway-multicast-domain'
1618
1708
  TRANSIT_GATEWAY_POLICY_TABLE = 'transit-gateway-policy-table'
1709
+ TRANSIT_GATEWAY_METERING_POLICY = 'transit-gateway-metering-policy'
1619
1710
  TRANSIT_GATEWAY_ROUTE_TABLE = 'transit-gateway-route-table'
1620
1711
  TRANSIT_GATEWAY_ROUTE_TABLE_ANNOUNCEMENT = 'transit-gateway-route-table-announcement'
1621
1712
  VOLUME = 'volume'
@@ -1638,6 +1729,7 @@ class ResourceType(_enum.Enum):
1638
1729
  VERIFIED_ACCESS_TRUST_PROVIDER = 'verified-access-trust-provider'
1639
1730
  VPN_CONNECTION_DEVICE_TYPE = 'vpn-connection-device-type'
1640
1731
  VPC_BLOCK_PUBLIC_ACCESS_EXCLUSION = 'vpc-block-public-access-exclusion'
1732
+ VPC_ENCRYPTION_CONTROL = 'vpc-encryption-control'
1641
1733
  ROUTE_SERVER = 'route-server'
1642
1734
  ROUTE_SERVER_ENDPOINT = 'route-server-endpoint'
1643
1735
  ROUTE_SERVER_PEER = 'route-server-peer'
@@ -1648,6 +1740,11 @@ class ResourceType(_enum.Enum):
1648
1740
  IPAM_EXTERNAL_RESOURCE_VERIFICATION_TOKEN = 'ipam-external-resource-verification-token'
1649
1741
  CAPACITY_BLOCK = 'capacity-block'
1650
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'
1651
1748
 
1652
1749
 
1653
1750
  class RootDeviceType(_enum.Enum):
@@ -1692,6 +1789,7 @@ class ServiceManaged(_enum.Enum):
1692
1789
  ALB = 'alb'
1693
1790
  NLB = 'nlb'
1694
1791
  RNAT = 'rnat'
1792
+ RDS = 'rds'
1695
1793
 
1696
1794
 
1697
1795
  class ShutdownBehavior(_enum.Enum):
@@ -4904,6 +5002,24 @@ class VpcEncryptionControlExclusions(
4904
5002
  shape_name='VpcEncryptionControlExclusion',
4905
5003
  ))
4906
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
+
4907
5023
 
4908
5024
  @_dc.dataclass(frozen=True, kw_only=True)
4909
5025
  class VpcIpv6CidrBlockAssociation(
@@ -6693,6 +6809,12 @@ class NetworkInterface(
6693
6809
  shape_name='AssociatedSubnetList',
6694
6810
  ))
6695
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
+
6696
6818
 
6697
6819
  @_dc.dataclass(frozen=True, kw_only=True)
6698
6820
  class NeuronInfo(