aws-cdk-lib 2.191.0__py3-none-any.whl → 2.193.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.

@@ -721,6 +721,24 @@ eks.Cluster(self, "HelloEKS",
721
721
  )
722
722
  ```
723
723
 
724
+ To provide additional Helm chart values supported by `albController` in CDK, use the `additionalHelmChartValues` property. For example, the following code snippet shows how to set the `enableWafV2` flag:
725
+
726
+ ```python
727
+ from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
728
+
729
+
730
+ eks.Cluster(self, "HelloEKS",
731
+ version=eks.KubernetesVersion.V1_32,
732
+ alb_controller=eks.AlbControllerOptions(
733
+ version=eks.AlbControllerVersion.V2_8_2,
734
+ additional_helm_chart_values=eks.AlbControllerHelmChartOptions(
735
+ enable_wafv2=False
736
+ )
737
+ ),
738
+ kubectl_layer=KubectlV32Layer(self, "kubectl")
739
+ )
740
+ ```
741
+
724
742
  The `albController` requires `defaultCapacity` or at least one nodegroup. If there's no `defaultCapacity` or available
725
743
  nodegroup for the cluster, the `albController` deployment would fail.
726
744
 
@@ -2917,6 +2935,10 @@ class AlbController(
2917
2935
  version=alb_controller_version,
2918
2936
 
2919
2937
  # the properties below are optional
2938
+ additional_helm_chart_values=eks.AlbControllerHelmChartOptions(
2939
+ enable_waf=False,
2940
+ enable_wafv2=False
2941
+ ),
2920
2942
  policy=policy,
2921
2943
  repository="repository"
2922
2944
  )
@@ -2929,6 +2951,7 @@ class AlbController(
2929
2951
  *,
2930
2952
  cluster: "Cluster",
2931
2953
  version: "AlbControllerVersion",
2954
+ additional_helm_chart_values: typing.Optional[typing.Union["AlbControllerHelmChartOptions", typing.Dict[builtins.str, typing.Any]]] = None,
2932
2955
  policy: typing.Any = None,
2933
2956
  repository: typing.Optional[builtins.str] = None,
2934
2957
  ) -> None:
@@ -2937,6 +2960,7 @@ class AlbController(
2937
2960
  :param id: -
2938
2961
  :param cluster: [disable-awslint:ref-via-interface] Cluster to install the controller onto.
2939
2962
  :param version: Version of the controller.
2963
+ :param additional_helm_chart_values: Additional helm chart values for ALB controller. Default: - no additional helm chart values
2940
2964
  :param policy: The IAM policy to apply to the service account. If you're using one of the built-in versions, this is not required since CDK ships with the appropriate policies for those versions. However, if you are using a custom version, this is required (and validated). Default: - Corresponds to the predefined version.
2941
2965
  :param repository: The repository to pull the controller image from. Note that the default repository works for most regions, but not all. If the repository is not applicable to your region, use a custom repository according to the information here: https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases. Default: '602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon/aws-load-balancer-controller'
2942
2966
  '''
@@ -2945,7 +2969,11 @@ class AlbController(
2945
2969
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2946
2970
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2947
2971
  props = AlbControllerProps(
2948
- cluster=cluster, version=version, policy=policy, repository=repository
2972
+ cluster=cluster,
2973
+ version=version,
2974
+ additional_helm_chart_values=additional_helm_chart_values,
2975
+ policy=policy,
2976
+ repository=repository,
2949
2977
  )
2950
2978
 
2951
2979
  jsii.create(self.__class__, self, [scope, id, props])
@@ -2958,6 +2986,7 @@ class AlbController(
2958
2986
  *,
2959
2987
  cluster: "Cluster",
2960
2988
  version: "AlbControllerVersion",
2989
+ additional_helm_chart_values: typing.Optional[typing.Union["AlbControllerHelmChartOptions", typing.Dict[builtins.str, typing.Any]]] = None,
2961
2990
  policy: typing.Any = None,
2962
2991
  repository: typing.Optional[builtins.str] = None,
2963
2992
  ) -> "AlbController":
@@ -2968,6 +2997,7 @@ class AlbController(
2968
2997
  :param scope: -
2969
2998
  :param cluster: [disable-awslint:ref-via-interface] Cluster to install the controller onto.
2970
2999
  :param version: Version of the controller.
3000
+ :param additional_helm_chart_values: Additional helm chart values for ALB controller. Default: - no additional helm chart values
2971
3001
  :param policy: The IAM policy to apply to the service account. If you're using one of the built-in versions, this is not required since CDK ships with the appropriate policies for those versions. However, if you are using a custom version, this is required (and validated). Default: - Corresponds to the predefined version.
2972
3002
  :param repository: The repository to pull the controller image from. Note that the default repository works for most regions, but not all. If the repository is not applicable to your region, use a custom repository according to the information here: https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases. Default: '602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon/aws-load-balancer-controller'
2973
3003
  '''
@@ -2975,17 +3005,97 @@ class AlbController(
2975
3005
  type_hints = typing.get_type_hints(_typecheckingstub__1b3813db11381f0166360b7dc6066bdeadc4a52043da6eba56f9a55a4bfd6157)
2976
3006
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2977
3007
  props = AlbControllerProps(
2978
- cluster=cluster, version=version, policy=policy, repository=repository
3008
+ cluster=cluster,
3009
+ version=version,
3010
+ additional_helm_chart_values=additional_helm_chart_values,
3011
+ policy=policy,
3012
+ repository=repository,
2979
3013
  )
2980
3014
 
2981
3015
  return typing.cast("AlbController", jsii.sinvoke(cls, "create", [scope, props]))
2982
3016
 
2983
3017
 
3018
+ @jsii.data_type(
3019
+ jsii_type="aws-cdk-lib.aws_eks.AlbControllerHelmChartOptions",
3020
+ jsii_struct_bases=[],
3021
+ name_mapping={"enable_waf": "enableWaf", "enable_wafv2": "enableWafv2"},
3022
+ )
3023
+ class AlbControllerHelmChartOptions:
3024
+ def __init__(
3025
+ self,
3026
+ *,
3027
+ enable_waf: typing.Optional[builtins.bool] = None,
3028
+ enable_wafv2: typing.Optional[builtins.bool] = None,
3029
+ ) -> None:
3030
+ '''Helm chart options that can be set for AlbControllerChart To add any new supported values refer https://github.com/kubernetes-sigs/aws-load-balancer-controller/blob/main/helm/aws-load-balancer-controller/values.yaml.
3031
+
3032
+ :param enable_waf: Enable or disable AWS WAF on the ALB ingress controller. Default: - no value defined for this helm chart option, so it will not be set in the helm chart values
3033
+ :param enable_wafv2: Enable or disable AWS WAFv2 on the ALB ingress controller. Default: - no value defined for this helm chart option, so it will not be set in the helm chart values
3034
+
3035
+ :exampleMetadata: infused
3036
+
3037
+ Example::
3038
+
3039
+ from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
3040
+
3041
+
3042
+ eks.Cluster(self, "HelloEKS",
3043
+ version=eks.KubernetesVersion.V1_32,
3044
+ alb_controller=eks.AlbControllerOptions(
3045
+ version=eks.AlbControllerVersion.V2_8_2,
3046
+ additional_helm_chart_values=eks.AlbControllerHelmChartOptions(
3047
+ enable_wafv2=False
3048
+ )
3049
+ ),
3050
+ kubectl_layer=KubectlV32Layer(self, "kubectl")
3051
+ )
3052
+ '''
3053
+ if __debug__:
3054
+ type_hints = typing.get_type_hints(_typecheckingstub__281499b199c1a76de8c09b4fa8c74547b8a256e9ceb223d10f672ae9e7a452d1)
3055
+ check_type(argname="argument enable_waf", value=enable_waf, expected_type=type_hints["enable_waf"])
3056
+ check_type(argname="argument enable_wafv2", value=enable_wafv2, expected_type=type_hints["enable_wafv2"])
3057
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3058
+ if enable_waf is not None:
3059
+ self._values["enable_waf"] = enable_waf
3060
+ if enable_wafv2 is not None:
3061
+ self._values["enable_wafv2"] = enable_wafv2
3062
+
3063
+ @builtins.property
3064
+ def enable_waf(self) -> typing.Optional[builtins.bool]:
3065
+ '''Enable or disable AWS WAF on the ALB ingress controller.
3066
+
3067
+ :default: - no value defined for this helm chart option, so it will not be set in the helm chart values
3068
+ '''
3069
+ result = self._values.get("enable_waf")
3070
+ return typing.cast(typing.Optional[builtins.bool], result)
3071
+
3072
+ @builtins.property
3073
+ def enable_wafv2(self) -> typing.Optional[builtins.bool]:
3074
+ '''Enable or disable AWS WAFv2 on the ALB ingress controller.
3075
+
3076
+ :default: - no value defined for this helm chart option, so it will not be set in the helm chart values
3077
+ '''
3078
+ result = self._values.get("enable_wafv2")
3079
+ return typing.cast(typing.Optional[builtins.bool], result)
3080
+
3081
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3082
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3083
+
3084
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3085
+ return not (rhs == self)
3086
+
3087
+ def __repr__(self) -> str:
3088
+ return "AlbControllerHelmChartOptions(%s)" % ", ".join(
3089
+ k + "=" + repr(v) for k, v in self._values.items()
3090
+ )
3091
+
3092
+
2984
3093
  @jsii.data_type(
2985
3094
  jsii_type="aws-cdk-lib.aws_eks.AlbControllerOptions",
2986
3095
  jsii_struct_bases=[],
2987
3096
  name_mapping={
2988
3097
  "version": "version",
3098
+ "additional_helm_chart_values": "additionalHelmChartValues",
2989
3099
  "policy": "policy",
2990
3100
  "repository": "repository",
2991
3101
  },
@@ -2995,12 +3105,14 @@ class AlbControllerOptions:
2995
3105
  self,
2996
3106
  *,
2997
3107
  version: "AlbControllerVersion",
3108
+ additional_helm_chart_values: typing.Optional[typing.Union[AlbControllerHelmChartOptions, typing.Dict[builtins.str, typing.Any]]] = None,
2998
3109
  policy: typing.Any = None,
2999
3110
  repository: typing.Optional[builtins.str] = None,
3000
3111
  ) -> None:
3001
3112
  '''Options for ``AlbController``.
3002
3113
 
3003
3114
  :param version: Version of the controller.
3115
+ :param additional_helm_chart_values: Additional helm chart values for ALB controller. Default: - no additional helm chart values
3004
3116
  :param policy: The IAM policy to apply to the service account. If you're using one of the built-in versions, this is not required since CDK ships with the appropriate policies for those versions. However, if you are using a custom version, this is required (and validated). Default: - Corresponds to the predefined version.
3005
3117
  :param repository: The repository to pull the controller image from. Note that the default repository works for most regions, but not all. If the repository is not applicable to your region, use a custom repository according to the information here: https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases. Default: '602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon/aws-load-balancer-controller'
3006
3118
 
@@ -3019,14 +3131,19 @@ class AlbControllerOptions:
3019
3131
  kubectl_layer=KubectlV32Layer(self, "kubectl")
3020
3132
  )
3021
3133
  '''
3134
+ if isinstance(additional_helm_chart_values, dict):
3135
+ additional_helm_chart_values = AlbControllerHelmChartOptions(**additional_helm_chart_values)
3022
3136
  if __debug__:
3023
3137
  type_hints = typing.get_type_hints(_typecheckingstub__b22ec5f19b5d1b4d655cc304c12c33352da257e2109041355aa01fc993ec3ef9)
3024
3138
  check_type(argname="argument version", value=version, expected_type=type_hints["version"])
3139
+ check_type(argname="argument additional_helm_chart_values", value=additional_helm_chart_values, expected_type=type_hints["additional_helm_chart_values"])
3025
3140
  check_type(argname="argument policy", value=policy, expected_type=type_hints["policy"])
3026
3141
  check_type(argname="argument repository", value=repository, expected_type=type_hints["repository"])
3027
3142
  self._values: typing.Dict[builtins.str, typing.Any] = {
3028
3143
  "version": version,
3029
3144
  }
3145
+ if additional_helm_chart_values is not None:
3146
+ self._values["additional_helm_chart_values"] = additional_helm_chart_values
3030
3147
  if policy is not None:
3031
3148
  self._values["policy"] = policy
3032
3149
  if repository is not None:
@@ -3039,6 +3156,17 @@ class AlbControllerOptions:
3039
3156
  assert result is not None, "Required property 'version' is missing"
3040
3157
  return typing.cast("AlbControllerVersion", result)
3041
3158
 
3159
+ @builtins.property
3160
+ def additional_helm_chart_values(
3161
+ self,
3162
+ ) -> typing.Optional[AlbControllerHelmChartOptions]:
3163
+ '''Additional helm chart values for ALB controller.
3164
+
3165
+ :default: - no additional helm chart values
3166
+ '''
3167
+ result = self._values.get("additional_helm_chart_values")
3168
+ return typing.cast(typing.Optional[AlbControllerHelmChartOptions], result)
3169
+
3042
3170
  @builtins.property
3043
3171
  def policy(self) -> typing.Any:
3044
3172
  '''The IAM policy to apply to the service account.
@@ -3083,6 +3211,7 @@ class AlbControllerOptions:
3083
3211
  jsii_struct_bases=[AlbControllerOptions],
3084
3212
  name_mapping={
3085
3213
  "version": "version",
3214
+ "additional_helm_chart_values": "additionalHelmChartValues",
3086
3215
  "policy": "policy",
3087
3216
  "repository": "repository",
3088
3217
  "cluster": "cluster",
@@ -3093,6 +3222,7 @@ class AlbControllerProps(AlbControllerOptions):
3093
3222
  self,
3094
3223
  *,
3095
3224
  version: "AlbControllerVersion",
3225
+ additional_helm_chart_values: typing.Optional[typing.Union[AlbControllerHelmChartOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3096
3226
  policy: typing.Any = None,
3097
3227
  repository: typing.Optional[builtins.str] = None,
3098
3228
  cluster: "Cluster",
@@ -3100,6 +3230,7 @@ class AlbControllerProps(AlbControllerOptions):
3100
3230
  '''Properties for ``AlbController``.
3101
3231
 
3102
3232
  :param version: Version of the controller.
3233
+ :param additional_helm_chart_values: Additional helm chart values for ALB controller. Default: - no additional helm chart values
3103
3234
  :param policy: The IAM policy to apply to the service account. If you're using one of the built-in versions, this is not required since CDK ships with the appropriate policies for those versions. However, if you are using a custom version, this is required (and validated). Default: - Corresponds to the predefined version.
3104
3235
  :param repository: The repository to pull the controller image from. Note that the default repository works for most regions, but not all. If the repository is not applicable to your region, use a custom repository according to the information here: https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases. Default: '602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon/aws-load-balancer-controller'
3105
3236
  :param cluster: [disable-awslint:ref-via-interface] Cluster to install the controller onto.
@@ -3121,13 +3252,20 @@ class AlbControllerProps(AlbControllerOptions):
3121
3252
  version=alb_controller_version,
3122
3253
 
3123
3254
  # the properties below are optional
3255
+ additional_helm_chart_values=eks.AlbControllerHelmChartOptions(
3256
+ enable_waf=False,
3257
+ enable_wafv2=False
3258
+ ),
3124
3259
  policy=policy,
3125
3260
  repository="repository"
3126
3261
  )
3127
3262
  '''
3263
+ if isinstance(additional_helm_chart_values, dict):
3264
+ additional_helm_chart_values = AlbControllerHelmChartOptions(**additional_helm_chart_values)
3128
3265
  if __debug__:
3129
3266
  type_hints = typing.get_type_hints(_typecheckingstub__9f52254abb63608be11e6e9e1ec6c94ebb428a9ab274e1bda653dd78d26cd509)
3130
3267
  check_type(argname="argument version", value=version, expected_type=type_hints["version"])
3268
+ check_type(argname="argument additional_helm_chart_values", value=additional_helm_chart_values, expected_type=type_hints["additional_helm_chart_values"])
3131
3269
  check_type(argname="argument policy", value=policy, expected_type=type_hints["policy"])
3132
3270
  check_type(argname="argument repository", value=repository, expected_type=type_hints["repository"])
3133
3271
  check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
@@ -3135,6 +3273,8 @@ class AlbControllerProps(AlbControllerOptions):
3135
3273
  "version": version,
3136
3274
  "cluster": cluster,
3137
3275
  }
3276
+ if additional_helm_chart_values is not None:
3277
+ self._values["additional_helm_chart_values"] = additional_helm_chart_values
3138
3278
  if policy is not None:
3139
3279
  self._values["policy"] = policy
3140
3280
  if repository is not None:
@@ -3147,6 +3287,17 @@ class AlbControllerProps(AlbControllerOptions):
3147
3287
  assert result is not None, "Required property 'version' is missing"
3148
3288
  return typing.cast("AlbControllerVersion", result)
3149
3289
 
3290
+ @builtins.property
3291
+ def additional_helm_chart_values(
3292
+ self,
3293
+ ) -> typing.Optional[AlbControllerHelmChartOptions]:
3294
+ '''Additional helm chart values for ALB controller.
3295
+
3296
+ :default: - no additional helm chart values
3297
+ '''
3298
+ result = self._values.get("additional_helm_chart_values")
3299
+ return typing.cast(typing.Optional[AlbControllerHelmChartOptions], result)
3300
+
3150
3301
  @builtins.property
3151
3302
  def policy(self) -> typing.Any:
3152
3303
  '''The IAM policy to apply to the service account.
@@ -19532,6 +19683,10 @@ class ClusterOptions(CommonClusterOptions):
19532
19683
  version=alb_controller_version,
19533
19684
 
19534
19685
  # the properties below are optional
19686
+ additional_helm_chart_values=eks.AlbControllerHelmChartOptions(
19687
+ enable_waf=False,
19688
+ enable_wafv2=False
19689
+ ),
19535
19690
  policy=policy,
19536
19691
  repository="repository"
19537
19692
  ),
@@ -21452,6 +21607,7 @@ __all__ = [
21452
21607
  "AddonAttributes",
21453
21608
  "AddonProps",
21454
21609
  "AlbController",
21610
+ "AlbControllerHelmChartOptions",
21455
21611
  "AlbControllerOptions",
21456
21612
  "AlbControllerProps",
21457
21613
  "AlbControllerVersion",
@@ -21621,6 +21777,7 @@ def _typecheckingstub__5e2ca421e3f17c3114d53057ba096ab3f90bd3b8ed6c2e0f75f61c88d
21621
21777
  *,
21622
21778
  cluster: Cluster,
21623
21779
  version: AlbControllerVersion,
21780
+ additional_helm_chart_values: typing.Optional[typing.Union[AlbControllerHelmChartOptions, typing.Dict[builtins.str, typing.Any]]] = None,
21624
21781
  policy: typing.Any = None,
21625
21782
  repository: typing.Optional[builtins.str] = None,
21626
21783
  ) -> None:
@@ -21632,15 +21789,25 @@ def _typecheckingstub__1b3813db11381f0166360b7dc6066bdeadc4a52043da6eba56f9a55a4
21632
21789
  *,
21633
21790
  cluster: Cluster,
21634
21791
  version: AlbControllerVersion,
21792
+ additional_helm_chart_values: typing.Optional[typing.Union[AlbControllerHelmChartOptions, typing.Dict[builtins.str, typing.Any]]] = None,
21635
21793
  policy: typing.Any = None,
21636
21794
  repository: typing.Optional[builtins.str] = None,
21637
21795
  ) -> None:
21638
21796
  """Type checking stubs"""
21639
21797
  pass
21640
21798
 
21799
+ def _typecheckingstub__281499b199c1a76de8c09b4fa8c74547b8a256e9ceb223d10f672ae9e7a452d1(
21800
+ *,
21801
+ enable_waf: typing.Optional[builtins.bool] = None,
21802
+ enable_wafv2: typing.Optional[builtins.bool] = None,
21803
+ ) -> None:
21804
+ """Type checking stubs"""
21805
+ pass
21806
+
21641
21807
  def _typecheckingstub__b22ec5f19b5d1b4d655cc304c12c33352da257e2109041355aa01fc993ec3ef9(
21642
21808
  *,
21643
21809
  version: AlbControllerVersion,
21810
+ additional_helm_chart_values: typing.Optional[typing.Union[AlbControllerHelmChartOptions, typing.Dict[builtins.str, typing.Any]]] = None,
21644
21811
  policy: typing.Any = None,
21645
21812
  repository: typing.Optional[builtins.str] = None,
21646
21813
  ) -> None:
@@ -21650,6 +21817,7 @@ def _typecheckingstub__b22ec5f19b5d1b4d655cc304c12c33352da257e2109041355aa01fc99
21650
21817
  def _typecheckingstub__9f52254abb63608be11e6e9e1ec6c94ebb428a9ab274e1bda653dd78d26cd509(
21651
21818
  *,
21652
21819
  version: AlbControllerVersion,
21820
+ additional_helm_chart_values: typing.Optional[typing.Union[AlbControllerHelmChartOptions, typing.Dict[builtins.str, typing.Any]]] = None,
21653
21821
  policy: typing.Any = None,
21654
21822
  repository: typing.Optional[builtins.str] = None,
21655
21823
  cluster: Cluster,
@@ -89,6 +89,22 @@ on_commit_rule.add_target(targets.SnsTopic(topic,
89
89
  ))
90
90
  ```
