aws-cdk-lib 2.218.0__py3-none-any.whl → 2.219.0__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 aws-cdk-lib might be problematic. Click here for more details.

Files changed (35) hide show
  1. aws_cdk/__init__.py +19 -19
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.218.0.jsii.tgz → aws-cdk-lib@2.219.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +98 -87
  5. aws_cdk/aws_apigateway/__init__.py +39 -0
  6. aws_cdk/aws_bcmdataexports/__init__.py +9 -0
  7. aws_cdk/aws_bedrock/__init__.py +356 -1
  8. aws_cdk/aws_bedrockagentcore/__init__.py +297 -157
  9. aws_cdk/aws_codebuild/__init__.py +339 -62
  10. aws_cdk/aws_connect/__init__.py +9 -9
  11. aws_cdk/aws_cur/__init__.py +5 -3
  12. aws_cdk/aws_datasync/__init__.py +44 -22
  13. aws_cdk/aws_datazone/__init__.py +35 -33
  14. aws_cdk/aws_directoryservice/__init__.py +0 -29
  15. aws_cdk/aws_dms/__init__.py +3 -5
  16. aws_cdk/aws_ec2/__init__.py +2622 -22
  17. aws_cdk/aws_ecs/__init__.py +2681 -79
  18. aws_cdk/aws_entityresolution/__init__.py +18 -0
  19. aws_cdk/aws_greengrassv2/__init__.py +29 -0
  20. aws_cdk/aws_msk/__init__.py +4 -2
  21. aws_cdk/aws_networkfirewall/__init__.py +6 -2
  22. aws_cdk/aws_networkmanager/__init__.py +29 -29
  23. aws_cdk/aws_opensearchservice/__init__.py +58 -0
  24. aws_cdk/aws_opsworkscm/__init__.py +0 -29
  25. aws_cdk/aws_quicksight/__init__.py +38 -0
  26. aws_cdk/aws_rds/__init__.py +33 -14
  27. aws_cdk/aws_route53/__init__.py +8 -2
  28. aws_cdk/aws_servicecatalog/__init__.py +78 -86
  29. aws_cdk/aws_smsvoice/__init__.py +319 -0
  30. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/METADATA +2 -2
  31. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/RECORD +35 -35
  32. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/LICENSE +0 -0
  33. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/NOTICE +0 -0
  34. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/WHEEL +0 -0
  35. {aws_cdk_lib-2.218.0.dist-info → aws_cdk_lib-2.219.0.dist-info}/top_level.txt +0 -0
@@ -584,6 +584,82 @@ fleet = codebuild.Fleet(self, "MyFleet",
584
584
  )
585
585
  ```
586
586
 
587
+ ### Custom instance types
588
+
589
+ You can use [specific EC2 instance
590
+ types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types)
591
+ for your fleet by setting the `computeType` to `CUSTOM_INSTANCE_TYPE`. This
592
+ allows you to specify the `instanceType` in `computeConfiguration`. Only certain
593
+ EC2 instance types are supported; see the linked documentation for details.
594
+
595
+ ```python
596
+ from aws_cdk import Size
597
+
598
+
599
+ fleet = codebuild.Fleet(self, "MyFleet",
600
+ base_capacity=1,
601
+ compute_type=codebuild.FleetComputeType.CUSTOM_INSTANCE_TYPE,
602
+ environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
603
+ compute_configuration=codebuild.ComputeConfiguration(
604
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM),
605
+ # By default, 64 GiB of disk space is included. Any value optionally
606
+ # specified here is _incremental_ on top of the included disk space.
607
+ disk=Size.gibibytes(10)
608
+ )
609
+ )
610
+ ```
611
+
612
+ ### Fleet overflow behavior
613
+
614
+ When your builds exceed the capacity of your fleet, you can specify how CodeBuild should handle the overflow builds by setting the `overflowBehavior` property:
615
+
616
+ ```python
617
+ fleet = codebuild.Fleet(self, "Fleet",
618
+ compute_type=codebuild.FleetComputeType.MEDIUM,
619
+ environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
620
+ base_capacity=1,
621
+ overflow_behavior=codebuild.FleetOverflowBehavior.ON_DEMAND
622
+ )
623
+ ```
624
+
625
+ The available overflow behaviors are:
626
+
627
+ * `QUEUE` (default): Overflow builds wait for existing fleet instances to become available
628
+ * `ON_DEMAND`: Overflow builds run on CodeBuild on-demand instances
629
+
630
+ Note: If you set overflow behavior to `ON_DEMAND` for a VPC-connected fleet, ensure your VPC settings allow access to public AWS services.
631
+
632
+ ### VPCs
633
+
634
+ The same considerations that apply to [Project
635
+ VPCs](#definition-of-vpc-configuration-in-codebuild-project) also apply to Fleet
636
+ VPCs. When using a Fleet in a CodeBuild Project, it is an error to configure a
637
+ VPC on the Project. Configure a VPC on the fleet instead.
638
+
639
+ ```python
640
+ # load_balancer: elbv2.ApplicationLoadBalancer
641
+
642
+
643
+ vpc = ec2.Vpc(self, "MyVPC")
644
+ fleet = codebuild.Fleet(self, "MyProject",
645
+ compute_type=codebuild.FleetComputeType.MEDIUM,
646
+ environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
647
+ base_capacity=1,
648
+ vpc=vpc
649
+ )
650
+
651
+ fleet.connections.allow_to(load_balancer, ec2.Port.tcp(443))
652
+
653
+ project = codebuild.Project(self, "MyProject",
654
+ environment=codebuild.BuildEnvironment(
655
+ fleet=fleet
656
+ ),
657
+ build_spec=codebuild.BuildSpec.from_object({})
658
+ )
659
+ ```
660
+
661
+ > > > > > > > 39ec36ec6a (feat(codebuild): add custom instance type and VPC to Fleets)
662
+
587
663
  ## Logs
588
664
 
589
665
  CodeBuild lets you specify an S3 Bucket, CloudWatch Log Group or both to receive logs from your projects.
@@ -1160,6 +1236,7 @@ from ..aws_ec2 import (
1160
1236
  IConnectable as _IConnectable_10015a05,
1161
1237
  ISecurityGroup as _ISecurityGroup_acf8a799,
1162
1238
  IVpc as _IVpc_f30d5663,
1239
+ InstanceType as _InstanceType_f64915b9,
1163
1240
  SubnetSelection as _SubnetSelection_e57d76df,
1164
1241
  )
1165
1242
  from ..aws_ecr import IRepository as _IRepository_e6004aa6
@@ -4295,6 +4372,7 @@ class CommonProjectProps:
4295
4372
  jsii_struct_bases=[],
4296
4373
  name_mapping={
4297
4374
  "disk": "disk",
4375
+ "instance_type": "instanceType",
4298
4376
  "machine_type": "machineType",
4299
4377
  "memory": "memory",
4300
4378
  "v_cpu": "vCpu",
@@ -4305,23 +4383,18 @@ class ComputeConfiguration:
4305
4383
  self,
4306
4384
  *,
4307
4385
  disk: typing.Optional[_Size_7b441c34] = None,
4386
+ instance_type: typing.Optional[_InstanceType_f64915b9] = None,
4308
4387
  machine_type: typing.Optional["MachineType"] = None,
4309
4388
  memory: typing.Optional[_Size_7b441c34] = None,
4310
4389
  v_cpu: typing.Optional[jsii.Number] = None,
4311
4390
  ) -> None:
4312
4391
  '''The compute configuration for the fleet.
4313
4392
 
4314
- Despite what the CloudFormation schema says, the numeric properties (disk, memory, vCpu) are not optional.
4315
- An ``undefined`` value will cause the CloudFormation deployment to fail, e.g.
4316
- .. epigraph::
4317
-
4318
- Cannot invoke "java.lang.Integer.intValue()" because the return value of "software.amazon.codebuild.fleet.ComputeConfiguration.getMemory()" is null
4319
- Therefore, these properties default value is set to 0.
4320
-
4321
- :param disk: The amount of disk space of the instance type included in your fleet. Default: - No requirement, the actual value will be based on the other selected configuration properties
4322
- :param machine_type: The machine type of the instance type included in your fleet. Default: - No requirement, the actual value will be based on the other selected configuration properties
4323
- :param memory: The amount of memory of the instance type included in your fleet. Default: - No requirement, the actual value will be based on the other selected configuration properties
4324
- :param v_cpu: The number of vCPUs of the instance type included in your fleet. Default: - No requirement, the actual value will be based on the other selected configuration properties
4393
+ :param disk: When using ATTRIBUTE_BASED, the amount of disk space of the instance type included in your fleet. When using CUSTOM_INSTANCE_TYPE, the additional amount of disk space to provision over the 64GB included by default. Default: - No requirement, the actual value will be based on the other selected configuration properties
4394
+ :param instance_type: When using CUSTOM_INSTANCE_TYPE, the EC2 instance type to use for fleet instances. Not all instance types are supported by CodeBuild. If you use a disallowed type, the CloudFormation deployment will fail. Default: none
4395
+ :param machine_type: When using ATTRIBUTE_BASED, the machine type of the instance type included in your fleet. Default: - No requirement, the actual value will be based on the other selected configuration properties
4396
+ :param memory: When using ATTRIBUTE_BASED, the amount of memory of the instance type included in your fleet. Default: - No requirement, the actual value will be based on the other selected configuration properties
4397
+ :param v_cpu: When using ATTRIBUTE_BASED, the number of vCPUs of the instance type included in your fleet. Default: - No requirement, the actual value will be based on the other selected configuration properties
4325
4398
 
4326
4399
  :exampleMetadata: infused
4327
4400
 
@@ -4345,12 +4418,15 @@ class ComputeConfiguration:
4345
4418
  if __debug__:
4346
4419
  type_hints = typing.get_type_hints(_typecheckingstub__b104977b55c72c0577553444ac08838cdefde5acef91d6c00ad996d1c464b61b)
4347
4420
  check_type(argname="argument disk", value=disk, expected_type=type_hints["disk"])
4421
+ check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
4348
4422
  check_type(argname="argument machine_type", value=machine_type, expected_type=type_hints["machine_type"])
4349
4423
  check_type(argname="argument memory", value=memory, expected_type=type_hints["memory"])
4350
4424
  check_type(argname="argument v_cpu", value=v_cpu, expected_type=type_hints["v_cpu"])
4351
4425
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4352
4426
  if disk is not None:
4353
4427
  self._values["disk"] = disk
4428
+ if instance_type is not None:
4429
+ self._values["instance_type"] = instance_type
4354
4430
  if machine_type is not None:
4355
4431
  self._values["machine_type"] = machine_type
4356
4432
  if memory is not None:
@@ -4360,16 +4436,34 @@ class ComputeConfiguration:
4360
4436
 
4361
4437
  @builtins.property
4362
4438
  def disk(self) -> typing.Optional[_Size_7b441c34]:
4363
- '''The amount of disk space of the instance type included in your fleet.
4439
+ '''When using ATTRIBUTE_BASED, the amount of disk space of the instance type included in your fleet.
4440
+
4441
+ When using CUSTOM_INSTANCE_TYPE,
4442
+ the additional amount of disk space to provision over the 64GB included by
4443
+ default.
4364
4444
 
4365
4445
  :default: - No requirement, the actual value will be based on the other selected configuration properties
4366
4446
  '''
4367
4447
  result = self._values.get("disk")
4368
4448
  return typing.cast(typing.Optional[_Size_7b441c34], result)
4369
4449
 
4450
+ @builtins.property
4451
+ def instance_type(self) -> typing.Optional[_InstanceType_f64915b9]:
4452
+ '''When using CUSTOM_INSTANCE_TYPE, the EC2 instance type to use for fleet instances.
4453
+
4454
+ Not all instance types are supported by CodeBuild. If you use a disallowed type, the
4455
+ CloudFormation deployment will fail.
4456
+
4457
+ :default: none
4458
+
4459
+ :see: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types
4460
+ '''
4461
+ result = self._values.get("instance_type")
4462
+ return typing.cast(typing.Optional[_InstanceType_f64915b9], result)
4463
+
4370
4464
  @builtins.property
4371
4465
  def machine_type(self) -> typing.Optional["MachineType"]:
4372
- '''The machine type of the instance type included in your fleet.
4466
+ '''When using ATTRIBUTE_BASED, the machine type of the instance type included in your fleet.
4373
4467
 
4374
4468
  :default: - No requirement, the actual value will be based on the other selected configuration properties
4375
4469
  '''
@@ -4378,7 +4472,7 @@ class ComputeConfiguration:
4378
4472
 
4379
4473
  @builtins.property
4380
4474
  def memory(self) -> typing.Optional[_Size_7b441c34]:
4381
- '''The amount of memory of the instance type included in your fleet.
4475
+ '''When using ATTRIBUTE_BASED, the amount of memory of the instance type included in your fleet.
4382
4476
 
4383
4477
  :default: - No requirement, the actual value will be based on the other selected configuration properties
4384
4478
  '''
@@ -4387,7 +4481,7 @@ class ComputeConfiguration:
4387
4481
 
4388
4482
  @builtins.property
4389
4483
  def v_cpu(self) -> typing.Optional[jsii.Number]:
4390
- '''The number of vCPUs of the instance type included in your fleet.
4484
+ '''When using ATTRIBUTE_BASED, the number of vCPUs of the instance type included in your fleet.
4391
4485
 
4392
4486
  :default: - No requirement, the actual value will be based on the other selected configuration properties
4393
4487
  '''
@@ -4480,6 +4574,7 @@ class ComputeType(enum.Enum):
4480
4574
  LAMBDA_8GB = "LAMBDA_8GB"
4481
4575
  LAMBDA_10GB = "LAMBDA_10GB"
4482
4576
  ATTRIBUTE_BASED = "ATTRIBUTE_BASED"
4577
+ CUSTOM_INSTANCE_TYPE = "CUSTOM_INSTANCE_TYPE"
4483
4578
 
4484
4579
 
4485
4580
  @jsii.data_type(
@@ -4842,16 +4937,18 @@ class EnvironmentType(enum.Enum):
4842
4937
 
4843
4938
  Example::
4844
4939
 
4845
- fleet = codebuild.Fleet(self, "Fleet",
4846
- compute_type=codebuild.FleetComputeType.MEDIUM,
4847
- environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
4848
- base_capacity=1
4849
- )
4940
+ from aws_cdk import Size
4850
4941
 
4851
- codebuild.Project(self, "Project",
4852
- environment=codebuild.BuildEnvironment(
4853
- fleet=fleet,
4854
- build_image=codebuild.LinuxBuildImage.STANDARD_7_0
4942
+
4943
+ fleet = codebuild.Fleet(self, "MyFleet",
4944
+ base_capacity=1,
4945
+ compute_type=codebuild.FleetComputeType.CUSTOM_INSTANCE_TYPE,
4946
+ environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
4947
+ compute_configuration=codebuild.ComputeConfiguration(
4948
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM),
4949
+ # By default, 64 GiB of disk space is included. Any value optionally
4950
+ # specified here is _incremental_ on top of the included disk space.
4951
+ disk=Size.gibibytes(10)
4855
4952
  )
4856
4953
  )
4857
4954
  '''
@@ -5311,7 +5408,7 @@ class FilterGroup(
5311
5408
 
5312
5409
  @jsii.enum(jsii_type="aws-cdk-lib.aws_codebuild.FleetComputeType")
5313
5410
  class FleetComputeType(enum.Enum):
5314
- '''Fleet build machine compute type. Subset of Fleet compatible {@link ComputeType} values.
5411
+ '''Fleet build machine compute type. Subset of Fleet compatible ComputeType values.
5315
5412
 
5316
5413
  The allocated memory, vCPU count and disk space of the build machine for a
5317
5414
  given compute type are dependent on the environment type.
@@ -5322,16 +5419,18 @@ class FleetComputeType(enum.Enum):
5322
5419
 
5323
5420
  Example::
5324
5421
 
5325
- fleet = codebuild.Fleet(self, "Fleet",
5326
- compute_type=codebuild.FleetComputeType.MEDIUM,
5327
- environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
5328
- base_capacity=1
5329
- )
5422
+ from aws_cdk import Size
5330
5423
 
5331
- codebuild.Project(self, "Project",
5332
- environment=codebuild.BuildEnvironment(
5333
- fleet=fleet,
5334
- build_image=codebuild.LinuxBuildImage.STANDARD_7_0
5424
+
5425
+ fleet = codebuild.Fleet(self, "MyFleet",
5426
+ base_capacity=1,
5427
+ compute_type=codebuild.FleetComputeType.CUSTOM_INSTANCE_TYPE,
5428
+ environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
5429
+ compute_configuration=codebuild.ComputeConfiguration(
5430
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM),
5431
+ # By default, 64 GiB of disk space is included. Any value optionally
5432
+ # specified here is _incremental_ on top of the included disk space.
5433
+ disk=Size.gibibytes(10)
5335
5434
  )
5336
5435
  )
5337
5436
  '''
@@ -5339,32 +5438,32 @@ class FleetComputeType(enum.Enum):
5339
5438
  SMALL = "SMALL"
5340
5439
  '''Small compute type.
5341
5440
 
5342
- May not be available for all environment types, see
5343
- {@link https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types docs}
5344
- for more information.
5441
+ May not be available for all environment types.
5442
+
5443
+ :see: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types
5345
5444
  '''
5346
5445
  MEDIUM = "MEDIUM"
5347
5446
  '''Medium compute type.
5348
5447
 
5349
- May not be available for all environment types, see
5350
- {@link https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types docs}
5351
- for more information.
5448
+ May not be available for all environment types.
5449
+
5450
+ :see: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types
5352
5451
  '''
5353
5452
  LARGE = "LARGE"
5354
5453
  '''Large compute type.'''
5355
5454
  X_LARGE = "X_LARGE"
5356
5455
  '''Extra Large compute type.
5357
5456
 
5358
- May not be available for all environment types, see
5359
- {@link https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types docs}
5360
- for more information.
5457
+ May not be available for all environment types.
5458
+
5459
+ :see: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types
5361
5460
  '''
5362
5461
  X2_LARGE = "X2_LARGE"
5363
5462
  '''Extra, Extra Large compute type.
5364
5463
 
5365
- May not be available for all environment types, see
5366
- {@link https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types docs}
5367
- for more information.
5464
+ May not be available for all environment types.
5465
+
5466
+ :see: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types
5368
5467
  '''
5369
5468
  ATTRIBUTE_BASED = "ATTRIBUTE_BASED"
5370
5469
  '''Specify the amount of vCPUs, memory, disk space, and the type of machine.
@@ -5373,6 +5472,36 @@ class FleetComputeType(enum.Enum):
5373
5472
 
5374
5473
  :see: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.types
5375
5474
  '''
5475
+ CUSTOM_INSTANCE_TYPE = "CUSTOM_INSTANCE_TYPE"
5476
+ '''Specify a specific EC2 instance type to use for compute.
5477
+
5478
+ You must set ``instanceType`` on ``computeConfiguration``, and optionally set a
5479
+ ``disk`` size if the provided 64GB is insufficient.
5480
+
5481
+ :see: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types
5482
+ '''
5483
+
5484
+
5485
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_codebuild.FleetOverflowBehavior")
5486
+ class FleetOverflowBehavior(enum.Enum):
5487
+ '''The compute fleet overflow behavior.
5488
+
5489
+ :exampleMetadata: infused
5490
+
5491
+ Example::
5492
+
5493
+ fleet = codebuild.Fleet(self, "Fleet",
5494
+ compute_type=codebuild.FleetComputeType.MEDIUM,
5495
+ environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
5496
+ base_capacity=1,
5497
+ overflow_behavior=codebuild.FleetOverflowBehavior.ON_DEMAND
5498
+ )
5499
+ '''
5500
+
5501
+ QUEUE = "QUEUE"
5502
+ '''Overflow builds wait for existing fleet instances to become available.'''
5503
+ ON_DEMAND = "ON_DEMAND"
5504
+ '''Overflow builds run on CodeBuild on-demand instances.'''
5376
5505
 
5377
5506
 
5378
5507
  @jsii.data_type(
@@ -5384,6 +5513,11 @@ class FleetComputeType(enum.Enum):
5384
5513
  "environment_type": "environmentType",
5385
5514
  "compute_configuration": "computeConfiguration",
5386
5515
  "fleet_name": "fleetName",
5516
+ "overflow_behavior": "overflowBehavior",
5517
+ "role": "role",
5518
+ "security_groups": "securityGroups",
5519
+ "subnet_selection": "subnetSelection",
5520
+ "vpc": "vpc",
5387
5521
  },
5388
5522
  )
5389
5523
  class FleetProps:
@@ -5395,34 +5529,48 @@ class FleetProps:
5395
5529
  environment_type: EnvironmentType,
5396
5530
  compute_configuration: typing.Optional[typing.Union[ComputeConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
5397
5531
  fleet_name: typing.Optional[builtins.str] = None,
5532
+ overflow_behavior: typing.Optional[FleetOverflowBehavior] = None,
5533
+ role: typing.Optional[_IRole_235f5d8e] = None,
5534
+ security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
5535
+ subnet_selection: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
5536
+ vpc: typing.Optional[_IVpc_f30d5663] = None,
5398
5537
  ) -> None:
5399
- '''Construction properties of a CodeBuild {@link Fleet}.
5538
+ '''Construction properties of a CodeBuild Fleet.
5400
5539
 
5401
5540
  :param base_capacity: The number of machines allocated to the compute fleet. Defines the number of builds that can run in parallel. Minimum value of 1.
5402
5541
  :param compute_type: The instance type of the compute fleet.
5403
5542
  :param environment_type: The build environment (operating system/architecture/accelerator) type made available to projects using this fleet.
5404
- :param compute_configuration: The compute configuration of the compute fleet. This is only required if ``computeType`` is set to ATTRIBUTE_BASED. Default: - do not specify compute configuration
5543
+ :param compute_configuration: The compute configuration of the compute fleet. This is only permitted if ``computeType`` is set to ATTRIBUTE_BASED or CUSTOM_INSTANCE_TYPE. In such cases, this is required. Default: - do not specify compute configuration
5405
5544
  :param fleet_name: The name of the Fleet. Default: - CloudFormation generated name
5545
+ :param overflow_behavior: The compute fleet overflow behavior. For overflow behavior ``QUEUE``, overflow builds need to wait on the existing fleet instances to become available. For overflow behavior ``ON_DEMAND``, overflow builds run on CodeBuild on-demand. Default: undefined - AWS CodeBuild default behavior is QUEUE
5546
+ :param role: Service Role assumed by Fleet instances. This Role is not used by Project builds running on Fleet instances; Project builds assume the ``role`` on Project instead. Default: - A role will be created if any permissions are granted
5547
+ :param security_groups: What security groups to associate with the fleet's network interfaces. If none are provided, one will be created automatically. Only used if ``vpc`` is supplied. Default: - A security group will be automatically created.
5548
+ :param subnet_selection: Where to place the network interfaces within the VPC. To access AWS services, your fleet needs to be in one of the following types of subnets: 1. Subnets with access to the internet (of type PRIVATE_WITH_EGRESS). 2. Private subnets unconnected to the internet, but with `VPC endpoints <https://docs.aws.amazon.com/codebuild/latest/userguide/use-vpc-endpoints-with-codebuild.html>`_ for the necessary services. If you don't specify a subnet selection, the default behavior is to use PRIVATE_WITH_EGRESS subnets first if they exist, then PRIVATE_WITHOUT_EGRESS, and finally PUBLIC subnets. If your VPC doesn't have PRIVATE_WITH_EGRESS subnets but you need AWS service access, add VPC Endpoints to your private subnets. Default: - private subnets if available else public subnets
5549
+ :param vpc: VPC network to place fleet instance network interfaces. Specify this if the fleet needs to access resources in a VPC. Default: - No VPC is specified.
5406
5550
 
5407
5551
  :exampleMetadata: infused
5408
5552
 
5409
5553
  Example::
5410
5554
 
5411
- fleet = codebuild.Fleet(self, "Fleet",
5412
- compute_type=codebuild.FleetComputeType.MEDIUM,
5413
- environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
5414
- base_capacity=1
5415
- )
5555
+ from aws_cdk import Size
5416
5556
 
5417
- codebuild.Project(self, "Project",
5418
- environment=codebuild.BuildEnvironment(
5419
- fleet=fleet,
5420
- build_image=codebuild.LinuxBuildImage.STANDARD_7_0
5557
+
5558
+ fleet = codebuild.Fleet(self, "MyFleet",
5559
+ base_capacity=1,
5560
+ compute_type=codebuild.FleetComputeType.CUSTOM_INSTANCE_TYPE,
5561
+ environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
5562
+ compute_configuration=codebuild.ComputeConfiguration(
5563
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM),
5564
+ # By default, 64 GiB of disk space is included. Any value optionally
5565
+ # specified here is _incremental_ on top of the included disk space.
5566
+ disk=Size.gibibytes(10)
5421
5567
  )
5422
5568
  )
5423
5569
  '''
5424
5570
  if isinstance(compute_configuration, dict):
5425
5571
  compute_configuration = ComputeConfiguration(**compute_configuration)
5572
+ if isinstance(subnet_selection, dict):
5573
+ subnet_selection = _SubnetSelection_e57d76df(**subnet_selection)
5426
5574
  if __debug__:
5427
5575
  type_hints = typing.get_type_hints(_typecheckingstub__e7911aefc20674030e6eb6a13611d08046f9412fc45f97ff43a4ecf7591a2d5d)
5428
5576
  check_type(argname="argument base_capacity", value=base_capacity, expected_type=type_hints["base_capacity"])
@@ -5430,6 +5578,11 @@ class FleetProps:
5430
5578
  check_type(argname="argument environment_type", value=environment_type, expected_type=type_hints["environment_type"])
5431
5579
  check_type(argname="argument compute_configuration", value=compute_configuration, expected_type=type_hints["compute_configuration"])
5432
5580
  check_type(argname="argument fleet_name", value=fleet_name, expected_type=type_hints["fleet_name"])
5581
+ check_type(argname="argument overflow_behavior", value=overflow_behavior, expected_type=type_hints["overflow_behavior"])
5582
+ check_type(argname="argument role", value=role, expected_type=type_hints["role"])
5583
+ check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
5584
+ check_type(argname="argument subnet_selection", value=subnet_selection, expected_type=type_hints["subnet_selection"])
5585
+ check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
5433
5586
  self._values: typing.Dict[builtins.str, typing.Any] = {
5434
5587
  "base_capacity": base_capacity,
5435
5588
  "compute_type": compute_type,
@@ -5439,6 +5592,16 @@ class FleetProps:
5439
5592
  self._values["compute_configuration"] = compute_configuration
5440
5593
  if fleet_name is not None:
5441
5594
  self._values["fleet_name"] = fleet_name
5595
+ if overflow_behavior is not None:
5596
+ self._values["overflow_behavior"] = overflow_behavior
5597
+ if role is not None:
5598
+ self._values["role"] = role
5599
+ if security_groups is not None:
5600
+ self._values["security_groups"] = security_groups
5601
+ if subnet_selection is not None:
5602
+ self._values["subnet_selection"] = subnet_selection
5603
+ if vpc is not None:
5604
+ self._values["vpc"] = vpc
5442
5605
 
5443
5606
  @builtins.property
5444
5607
  def base_capacity(self) -> jsii.Number:
@@ -5471,7 +5634,8 @@ class FleetProps:
5471
5634
  def compute_configuration(self) -> typing.Optional[ComputeConfiguration]:
5472
5635
  '''The compute configuration of the compute fleet.
5473
5636
 
5474
- This is only required if ``computeType`` is set to ATTRIBUTE_BASED.
5637
+ This is only permitted if ``computeType`` is set to ATTRIBUTE_BASED or
5638
+ CUSTOM_INSTANCE_TYPE. In such cases, this is required.
5475
5639
 
5476
5640
  :default: - do not specify compute configuration
5477
5641
 
@@ -5489,6 +5653,73 @@ class FleetProps:
5489
5653
  result = self._values.get("fleet_name")
5490
5654
  return typing.cast(typing.Optional[builtins.str], result)
5491
5655
 
5656
+ @builtins.property
5657
+ def overflow_behavior(self) -> typing.Optional[FleetOverflowBehavior]:
5658
+ '''The compute fleet overflow behavior.
5659
+
5660
+ For overflow behavior ``QUEUE``, overflow builds need to wait on the existing fleet instances to become available.
5661
+
5662
+ For overflow behavior ``ON_DEMAND``, overflow builds run on CodeBuild on-demand.
5663
+
5664
+ :default: undefined - AWS CodeBuild default behavior is QUEUE
5665
+ '''
5666
+ result = self._values.get("overflow_behavior")
5667
+ return typing.cast(typing.Optional[FleetOverflowBehavior], result)
5668
+
5669
+ @builtins.property
5670
+ def role(self) -> typing.Optional[_IRole_235f5d8e]:
5671
+ '''Service Role assumed by Fleet instances.
5672
+
5673
+ This Role is not used by Project builds running on Fleet instances; Project
5674
+ builds assume the ``role`` on Project instead.
5675
+
5676
+ :default: - A role will be created if any permissions are granted
5677
+ '''
5678
+ result = self._values.get("role")
5679
+ return typing.cast(typing.Optional[_IRole_235f5d8e], result)
5680
+
5681
+ @builtins.property
5682
+ def security_groups(self) -> typing.Optional[typing.List[_ISecurityGroup_acf8a799]]:
5683
+ '''What security groups to associate with the fleet's network interfaces. If none are provided, one will be created automatically.
5684
+
5685
+ Only used if ``vpc`` is supplied.
5686
+
5687
+ :default: - A security group will be automatically created.
5688
+ '''
5689
+ result = self._values.get("security_groups")
5690
+ return typing.cast(typing.Optional[typing.List[_ISecurityGroup_acf8a799]], result)
5691
+
5692
+ @builtins.property
5693
+ def subnet_selection(self) -> typing.Optional[_SubnetSelection_e57d76df]:
5694
+ '''Where to place the network interfaces within the VPC.
5695
+
5696
+ To access AWS services, your fleet needs to be in one of the following types of subnets:
5697
+
5698
+ 1. Subnets with access to the internet (of type PRIVATE_WITH_EGRESS).
5699
+ 2. Private subnets unconnected to the internet, but with `VPC endpoints <https://docs.aws.amazon.com/codebuild/latest/userguide/use-vpc-endpoints-with-codebuild.html>`_ for the necessary services.
5700
+
5701
+ If you don't specify a subnet selection, the default behavior is to use PRIVATE_WITH_EGRESS subnets first if they exist,
5702
+ then PRIVATE_WITHOUT_EGRESS, and finally PUBLIC subnets. If your VPC doesn't have PRIVATE_WITH_EGRESS subnets but you need
5703
+ AWS service access, add VPC Endpoints to your private subnets.
5704
+
5705
+ :default: - private subnets if available else public subnets
5706
+
5707
+ :see: https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html
5708
+ '''
5709
+ result = self._values.get("subnet_selection")
5710
+ return typing.cast(typing.Optional[_SubnetSelection_e57d76df], result)
5711
+
5712
+ @builtins.property
5713
+ def vpc(self) -> typing.Optional[_IVpc_f30d5663]:
5714
+ '''VPC network to place fleet instance network interfaces.
5715
+
5716
+ Specify this if the fleet needs to access resources in a VPC.
5717
+
5718
+ :default: - No VPC is specified.
5719
+ '''
5720
+ result = self._values.get("vpc")
5721
+ return typing.cast(typing.Optional[_IVpc_f30d5663], result)
5722
+
5492
5723
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
5493
5724
  return isinstance(rhs, self.__class__) and rhs._values == self._values
5494
5725
 
@@ -6076,8 +6307,13 @@ typing.cast(typing.Any, IFileSystemLocation).__jsii_proxy_class__ = lambda : _IF
6076
6307
 
6077
6308
 
6078
6309
  @jsii.interface(jsii_type="aws-cdk-lib.aws_codebuild.IFleet")
6079
- class IFleet(_IResource_c80c4260, typing_extensions.Protocol):
6080
- '''Represents a {@link Fleet} for a reserved capacity CodeBuild project.'''
6310
+ class IFleet(
6311
+ _IResource_c80c4260,
6312
+ _IGrantable_71c4f5de,
6313
+ _IConnectable_10015a05,
6314
+ typing_extensions.Protocol,
6315
+ ):
6316
+ '''Represents a Fleet for a reserved capacity CodeBuild project.'''
6081
6317
 
6082
6318
  @builtins.property
6083
6319
  @jsii.member(jsii_name="computeType")
@@ -6115,8 +6351,10 @@ class IFleet(_IResource_c80c4260, typing_extensions.Protocol):
6115
6351
 
6116
6352
  class _IFleetProxy(
6117
6353
  jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
6354
+ jsii.proxy_for(_IGrantable_71c4f5de), # type: ignore[misc]
6355
+ jsii.proxy_for(_IConnectable_10015a05), # type: ignore[misc]
6118
6356
  ):
6119
- '''Represents a {@link Fleet} for a reserved capacity CodeBuild project.'''
6357
+ '''Represents a Fleet for a reserved capacity CodeBuild project.'''
6120
6358
 
6121
6359
  __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_codebuild.IFleet"
6122
6360
 
@@ -18585,6 +18823,11 @@ class Fleet(
18585
18823
  environment_type: EnvironmentType,
18586
18824
  compute_configuration: typing.Optional[typing.Union[ComputeConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
18587
18825
  fleet_name: typing.Optional[builtins.str] = None,
18826
+ overflow_behavior: typing.Optional[FleetOverflowBehavior] = None,
18827
+ role: typing.Optional[_IRole_235f5d8e] = None,
18828
+ security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
18829
+ subnet_selection: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
18830
+ vpc: typing.Optional[_IVpc_f30d5663] = None,
18588
18831
  ) -> None:
18589
18832
  '''
18590
18833
  :param scope: -
@@ -18592,8 +18835,13 @@ class Fleet(
18592
18835
  :param base_capacity: The number of machines allocated to the compute fleet. Defines the number of builds that can run in parallel. Minimum value of 1.
18593
18836
  :param compute_type: The instance type of the compute fleet.
18594
18837
  :param environment_type: The build environment (operating system/architecture/accelerator) type made available to projects using this fleet.
18595
- :param compute_configuration: The compute configuration of the compute fleet. This is only required if ``computeType`` is set to ATTRIBUTE_BASED. Default: - do not specify compute configuration
18838
+ :param compute_configuration: The compute configuration of the compute fleet. This is only permitted if ``computeType`` is set to ATTRIBUTE_BASED or CUSTOM_INSTANCE_TYPE. In such cases, this is required. Default: - do not specify compute configuration
18596
18839
  :param fleet_name: The name of the Fleet. Default: - CloudFormation generated name
18840
+ :param overflow_behavior: The compute fleet overflow behavior. For overflow behavior ``QUEUE``, overflow builds need to wait on the existing fleet instances to become available. For overflow behavior ``ON_DEMAND``, overflow builds run on CodeBuild on-demand. Default: undefined - AWS CodeBuild default behavior is QUEUE
18841
+ :param role: Service Role assumed by Fleet instances. This Role is not used by Project builds running on Fleet instances; Project builds assume the ``role`` on Project instead. Default: - A role will be created if any permissions are granted
18842
+ :param security_groups: What security groups to associate with the fleet's network interfaces. If none are provided, one will be created automatically. Only used if ``vpc`` is supplied. Default: - A security group will be automatically created.
18843
+ :param subnet_selection: Where to place the network interfaces within the VPC. To access AWS services, your fleet needs to be in one of the following types of subnets: 1. Subnets with access to the internet (of type PRIVATE_WITH_EGRESS). 2. Private subnets unconnected to the internet, but with `VPC endpoints <https://docs.aws.amazon.com/codebuild/latest/userguide/use-vpc-endpoints-with-codebuild.html>`_ for the necessary services. If you don't specify a subnet selection, the default behavior is to use PRIVATE_WITH_EGRESS subnets first if they exist, then PRIVATE_WITHOUT_EGRESS, and finally PUBLIC subnets. If your VPC doesn't have PRIVATE_WITH_EGRESS subnets but you need AWS service access, add VPC Endpoints to your private subnets. Default: - private subnets if available else public subnets
18844
+ :param vpc: VPC network to place fleet instance network interfaces. Specify this if the fleet needs to access resources in a VPC. Default: - No VPC is specified.
18597
18845
  '''
18598
18846
  if __debug__:
18599
18847
  type_hints = typing.get_type_hints(_typecheckingstub__68e9f035c12fa2c35bc62bc8d306e3651814bea9f53875aeea43b85f6612b957)
@@ -18605,6 +18853,11 @@ class Fleet(
18605
18853
  environment_type=environment_type,
18606
18854
  compute_configuration=compute_configuration,
18607
18855
  fleet_name=fleet_name,
18856
+ overflow_behavior=overflow_behavior,
18857
+ role=role,
18858
+ security_groups=security_groups,
18859
+ subnet_selection=subnet_selection,
18860
+ vpc=vpc,
18608
18861
  )
18609
18862
 
18610
18863
  jsii.create(self.__class__, self, [scope, id, props])
@@ -18645,6 +18898,12 @@ class Fleet(
18645
18898
  '''
18646
18899
  return typing.cast(FleetComputeType, jsii.get(self, "computeType"))
18647
18900
 
18901
+ @builtins.property
18902
+ @jsii.member(jsii_name="connections")
18903
+ def connections(self) -> _Connections_0f31fce8:
18904
+ '''The network connections associated with this Fleet's security group(s) in the configured VPC.'''
18905
+ return typing.cast(_Connections_0f31fce8, jsii.get(self, "connections"))
18906
+
18648
18907
  @builtins.property
18649
18908
  @jsii.member(jsii_name="environmentType")
18650
18909
  def environment_type(self) -> EnvironmentType:
@@ -18663,6 +18922,12 @@ class Fleet(
18663
18922
  '''The name of the fleet.'''
18664
18923
  return typing.cast(builtins.str, jsii.get(self, "fleetName"))
18665
18924
 
18925
+ @builtins.property
18926
+ @jsii.member(jsii_name="grantPrincipal")
18927
+ def grant_principal(self) -> _IPrincipal_539bb2fd:
18928
+ '''The grant principal for this Fleet's service role.'''
18929
+ return typing.cast(_IPrincipal_539bb2fd, jsii.get(self, "grantPrincipal"))
18930
+
18666
18931
 
18667
18932
  @jsii.data_type(
18668
18933
  jsii_type="aws-cdk-lib.aws_codebuild.GitHubEnterpriseSourceProps",
@@ -19787,6 +20052,7 @@ __all__ = [
19787
20052
  "FilterGroup",
19788
20053
  "Fleet",
19789
20054
  "FleetComputeType",
20055
+ "FleetOverflowBehavior",
19790
20056
  "FleetProps",
19791
20057
  "FleetReference",
19792
20058
  "GitHubEnterpriseSourceCredentials",
@@ -20085,6 +20351,7 @@ def _typecheckingstub__45bdedf6c9b38dcb0797768fa0fdec382e282ebd8679405f7dd9df6cb
20085
20351
  def _typecheckingstub__b104977b55c72c0577553444ac08838cdefde5acef91d6c00ad996d1c464b61b(
20086
20352
  *,
20087
20353
  disk: typing.Optional[_Size_7b441c34] = None,
20354
+ instance_type: typing.Optional[_InstanceType_f64915b9] = None,
20088
20355
  machine_type: typing.Optional[MachineType] = None,
20089
20356
  memory: typing.Optional[_Size_7b441c34] = None,
20090
20357
  v_cpu: typing.Optional[jsii.Number] = None,
@@ -20245,6 +20512,11 @@ def _typecheckingstub__e7911aefc20674030e6eb6a13611d08046f9412fc45f97ff43a4ecf75
20245
20512
  environment_type: EnvironmentType,
20246
20513
  compute_configuration: typing.Optional[typing.Union[ComputeConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
20247
20514
  fleet_name: typing.Optional[builtins.str] = None,
20515
+ overflow_behavior: typing.Optional[FleetOverflowBehavior] = None,
20516
+ role: typing.Optional[_IRole_235f5d8e] = None,
20517
+ security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
20518
+ subnet_selection: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
20519
+ vpc: typing.Optional[_IVpc_f30d5663] = None,
20248
20520
  ) -> None:
20249
20521
  """Type checking stubs"""
20250
20522
  pass
@@ -21803,6 +22075,11 @@ def _typecheckingstub__68e9f035c12fa2c35bc62bc8d306e3651814bea9f53875aeea43b85f6
21803
22075
  environment_type: EnvironmentType,
21804
22076
  compute_configuration: typing.Optional[typing.Union[ComputeConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
21805
22077
  fleet_name: typing.Optional[builtins.str] = None,
22078
+ overflow_behavior: typing.Optional[FleetOverflowBehavior] = None,
22079
+ role: typing.Optional[_IRole_235f5d8e] = None,
22080
+ security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
22081
+ subnet_selection: typing.Optional[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]] = None,
22082
+ vpc: typing.Optional[_IVpc_f30d5663] = None,
21806
22083
  ) -> None:
21807
22084
  """Type checking stubs"""
21808
22085
  pass