aws-cdk-lib 2.178.1__py3-none-any.whl → 2.179.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 (34) hide show
  1. aws_cdk/__init__.py +69 -35
  2. aws_cdk/_jsii/__init__.py +1 -2
  3. aws_cdk/_jsii/{aws-cdk-lib@2.178.1.jsii.tgz → aws-cdk-lib@2.179.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigateway/__init__.py +170 -29
  5. aws_cdk/aws_apigatewayv2/__init__.py +151 -32
  6. aws_cdk/aws_apigatewayv2_integrations/__init__.py +348 -0
  7. aws_cdk/aws_applicationautoscaling/__init__.py +8 -8
  8. aws_cdk/aws_appsync/__init__.py +6 -4
  9. aws_cdk/aws_cloudfront/__init__.py +5 -5
  10. aws_cdk/aws_codebuild/__init__.py +216 -0
  11. aws_cdk/aws_codepipeline/__init__.py +89 -28
  12. aws_cdk/aws_codepipeline_actions/__init__.py +526 -62
  13. aws_cdk/aws_cognito/__init__.py +676 -20
  14. aws_cdk/aws_ec2/__init__.py +25 -9
  15. aws_cdk/aws_ecs/__init__.py +8 -8
  16. aws_cdk/aws_eks/__init__.py +555 -179
  17. aws_cdk/aws_elasticloadbalancingv2/__init__.py +99 -0
  18. aws_cdk/aws_events/__init__.py +9 -15
  19. aws_cdk/aws_events_targets/__init__.py +303 -16
  20. aws_cdk/aws_iam/__init__.py +3 -3
  21. aws_cdk/aws_ivs/__init__.py +241 -73
  22. aws_cdk/aws_logs/__init__.py +62 -13
  23. aws_cdk/aws_pinpoint/__init__.py +14 -9
  24. aws_cdk/aws_rds/__init__.py +168 -24
  25. aws_cdk/aws_s3/__init__.py +9 -9
  26. aws_cdk/aws_stepfunctions_tasks/__init__.py +127 -21
  27. aws_cdk/pipelines/__init__.py +2 -2
  28. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/METADATA +1 -2
  29. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/RECORD +33 -34
  30. aws_cdk/lambda_layer_kubectl/__init__.py +0 -107
  31. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/LICENSE +0 -0
  32. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/NOTICE +0 -0
  33. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/WHEEL +0 -0
  34. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/top_level.txt +0 -0
@@ -497,6 +497,29 @@ codebuild.Project(self, "Project",
497
497
  )
498
498
  ```
499
499
 
500
+ ### Attribute-based compute
501
+
502
+ You can use [attribute-based compute](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html#fleets.attribute-compute) for your fleet by setting the `computeType` to `ATTRIBUTE_BASED`.
503
+ This allows you to specify the attributes in `computeConfiguration` such as vCPUs, memory, disk space, and the machineType.
504
+ After specifying some or all of the available attributes, CodeBuild will select the cheapest compute type from available instance types as that at least matches all given criteria.
505
+
506
+ ```python
507
+ from aws_cdk import Size
508
+
509
+
510
+ fleet = codebuild.Fleet(self, "MyFleet",
511
+ base_capacity=1,
512
+ compute_type=codebuild.FleetComputeType.ATTRIBUTE_BASED,
513
+ environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
514
+ compute_configuration=codebuild.ComputeConfiguration(
515
+ v_cpu=2,
516
+ memory=Size.gibibytes(4),
517
+ disk=Size.gibibytes(10),
518
+ machine_type=codebuild.MachineType.GENERAL
519
+ )
520
+ )
521
+ ```
522
+
500
523
  ## Logs
501
524
 
502
525
  CodeBuild lets you specify an S3 Bucket, CloudWatch Log Group or both to receive logs from your projects.
@@ -1049,6 +1072,7 @@ from .. import (
1049
1072
  RemovalPolicy as _RemovalPolicy_9f93c814,
1050
1073
  Resource as _Resource_45bc6135,
1051
1074
  SecretValue as _SecretValue_3dd0ddae,
1075
+ Size as _Size_7b441c34,
1052
1076
  SymlinkFollowMode as _SymlinkFollowMode_047ec1f6,
1053
1077
  TagManager as _TagManager_0a598cb3,
1054
1078
  TreeInspector as _TreeInspector_488e0dd5,
@@ -8799,6 +8823,122 @@ class CommonProjectProps:
8799
8823
  )
8800
8824
 
8801
8825
 
8826
+ @jsii.data_type(
8827
+ jsii_type="aws-cdk-lib.aws_codebuild.ComputeConfiguration",
8828
+ jsii_struct_bases=[],
8829
+ name_mapping={
8830
+ "disk": "disk",
8831
+ "machine_type": "machineType",
8832
+ "memory": "memory",
8833
+ "v_cpu": "vCpu",
8834
+ },
8835
+ )
8836
+ class ComputeConfiguration:
8837
+ def __init__(
8838
+ self,
8839
+ *,
8840
+ disk: typing.Optional[_Size_7b441c34] = None,
8841
+ machine_type: typing.Optional["MachineType"] = None,
8842
+ memory: typing.Optional[_Size_7b441c34] = None,
8843
+ v_cpu: typing.Optional[jsii.Number] = None,
8844
+ ) -> None:
8845
+ '''The compute configuration for the fleet.
8846
+
8847
+ Despite what the CloudFormation schema says, the numeric properties (disk, memory, vCpu) are not optional.
8848
+ An ``undefined`` value will cause the CloudFormation deployment to fail, e.g.
8849
+ .. epigraph::
8850
+
8851
+ Cannot invoke "java.lang.Integer.intValue()" because the return value of "software.amazon.codebuild.fleet.ComputeConfiguration.getMemory()" is null
8852
+ Therefore, these properties default value is set to 0.
8853
+
8854
+ :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
8855
+ :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
8856
+ :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
8857
+ :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
8858
+
8859
+ :exampleMetadata: infused
8860
+
8861
+ Example::
8862
+
8863
+ from aws_cdk import Size
8864
+
8865
+
8866
+ fleet = codebuild.Fleet(self, "MyFleet",
8867
+ base_capacity=1,
8868
+ compute_type=codebuild.FleetComputeType.ATTRIBUTE_BASED,
8869
+ environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
8870
+ compute_configuration=codebuild.ComputeConfiguration(
8871
+ v_cpu=2,
8872
+ memory=Size.gibibytes(4),
8873
+ disk=Size.gibibytes(10),
8874
+ machine_type=codebuild.MachineType.GENERAL
8875
+ )
8876
+ )
8877
+ '''
8878
+ if __debug__:
8879
+ type_hints = typing.get_type_hints(_typecheckingstub__b104977b55c72c0577553444ac08838cdefde5acef91d6c00ad996d1c464b61b)
8880
+ check_type(argname="argument disk", value=disk, expected_type=type_hints["disk"])
8881
+ check_type(argname="argument machine_type", value=machine_type, expected_type=type_hints["machine_type"])
8882
+ check_type(argname="argument memory", value=memory, expected_type=type_hints["memory"])
8883
+ check_type(argname="argument v_cpu", value=v_cpu, expected_type=type_hints["v_cpu"])
8884
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
8885
+ if disk is not None:
8886
+ self._values["disk"] = disk
8887
+ if machine_type is not None:
8888
+ self._values["machine_type"] = machine_type
8889
+ if memory is not None:
8890
+ self._values["memory"] = memory
8891
+ if v_cpu is not None:
8892
+ self._values["v_cpu"] = v_cpu
8893
+
8894
+ @builtins.property
8895
+ def disk(self) -> typing.Optional[_Size_7b441c34]:
8896
+ '''The amount of disk space of the instance type included in your fleet.
8897
+
8898
+ :default: - No requirement, the actual value will be based on the other selected configuration properties
8899
+ '''
8900
+ result = self._values.get("disk")
8901
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
8902
+
8903
+ @builtins.property
8904
+ def machine_type(self) -> typing.Optional["MachineType"]:
8905
+ '''The machine type of the instance type included in your fleet.
8906
+
8907
+ :default: - No requirement, the actual value will be based on the other selected configuration properties
8908
+ '''
8909
+ result = self._values.get("machine_type")
8910
+ return typing.cast(typing.Optional["MachineType"], result)
8911
+
8912
+ @builtins.property
8913
+ def memory(self) -> typing.Optional[_Size_7b441c34]:
8914
+ '''The amount of memory of the instance type included in your fleet.
8915
+
8916
+ :default: - No requirement, the actual value will be based on the other selected configuration properties
8917
+ '''
8918
+ result = self._values.get("memory")
8919
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
8920
+
8921
+ @builtins.property
8922
+ def v_cpu(self) -> typing.Optional[jsii.Number]:
8923
+ '''The number of vCPUs of the instance type included in your fleet.
8924
+
8925
+ :default: - No requirement, the actual value will be based on the other selected configuration properties
8926
+ '''
8927
+ result = self._values.get("v_cpu")
8928
+ return typing.cast(typing.Optional[jsii.Number], result)
8929
+
8930
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
8931
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
8932
+
8933
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
8934
+ return not (rhs == self)
8935
+
8936
+ def __repr__(self) -> str:
8937
+ return "ComputeConfiguration(%s)" % ", ".join(
8938
+ k + "=" + repr(v) for k, v in self._values.items()
8939
+ )
8940
+
8941
+
8802
8942
  @jsii.enum(jsii_type="aws-cdk-lib.aws_codebuild.ComputeType")
8803
8943
  class ComputeType(enum.Enum):
8804
8944
  '''Build machine compute type.
@@ -8868,6 +9008,7 @@ class ComputeType(enum.Enum):
8868
9008
  LAMBDA_4GB = "LAMBDA_4GB"
8869
9009
  LAMBDA_8GB = "LAMBDA_8GB"
8870
9010
  LAMBDA_10GB = "LAMBDA_10GB"
9011
+ ATTRIBUTE_BASED = "ATTRIBUTE_BASED"
8871
9012
 
8872
9013
 
8873
9014
  @jsii.data_type(
@@ -9559,6 +9700,13 @@ class FleetComputeType(enum.Enum):
9559
9700
  {@link https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types docs}
9560
9701
  for more information.
9561
9702
  '''
9703
+ ATTRIBUTE_BASED = "ATTRIBUTE_BASED"
9704
+ '''Specify the amount of vCPUs, memory, disk space, and the type of machine.
9705
+
9706
+ AWS CodeBuild will select the cheapest instance that satisfies your specified attributes from ``computeConfiguration``.
9707
+
9708
+ :see: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.types
9709
+ '''
9562
9710
 
9563
9711
 
9564
9712
  @jsii.data_type(
@@ -9568,6 +9716,7 @@ class FleetComputeType(enum.Enum):
9568
9716
  "base_capacity": "baseCapacity",
9569
9717
  "compute_type": "computeType",
9570
9718
  "environment_type": "environmentType",
9719
+ "compute_configuration": "computeConfiguration",
9571
9720
  "fleet_name": "fleetName",
9572
9721
  },
9573
9722
  )
@@ -9578,6 +9727,7 @@ class FleetProps:
9578
9727
  base_capacity: jsii.Number,
9579
9728
  compute_type: FleetComputeType,
9580
9729
  environment_type: EnvironmentType,
9730
+ compute_configuration: typing.Optional[typing.Union[ComputeConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
9581
9731
  fleet_name: typing.Optional[builtins.str] = None,
9582
9732
  ) -> None:
9583
9733
  '''Construction properties of a CodeBuild {@link Fleet}.
@@ -9585,6 +9735,7 @@ class FleetProps:
9585
9735
  :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.
9586
9736
  :param compute_type: The instance type of the compute fleet.
9587
9737
  :param environment_type: The build environment (operating system/architecture/accelerator) type made available to projects using this fleet.
9738
+ :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
9588
9739
  :param fleet_name: The name of the Fleet. Default: - CloudFormation generated name
9589
9740
 
9590
9741
  :exampleMetadata: infused
@@ -9604,17 +9755,22 @@ class FleetProps:
9604
9755
  )
9605
9756
  )
9606
9757
  '''
9758
+ if isinstance(compute_configuration, dict):
9759
+ compute_configuration = ComputeConfiguration(**compute_configuration)
9607
9760
  if __debug__:
9608
9761
  type_hints = typing.get_type_hints(_typecheckingstub__e7911aefc20674030e6eb6a13611d08046f9412fc45f97ff43a4ecf7591a2d5d)
9609
9762
  check_type(argname="argument base_capacity", value=base_capacity, expected_type=type_hints["base_capacity"])
9610
9763
  check_type(argname="argument compute_type", value=compute_type, expected_type=type_hints["compute_type"])
9611
9764
  check_type(argname="argument environment_type", value=environment_type, expected_type=type_hints["environment_type"])
9765
+ check_type(argname="argument compute_configuration", value=compute_configuration, expected_type=type_hints["compute_configuration"])
9612
9766
  check_type(argname="argument fleet_name", value=fleet_name, expected_type=type_hints["fleet_name"])
9613
9767
  self._values: typing.Dict[builtins.str, typing.Any] = {
9614
9768
  "base_capacity": base_capacity,
9615
9769
  "compute_type": compute_type,
9616
9770
  "environment_type": environment_type,
9617
9771
  }
9772
+ if compute_configuration is not None:
9773
+ self._values["compute_configuration"] = compute_configuration
9618
9774
  if fleet_name is not None:
9619
9775
  self._values["fleet_name"] = fleet_name
9620
9776
 
@@ -9645,6 +9801,19 @@ class FleetProps:
9645
9801
  assert result is not None, "Required property 'environment_type' is missing"
9646
9802
  return typing.cast(EnvironmentType, result)
9647
9803
 
9804
+ @builtins.property
9805
+ def compute_configuration(self) -> typing.Optional[ComputeConfiguration]:
9806
+ '''The compute configuration of the compute fleet.
9807
+
9808
+ This is only required if ``computeType`` is set to ATTRIBUTE_BASED.
9809
+
9810
+ :default: - do not specify compute configuration
9811
+
9812
+ :see: https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.types
9813
+ '''
9814
+ result = self._values.get("compute_configuration")
9815
+ return typing.cast(typing.Optional[ComputeConfiguration], result)
9816
+
9648
9817
  @builtins.property
9649
9818
  def fleet_name(self) -> typing.Optional[builtins.str]:
9650
9819
  '''The name of the Fleet.
@@ -12862,6 +13031,36 @@ class MacBuildImage(
12862
13031
  return typing.cast(typing.Optional[_ISecret_6e020e6a], jsii.get(self, "secretsManagerCredentials"))
12863
13032
 
12864
13033
 
13034
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_codebuild.MachineType")
13035
+ class MachineType(enum.Enum):
13036
+ '''The compute type of the fleet.
13037
+
13038
+ :exampleMetadata: infused
13039
+
13040
+ Example::
13041
+
13042
+ from aws_cdk import Size
13043
+
13044
+
13045
+ fleet = codebuild.Fleet(self, "MyFleet",
13046
+ base_capacity=1,
13047
+ compute_type=codebuild.FleetComputeType.ATTRIBUTE_BASED,
13048
+ environment_type=codebuild.EnvironmentType.LINUX_CONTAINER,
13049
+ compute_configuration=codebuild.ComputeConfiguration(
13050
+ v_cpu=2,
13051
+ memory=Size.gibibytes(4),
13052
+ disk=Size.gibibytes(10),
13053
+ machine_type=codebuild.MachineType.GENERAL
13054
+ )
13055
+ )
13056
+ '''
13057
+
13058
+ GENERAL = "GENERAL"
13059
+ '''General purpose compute type.'''
13060
+ NVME = "NVME"
13061
+ '''Non-Volatile Memory Express (NVMe) storage optimized compute type.'''
13062
+
13063
+
12865
13064
  class PhaseChangeEvent(
12866
13065
  metaclass=jsii.JSIIMeta,
12867
13066
  jsii_type="aws-cdk-lib.aws_codebuild.PhaseChangeEvent",
@@ -17049,6 +17248,7 @@ class Fleet(
17049
17248
  base_capacity: jsii.Number,
17050
17249
  compute_type: FleetComputeType,
17051
17250
  environment_type: EnvironmentType,
17251
+ compute_configuration: typing.Optional[typing.Union[ComputeConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
17052
17252
  fleet_name: typing.Optional[builtins.str] = None,
17053
17253
  ) -> None:
17054
17254
  '''
@@ -17057,6 +17257,7 @@ class Fleet(
17057
17257
  :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.
17058
17258
  :param compute_type: The instance type of the compute fleet.
17059
17259
  :param environment_type: The build environment (operating system/architecture/accelerator) type made available to projects using this fleet.
17260
+ :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
17060
17261
  :param fleet_name: The name of the Fleet. Default: - CloudFormation generated name
17061
17262
  '''
17062
17263
  if __debug__:
@@ -17067,6 +17268,7 @@ class Fleet(
17067
17268
  base_capacity=base_capacity,
17068
17269
  compute_type=compute_type,
17069
17270
  environment_type=environment_type,
17271
+ compute_configuration=compute_configuration,
17070
17272
  fleet_name=fleet_name,
17071
17273
  )
17072
17274
 
@@ -18222,6 +18424,7 @@ __all__ = [
18222
18424
  "CloudWatchLoggingOptions",
18223
18425
  "CodeCommitSourceProps",
18224
18426
  "CommonProjectProps",
18427
+ "ComputeConfiguration",
18225
18428
  "ComputeType",
18226
18429
  "DockerImageOptions",
18227
18430
  "EfsFileSystemLocationProps",
@@ -18256,6 +18459,7 @@ __all__ = [
18256
18459
  "LocalCacheMode",
18257
18460
  "LoggingOptions",
18258
18461
  "MacBuildImage",
18462
+ "MachineType",
18259
18463
  "PhaseChangeEvent",
18260
18464
  "PipelineProject",
18261
18465
  "PipelineProjectProps",
@@ -19191,6 +19395,16 @@ def _typecheckingstub__45bdedf6c9b38dcb0797768fa0fdec382e282ebd8679405f7dd9df6cb
19191
19395
  """Type checking stubs"""
19192
19396
  pass
19193
19397
 
19398
+ def _typecheckingstub__b104977b55c72c0577553444ac08838cdefde5acef91d6c00ad996d1c464b61b(
19399
+ *,
19400
+ disk: typing.Optional[_Size_7b441c34] = None,
19401
+ machine_type: typing.Optional[MachineType] = None,
19402
+ memory: typing.Optional[_Size_7b441c34] = None,
19403
+ v_cpu: typing.Optional[jsii.Number] = None,
19404
+ ) -> None:
19405
+ """Type checking stubs"""
19406
+ pass
19407
+
19194
19408
  def _typecheckingstub__a9bdff78eb0c7b03d745a4a031a5cd7fe7b54a46e7733dc247bae3735e3c5300(
19195
19409
  *,
19196
19410
  secrets_manager_credentials: typing.Optional[_ISecret_6e020e6a] = None,
@@ -19334,6 +19548,7 @@ def _typecheckingstub__e7911aefc20674030e6eb6a13611d08046f9412fc45f97ff43a4ecf75
19334
19548
  base_capacity: jsii.Number,
19335
19549
  compute_type: FleetComputeType,
19336
19550
  environment_type: EnvironmentType,
19551
+ compute_configuration: typing.Optional[typing.Union[ComputeConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
19337
19552
  fleet_name: typing.Optional[builtins.str] = None,
19338
19553
  ) -> None:
19339
19554
  """Type checking stubs"""
@@ -20157,6 +20372,7 @@ def _typecheckingstub__68e9f035c12fa2c35bc62bc8d306e3651814bea9f53875aeea43b85f6
20157
20372
  base_capacity: jsii.Number,
20158
20373
  compute_type: FleetComputeType,
20159
20374
  environment_type: EnvironmentType,
20375
+ compute_configuration: typing.Optional[typing.Union[ComputeConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
20160
20376
  fleet_name: typing.Optional[builtins.str] = None,
20161
20377
  ) -> None:
20162
20378
  """Type checking stubs"""
@@ -1015,6 +1015,7 @@ class ActionCategory(enum.Enum):
1015
1015
  APPROVAL = "APPROVAL"
1016
1016
  DEPLOY = "DEPLOY"
1017
1017
  INVOKE = "INVOKE"
1018
+ COMPUTE = "COMPUTE"
1018
1019
 
1019
1020
 
1020
1021
  @jsii.data_type(
@@ -1074,8 +1075,10 @@ class ActionConfig:
1074
1075
  "category": "category",
1075
1076
  "provider": "provider",
1076
1077
  "account": "account",
1078
+ "commands": "commands",
1077
1079
  "inputs": "inputs",
1078
1080
  "outputs": "outputs",
1081
+ "output_variables": "outputVariables",
1079
1082
  "owner": "owner",
1080
1083
  "region": "region",
1081
1084
  "resource": "resource",
@@ -1094,8 +1097,10 @@ class ActionProperties:
1094
1097
  category: ActionCategory,
1095
1098
  provider: builtins.str,
1096
1099
  account: typing.Optional[builtins.str] = None,
1100
+ commands: typing.Optional[typing.Sequence[builtins.str]] = None,
1097
1101
  inputs: typing.Optional[typing.Sequence["Artifact"]] = None,
1098
1102
  outputs: typing.Optional[typing.Sequence["Artifact"]] = None,
1103
+ output_variables: typing.Optional[typing.Sequence[builtins.str]] = None,
1099
1104
  owner: typing.Optional[builtins.str] = None,
1100
1105
  region: typing.Optional[builtins.str] = None,
1101
1106
  resource: typing.Optional[_IResource_c80c4260] = None,
@@ -1110,8 +1115,10 @@ class ActionProperties:
1110
1115
  :param category: The category of the action. The category defines which action type the owner (the entity that performs the action) performs.
1111
1116
  :param provider: The service provider that the action calls.
1112
1117
  :param account: The account the Action is supposed to live in. For Actions backed by resources, this is inferred from the Stack ``resource`` is part of. However, some Actions, like the CloudFormation ones, are not backed by any resource, and they still might want to be cross-account. In general, a concrete Action class should specify either ``resource``, or ``account`` - but not both.
1118
+ :param commands: Shell commands for the Commands action to run. Default: - no commands
1113
1119
  :param inputs:
1114
1120
  :param outputs:
1121
+ :param output_variables: The names of the variables in your environment that you want to export. Default: - no output variables
1115
1122
  :param owner:
1116
1123
  :param region: The AWS region the given Action resides in. Note that a cross-region Pipeline requires replication buckets to function correctly. You can provide their names with the ``PipelineProps#crossRegionReplicationBuckets`` property. If you don't, the CodePipeline Construct will create new Stacks in your CDK app containing those buckets, that you will need to ``cdk deploy`` before deploying the main, Pipeline-containing Stack. Default: the Action resides in the same region as the Pipeline
1117
1124
  :param resource: The optional resource that is backing this Action. This is used for automatically handling Actions backed by resources from a different account and/or region.
@@ -1147,8 +1154,10 @@ class ActionProperties:
1147
1154
 
1148
1155
  # the properties below are optional
1149
1156
  account="account",
1157
+ commands=["commands"],
1150
1158
  inputs=[artifact],
1151
1159
  outputs=[artifact],
1160
+ output_variables=["outputVariables"],
1152
1161
  owner="owner",
1153
1162
  region="region",
1154
1163
  resource=resource,
@@ -1167,8 +1176,10 @@ class ActionProperties:
1167
1176
  check_type(argname="argument category", value=category, expected_type=type_hints["category"])
1168
1177
  check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
1169
1178
  check_type(argname="argument account", value=account, expected_type=type_hints["account"])
1179
+ check_type(argname="argument commands", value=commands, expected_type=type_hints["commands"])
1170
1180
  check_type(argname="argument inputs", value=inputs, expected_type=type_hints["inputs"])
1171
1181
  check_type(argname="argument outputs", value=outputs, expected_type=type_hints["outputs"])
1182
+ check_type(argname="argument output_variables", value=output_variables, expected_type=type_hints["output_variables"])
1172
1183
  check_type(argname="argument owner", value=owner, expected_type=type_hints["owner"])
1173
1184
  check_type(argname="argument region", value=region, expected_type=type_hints["region"])
1174
1185
  check_type(argname="argument resource", value=resource, expected_type=type_hints["resource"])
@@ -1184,10 +1195,14 @@ class ActionProperties:
1184
1195
  }
1185
1196
  if account is not None:
1186
1197
  self._values["account"] = account
1198
+ if commands is not None:
1199
+ self._values["commands"] = commands
1187
1200
  if inputs is not None:
1188
1201
  self._values["inputs"] = inputs
1189
1202
  if outputs is not None:
1190
1203
  self._values["outputs"] = outputs
1204
+ if output_variables is not None:
1205
+ self._values["output_variables"] = output_variables
1191
1206
  if owner is not None:
1192
1207
  self._values["owner"] = owner
1193
1208
  if region is not None:
@@ -1247,6 +1262,15 @@ class ActionProperties:
1247
1262
  result = self._values.get("account")
1248
1263
  return typing.cast(typing.Optional[builtins.str], result)
1249
1264
 
1265
+ @builtins.property
1266
+ def commands(self) -> typing.Optional[typing.List[builtins.str]]:
1267
+ '''Shell commands for the Commands action to run.
1268
+
1269
+ :default: - no commands
1270
+ '''
1271
+ result = self._values.get("commands")
1272
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1273
+
1250
1274
  @builtins.property
1251
1275
  def inputs(self) -> typing.Optional[typing.List["Artifact"]]:
1252
1276
  result = self._values.get("inputs")
@@ -1257,6 +1281,15 @@ class ActionProperties:
1257
1281
  result = self._values.get("outputs")
1258
1282
  return typing.cast(typing.Optional[typing.List["Artifact"]], result)
1259
1283
 
1284
+ @builtins.property
1285
+ def output_variables(self) -> typing.Optional[typing.List[builtins.str]]:
1286
+ '''The names of the variables in your environment that you want to export.
1287
+
1288
+ :default: - no output variables
1289
+ '''
1290
+ result = self._values.get("output_variables")
1291
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1292
+
1260
1293
  @builtins.property
1261
1294
  def owner(self) -> typing.Optional[builtins.str]:
1262
1295
  result = self._values.get("owner")
@@ -1374,28 +1407,43 @@ class Artifact(
1374
1407
  )
1375
1408
  '''
1376
1409
 
1377
- def __init__(self, artifact_name: typing.Optional[builtins.str] = None) -> None:
1378
- '''
1379
- :param artifact_name: -
1410
+ def __init__(
1411
+ self,
1412
+ artifact_name: typing.Optional[builtins.str] = None,
1413
+ artifact_files: typing.Optional[typing.Sequence[builtins.str]] = None,
1414
+ ) -> None:
1415
+ '''An output artifact of an action.
1416
+
1417
+ Artifacts can be used as input by some actions.
1418
+
1419
+ :param artifact_name: the (required) name of the Artifact.
1420
+ :param artifact_files: file paths that you want to export as the output artifact for the action. This property can only be used in the artifact for ``CommandsAction``. The length of the artifactFiles array must be between 1 and 10.
1380
1421
  '''
1381
1422
  if __debug__:
1382
1423
  type_hints = typing.get_type_hints(_typecheckingstub__f54b8d044be8c6120e635522855c750b47ac8841ab3f60bdbffb0d5bc115acd6)
1383
1424
  check_type(argname="argument artifact_name", value=artifact_name, expected_type=type_hints["artifact_name"])
1384
- jsii.create(self.__class__, self, [artifact_name])
1425
+ check_type(argname="argument artifact_files", value=artifact_files, expected_type=type_hints["artifact_files"])
1426
+ jsii.create(self.__class__, self, [artifact_name, artifact_files])
1385
1427
 
1386
1428
  @jsii.member(jsii_name="artifact")
1387
1429
  @builtins.classmethod
1388
- def artifact(cls, name: builtins.str) -> "Artifact":
1430
+ def artifact(
1431
+ cls,
1432
+ name: builtins.str,
1433
+ files: typing.Optional[typing.Sequence[builtins.str]] = None,
1434
+ ) -> "Artifact":
1389
1435
  '''A static factory method used to create instances of the Artifact class.
1390
1436
 
1391
1437
  Mainly meant to be used from ``decdk``.
1392
1438
 
1393
1439
  :param name: the (required) name of the Artifact.
1440
+ :param files: file paths that you want to export as the output artifact for the action. This property can only be used in the artifact for ``CommandsAction``. The length of the files array must be between 1 and 10.
1394
1441
  '''
1395
1442
  if __debug__:
1396
1443
  type_hints = typing.get_type_hints(_typecheckingstub__162b74657e69163ea68e052eb239ee6234ff6e7032951e1dfa2a29c0547c72f2)
1397
1444
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
1398
- return typing.cast("Artifact", jsii.sinvoke(cls, "artifact", [name]))
1445
+ check_type(argname="argument files", value=files, expected_type=type_hints["files"])
1446
+ return typing.cast("Artifact", jsii.sinvoke(cls, "artifact", [name, files]))
1399
1447
 
1400
1448
  @jsii.member(jsii_name="atPath")
1401
1449
  def at_path(self, file_name: builtins.str) -> "ArtifactPath":
@@ -1486,6 +1534,15 @@ class Artifact(
1486
1534
  '''The artifact attribute of the Amazon Simple Storage Service (Amazon S3) URL of the artifact, such as https://s3-us-west-2.amazonaws.com/artifactstorebucket-yivczw8jma0c/test/TemplateSo/1ABCyZZ.zip.'''
1487
1535
  return typing.cast(builtins.str, jsii.get(self, "url"))
1488
1536
 
1537
+ @builtins.property
1538
+ @jsii.member(jsii_name="artifactFiles")
1539
+ def artifact_files(self) -> typing.Optional[typing.List[builtins.str]]:
1540
+ '''The file paths that you want to export as the output artifact for the action.
1541
+
1542
+ This property can only be used in artifacts for ``CommandsAction``.
1543
+ '''
1544
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "artifactFiles"))
1545
+
1489
1546
  @builtins.property
1490
1547
  @jsii.member(jsii_name="artifactName")
1491
1548
  def artifact_name(self) -> typing.Optional[builtins.str]:
@@ -9364,35 +9421,35 @@ class PipelineProps:
9364
9421
 
9365
9422
  Example::
9366
9423
 
9367
- # source_action: codepipeline_actions.S3SourceAction
9368
- # source_output: codepipeline.Artifact
9369
- # deploy_bucket: s3.Bucket
9370
-
9424
+ # Source action
9425
+ bucket = s3.Bucket(self, "SourceBucket",
9426
+ versioned=True
9427
+ )
9428
+ source_artifact = codepipeline.Artifact("SourceArtifact")
9429
+ source_action = codepipeline_actions.S3SourceAction(
9430
+ action_name="Source",
9431
+ output=source_artifact,
9432
+ bucket=bucket,
9433
+ bucket_key="my.zip"
9434
+ )
9371
9435
 
9372
- # Pipeline-level variable
9373
- variable = codepipeline.Variable(
9374
- variable_name="bucket-var",
9375
- description="description",
9376
- default_value="sample"
9436
+ # Commands action
9437
+ output_artifact = codepipeline.Artifact("OutputArtifact")
9438
+ commands_action = codepipeline_actions.CommandsAction(
9439
+ action_name="Commands",
9440
+ commands=["echo \"some commands\""
9441
+ ],
9442
+ input=source_artifact,
9443
+ output=output_artifact
9377
9444
  )
9378
9445
 
9379
- codepipeline.Pipeline(self, "Pipeline",
9380
- pipeline_type=codepipeline.PipelineType.V2,
9381
- variables=[variable],
9446
+ pipeline = codepipeline.Pipeline(self, "Pipeline",
9382
9447
  stages=[codepipeline.StageProps(
9383
9448
  stage_name="Source",
9384
9449
  actions=[source_action]
9385
9450
  ), codepipeline.StageProps(
9386
- stage_name="Deploy",
9387
- actions=[
9388
- codepipeline_actions.S3DeployAction(
9389
- action_name="DeployAction",
9390
- # can reference the variables
9391
- object_key=f"{variable.reference()}.txt",
9392
- input=source_output,
9393
- bucket=deploy_bucket
9394
- )
9395
- ]
9451
+ stage_name="Commands",
9452
+ actions=[commands_action]
9396
9453
  )
9397
9454
  ]
9398
9455
  )
@@ -10572,8 +10629,10 @@ def _typecheckingstub__9d5af996beb5106d261c46a26d8be39e2a16f31935368b97303970d10
10572
10629
  category: ActionCategory,
10573
10630
  provider: builtins.str,
10574
10631
  account: typing.Optional[builtins.str] = None,
10632
+ commands: typing.Optional[typing.Sequence[builtins.str]] = None,
10575
10633
  inputs: typing.Optional[typing.Sequence[Artifact]] = None,
10576
10634
  outputs: typing.Optional[typing.Sequence[Artifact]] = None,
10635
+ output_variables: typing.Optional[typing.Sequence[builtins.str]] = None,
10577
10636
  owner: typing.Optional[builtins.str] = None,
10578
10637
  region: typing.Optional[builtins.str] = None,
10579
10638
  resource: typing.Optional[_IResource_c80c4260] = None,
@@ -10587,12 +10646,14 @@ def _typecheckingstub__9d5af996beb5106d261c46a26d8be39e2a16f31935368b97303970d10
10587
10646
 
10588
10647
  def _typecheckingstub__f54b8d044be8c6120e635522855c750b47ac8841ab3f60bdbffb0d5bc115acd6(
10589
10648
  artifact_name: typing.Optional[builtins.str] = None,
10649
+ artifact_files: typing.Optional[typing.Sequence[builtins.str]] = None,
10590
10650
  ) -> None:
10591
10651
  """Type checking stubs"""
10592
10652
  pass
10593
10653
 
10594
10654
  def _typecheckingstub__162b74657e69163ea68e052eb239ee6234ff6e7032951e1dfa2a29c0547c72f2(
10595
10655
  name: builtins.str,
10656
+ files: typing.Optional[typing.Sequence[builtins.str]] = None,
10596
10657
  ) -> None:
10597
10658
  """Type checking stubs"""
10598
10659
  pass