91
91
 
92
+ ### Role
93
+
94
+ You can specify an IAM Role:
95
+
96
+ ```python
97
+ # role: iam.IRole
98
+
99
+
100
+ events.Rule(self, "MyRule",
101
+ schedule=events.Schedule.cron(minute="0", hour="4"),
102
+ role=role
103
+ )
104
+ ```
105
+
106
+ **Note**: If you're setting an event bus in another account as the target and that account granted permission to your account through an organization instead of directly by the account ID, you must specify a RoleArn with proper permissions in the Target structure, instead of here in this parameter.
107
+
92
108
  ### Matchers
93
109
 
94
110
  To define a pattern, use the `Match` class, which provides a number of factory methods to declare
@@ -10518,6 +10534,7 @@ class Rule(
10518
10534
  *,
10519
10535
  enabled: typing.Optional[builtins.bool] = None,
10520
10536
  event_bus: typing.Optional[IEventBus] = None,
10537
+ role: typing.Optional[_IRole_235f5d8e] = None,
10521
10538
  schedule: typing.Optional["Schedule"] = None,
10522
10539
  targets: typing.Optional[typing.Sequence[IRuleTarget]] = None,
10523
10540
  cross_stack_scope: typing.Optional[_constructs_77d1e7e8.Construct] = None,
@@ -10530,6 +10547,7 @@ class Rule(
10530
10547
  :param id: -
10531
10548
  :param enabled: Indicates whether the rule is enabled. Default: true
10532
10549
  :param event_bus: The event bus to associate with this rule. Default: - The default event bus.
10550
+ :param role: The role that is used for target invocation. Must be assumable by principal ``events.amazonaws.com``. Default: - No role associated
10533
10551
  :param schedule: The schedule or rate (frequency) that determines when EventBridge runs the rule. You must specify this property, the ``eventPattern`` property, or both. For more information, see Schedule Expression Syntax for Rules in the Amazon EventBridge User Guide. Default: - None.
10534
10552
  :param targets: Targets to invoke when this rule matches an event. Input will be the full matched event. If you wish to specify custom target input, use ``addTarget(target[, inputOptions])``. Default: - No targets.
10535
10553
  :param cross_stack_scope: The scope to use if the source of the rule and its target are in different Stacks (but in the same account & region). This helps dealing with cycles that often arise in these situations. Default: - none (the main scope will be used, even for cross-stack Events)
@@ -10544,6 +10562,7 @@ class Rule(
10544
10562
  props = RuleProps(
10545
10563
  enabled=enabled,
10546
10564
  event_bus=event_bus,
10565
+ role=role,
10547
10566
  schedule=schedule,
10548
10567
  targets=targets,
10549
10568
  cross_stack_scope=cross_stack_scope,
@@ -10686,6 +10705,7 @@ class Rule(
10686
10705
  "rule_name": "ruleName",
10687
10706
  "enabled": "enabled",
10688
10707
  "event_bus": "eventBus",
10708
+ "role": "role",
10689
10709
  "schedule": "schedule",
10690
10710
  "targets": "targets",
10691
10711
  },
@@ -10700,6 +10720,7 @@ class RuleProps(EventCommonOptions):
10700
10720
  rule_name: typing.Optional[builtins.str] = None,
10701
10721
  enabled: typing.Optional[builtins.bool] = None,
10702
10722
  event_bus: typing.Optional[IEventBus] = None,
10723
+ role: typing.Optional[_IRole_235f5d8e] = None,
10703
10724
  schedule: typing.Optional["Schedule"] = None,
10704
10725
  targets: typing.Optional[typing.Sequence[IRuleTarget]] = None,
10705
10726
  ) -> None:
@@ -10711,6 +10732,7 @@ class RuleProps(EventCommonOptions):
10711
10732
  :param rule_name: A name for the rule. Default: AWS CloudFormation generates a unique physical ID.
10712
10733
  :param enabled: Indicates whether the rule is enabled. Default: true
10713
10734
  :param event_bus: The event bus to associate with this rule. Default: - The default event bus.
10735
+ :param role: The role that is used for target invocation. Must be assumable by principal ``events.amazonaws.com``. Default: - No role associated
10714
10736
  :param schedule: The schedule or rate (frequency) that determines when EventBridge runs the rule. You must specify this property, the ``eventPattern`` property, or both. For more information, see Schedule Expression Syntax for Rules in the Amazon EventBridge User Guide. Default: - None.
10715
10737
  :param targets: Targets to invoke when this rule matches an event. Input will be the full matched event. If you wish to specify custom target input, use ``addTarget(target[, inputOptions])``. Default: - No targets.
10716
10738
 
@@ -10745,6 +10767,7 @@ class RuleProps(EventCommonOptions):
10745
10767
  check_type(argname="argument rule_name", value=rule_name, expected_type=type_hints["rule_name"])
10746
10768
  check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
10747
10769
  check_type(argname="argument event_bus", value=event_bus, expected_type=type_hints["event_bus"])
10770
+ check_type(argname="argument role", value=role, expected_type=type_hints["role"])
10748
10771
  check_type(argname="argument schedule", value=schedule, expected_type=type_hints["schedule"])
10749
10772
  check_type(argname="argument targets", value=targets, expected_type=type_hints["targets"])
10750
10773
  self._values: typing.Dict[builtins.str, typing.Any] = {}
@@ -10760,6 +10783,8 @@ class RuleProps(EventCommonOptions):
10760
10783
  self._values["enabled"] = enabled
10761
10784
  if event_bus is not None:
10762
10785
  self._values["event_bus"] = event_bus
10786
+ if role is not None:
10787
+ self._values["role"] = role
10763
10788
  if schedule is not None:
10764
10789
  self._values["schedule"] = schedule
10765
10790
  if targets is not None:
@@ -10827,6 +10852,17 @@ class RuleProps(EventCommonOptions):
10827
10852
  result = self._values.get("event_bus")
10828
10853
  return typing.cast(typing.Optional[IEventBus], result)
10829
10854
 
10855
+ @builtins.property
10856
+ def role(self) -> typing.Optional[_IRole_235f5d8e]:
10857
+ '''The role that is used for target invocation.
10858
+
10859
+ Must be assumable by principal ``events.amazonaws.com``.
10860
+
10861
+ :default: - No role associated
10862
+ '''
10863
+ result = self._values.get("role")
10864
+ return typing.cast(typing.Optional[_IRole_235f5d8e], result)
10865
+
10830
10866
  @builtins.property
10831
10867
  def schedule(self) -> typing.Optional["Schedule"]:
10832
10868
  '''The schedule or rate (frequency) that determines when EventBridge runs the rule.
@@ -13564,6 +13600,7 @@ def _typecheckingstub__15ada85ef5f1cb4f0237eff6253e200138049f1bebbea7163294d28f9
13564
13600
  *,
13565
13601
  enabled: typing.Optional[builtins.bool] = None,
13566
13602
  event_bus: typing.Optional[IEventBus] = None,
13603
+ role: typing.Optional[_IRole_235f5d8e] = None,
13567
13604
  schedule: typing.Optional[Schedule] = None,
13568
13605
  targets: typing.Optional[typing.Sequence[IRuleTarget]] = None,
13569
13606
  cross_stack_scope: typing.Optional[_constructs_77d1e7e8.Construct] = None,
@@ -13596,6 +13633,7 @@ def _typecheckingstub__26677a946da4037892c1c589c005b7536d8ffed632ca92c5c52a92586
13596
13633
  rule_name: typing.Optional[builtins.str] = None,
13597
13634
  enabled: typing.Optional[builtins.bool] = None,
13598
13635
  event_bus: typing.Optional[IEventBus] = None,
13636
+ role: typing.Optional[_IRole_235f5d8e] = None,
13599
13637
  schedule: typing.Optional[Schedule] = None,
13600
13638
  targets: typing.Optional[typing.Sequence[IRuleTarget]] = None,
13601
13639
  ) -> None: