pulumi-gcp 8.34.0a1749538186__py3-none-any.whl → 8.34.0a1749648575__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.
Files changed (65) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/alloydb/cluster.py +16 -64
  3. pulumi_gcp/apigee/_inputs.py +89 -0
  4. pulumi_gcp/apigee/environment.py +68 -2
  5. pulumi_gcp/apigee/outputs.py +88 -0
  6. pulumi_gcp/apihub/__init__.py +1 -0
  7. pulumi_gcp/apihub/_inputs.py +184 -0
  8. pulumi_gcp/apihub/curation.py +812 -0
  9. pulumi_gcp/apihub/outputs.py +165 -0
  10. pulumi_gcp/beyondcorp/get_security_gateway.py +12 -1
  11. pulumi_gcp/beyondcorp/security_gateway.py +28 -0
  12. pulumi_gcp/cloudrunv2/_inputs.py +463 -0
  13. pulumi_gcp/cloudrunv2/outputs.py +581 -1
  14. pulumi_gcp/cloudrunv2/worker_pool.py +0 -8
  15. pulumi_gcp/colab/runtime_template.py +4 -26
  16. pulumi_gcp/compute/__init__.py +3 -0
  17. pulumi_gcp/compute/_inputs.py +1551 -0
  18. pulumi_gcp/compute/interconnect.py +32 -0
  19. pulumi_gcp/compute/interconnect_attachment.py +28 -0
  20. pulumi_gcp/compute/interconnect_attachment_group.py +636 -0
  21. pulumi_gcp/compute/interconnect_group.py +586 -0
  22. pulumi_gcp/compute/outputs.py +1087 -0
  23. pulumi_gcp/compute/snapshot_settings.py +285 -0
  24. pulumi_gcp/container/_inputs.py +51 -18
  25. pulumi_gcp/container/cluster.py +47 -0
  26. pulumi_gcp/container/get_cluster.py +12 -1
  27. pulumi_gcp/container/outputs.py +71 -16
  28. pulumi_gcp/dataplex/_inputs.py +20 -0
  29. pulumi_gcp/dataplex/datascan.py +2 -0
  30. pulumi_gcp/dataplex/outputs.py +15 -1
  31. pulumi_gcp/eventarc/_inputs.py +12 -5
  32. pulumi_gcp/eventarc/outputs.py +8 -3
  33. pulumi_gcp/eventarc/pipeline.py +0 -12
  34. pulumi_gcp/gemini/data_sharing_with_google_setting.py +58 -9
  35. pulumi_gcp/gemini/data_sharing_with_google_setting_binding.py +11 -16
  36. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +51 -2
  37. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +11 -16
  38. pulumi_gcp/gkehub/_inputs.py +84 -7
  39. pulumi_gcp/gkehub/feature.py +38 -0
  40. pulumi_gcp/gkehub/outputs.py +102 -7
  41. pulumi_gcp/gkehub/scope_rbac_role_binding.py +54 -2
  42. pulumi_gcp/gkeonprem/_inputs.py +54 -0
  43. pulumi_gcp/gkeonprem/outputs.py +49 -0
  44. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +71 -0
  45. pulumi_gcp/iam/workload_identity_pool_namespace.py +4 -4
  46. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  47. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  48. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  49. pulumi_gcp/managedkafka/connector.py +4 -4
  50. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  51. pulumi_gcp/networksecurity/backend_authentication_config.py +64 -0
  52. pulumi_gcp/orgpolicy/policy.py +2 -2
  53. pulumi_gcp/pubsub/_inputs.py +392 -0
  54. pulumi_gcp/pubsub/get_subscription.py +12 -1
  55. pulumi_gcp/pubsub/get_topic.py +12 -1
  56. pulumi_gcp/pubsub/outputs.py +548 -0
  57. pulumi_gcp/pubsub/subscription.py +67 -6
  58. pulumi_gcp/pubsub/topic.py +61 -0
  59. pulumi_gcp/pulumi-plugin.json +1 -1
  60. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  61. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  62. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/METADATA +1 -1
  63. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/RECORD +65 -61
  64. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/WHEEL +0 -0
  65. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/top_level.txt +0 -0
@@ -122,6 +122,8 @@ __all__ = [
122
122
  'FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigArgsDict',
123
123
  'FeatureSpecMulticlusteringressArgs',
124
124
  'FeatureSpecMulticlusteringressArgsDict',
125
+ 'FeatureSpecRbacrolebindingactuationArgs',
126
+ 'FeatureSpecRbacrolebindingactuationArgsDict',
125
127
  'FeatureStateArgs',
126
128
  'FeatureStateArgsDict',
127
129
  'FeatureStateStateArgs',
@@ -3771,6 +3773,11 @@ if not MYPY:
3771
3773
  Multicluster Ingress-specific spec.
3772
3774
  Structure is documented below.
3773
3775
  """
3776
+ rbacrolebindingactuation: NotRequired[pulumi.Input['FeatureSpecRbacrolebindingactuationArgsDict']]
3777
+ """
3778
+ RBACRolebinding Actuation feature spec.
3779
+ Structure is documented below.
3780
+ """
3774
3781
  elif False:
3775
3782
  FeatureSpecArgsDict: TypeAlias = Mapping[str, Any]
3776
3783
 
@@ -3779,7 +3786,8 @@ class FeatureSpecArgs:
3779
3786
  def __init__(__self__, *,
3780
3787
  clusterupgrade: Optional[pulumi.Input['FeatureSpecClusterupgradeArgs']] = None,
3781
3788
  fleetobservability: Optional[pulumi.Input['FeatureSpecFleetobservabilityArgs']] = None,
3782
- multiclusteringress: Optional[pulumi.Input['FeatureSpecMulticlusteringressArgs']] = None):
3789
+ multiclusteringress: Optional[pulumi.Input['FeatureSpecMulticlusteringressArgs']] = None,
3790
+ rbacrolebindingactuation: Optional[pulumi.Input['FeatureSpecRbacrolebindingactuationArgs']] = None):
3783
3791
  """
3784
3792
  :param pulumi.Input['FeatureSpecClusterupgradeArgs'] clusterupgrade: Clusterupgrade feature spec.
3785
3793
  Structure is documented below.
@@ -3787,6 +3795,8 @@ class FeatureSpecArgs:
3787
3795
  Structure is documented below.
3788
3796
  :param pulumi.Input['FeatureSpecMulticlusteringressArgs'] multiclusteringress: Multicluster Ingress-specific spec.
3789
3797
  Structure is documented below.
3798
+ :param pulumi.Input['FeatureSpecRbacrolebindingactuationArgs'] rbacrolebindingactuation: RBACRolebinding Actuation feature spec.
3799
+ Structure is documented below.
3790
3800
  """
3791
3801
  if clusterupgrade is not None:
3792
3802
  pulumi.set(__self__, "clusterupgrade", clusterupgrade)
@@ -3794,6 +3804,8 @@ class FeatureSpecArgs:
3794
3804
  pulumi.set(__self__, "fleetobservability", fleetobservability)
3795
3805
  if multiclusteringress is not None:
3796
3806
  pulumi.set(__self__, "multiclusteringress", multiclusteringress)
3807
+ if rbacrolebindingactuation is not None:
3808
+ pulumi.set(__self__, "rbacrolebindingactuation", rbacrolebindingactuation)
3797
3809
 
3798
3810
  @property
3799
3811
  @pulumi.getter
@@ -3834,6 +3846,19 @@ class FeatureSpecArgs:
3834
3846
  def multiclusteringress(self, value: Optional[pulumi.Input['FeatureSpecMulticlusteringressArgs']]):
3835
3847
  pulumi.set(self, "multiclusteringress", value)
3836
3848
 
3849
+ @property
3850
+ @pulumi.getter
3851
+ def rbacrolebindingactuation(self) -> Optional[pulumi.Input['FeatureSpecRbacrolebindingactuationArgs']]:
3852
+ """
3853
+ RBACRolebinding Actuation feature spec.
3854
+ Structure is documented below.
3855
+ """
3856
+ return pulumi.get(self, "rbacrolebindingactuation")
3857
+
3858
+ @rbacrolebindingactuation.setter
3859
+ def rbacrolebindingactuation(self, value: Optional[pulumi.Input['FeatureSpecRbacrolebindingactuationArgs']]):
3860
+ pulumi.set(self, "rbacrolebindingactuation", value)
3861
+
3837
3862
 
3838
3863
  if not MYPY:
3839
3864
  class FeatureSpecClusterupgradeArgsDict(TypedDict):
@@ -4274,6 +4299,38 @@ class FeatureSpecMulticlusteringressArgs:
4274
4299
  pulumi.set(self, "config_membership", value)
4275
4300
 
4276
4301
 
4302
+ if not MYPY:
4303
+ class FeatureSpecRbacrolebindingactuationArgsDict(TypedDict):
4304
+ allowed_custom_roles: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
4305
+ """
4306
+ The list of allowed custom roles (ClusterRoles). If a custom role is not part of this list, it cannot be used in a fleet scope RBACRoleBinding. If a custom role in this list is in use, it cannot be removed from the list until the scope RBACRolebindings using it are deleted.
4307
+ """
4308
+ elif False:
4309
+ FeatureSpecRbacrolebindingactuationArgsDict: TypeAlias = Mapping[str, Any]
4310
+
4311
+ @pulumi.input_type
4312
+ class FeatureSpecRbacrolebindingactuationArgs:
4313
+ def __init__(__self__, *,
4314
+ allowed_custom_roles: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
4315
+ """
4316
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allowed_custom_roles: The list of allowed custom roles (ClusterRoles). If a custom role is not part of this list, it cannot be used in a fleet scope RBACRoleBinding. If a custom role in this list is in use, it cannot be removed from the list until the scope RBACRolebindings using it are deleted.
4317
+ """
4318
+ if allowed_custom_roles is not None:
4319
+ pulumi.set(__self__, "allowed_custom_roles", allowed_custom_roles)
4320
+
4321
+ @property
4322
+ @pulumi.getter(name="allowedCustomRoles")
4323
+ def allowed_custom_roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
4324
+ """
4325
+ The list of allowed custom roles (ClusterRoles). If a custom role is not part of this list, it cannot be used in a fleet scope RBACRoleBinding. If a custom role in this list is in use, it cannot be removed from the list until the scope RBACRolebindings using it are deleted.
4326
+ """
4327
+ return pulumi.get(self, "allowed_custom_roles")
4328
+
4329
+ @allowed_custom_roles.setter
4330
+ def allowed_custom_roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
4331
+ pulumi.set(self, "allowed_custom_roles", value)
4332
+
4333
+
4277
4334
  if not MYPY:
4278
4335
  class FeatureStateArgsDict(TypedDict):
4279
4336
  states: NotRequired[pulumi.Input[Sequence[pulumi.Input['FeatureStateStateArgsDict']]]]
@@ -5054,12 +5111,16 @@ class ScopeIamMemberConditionArgs:
5054
5111
 
5055
5112
  if not MYPY:
5056
5113
  class ScopeRbacRoleBindingRoleArgsDict(TypedDict):
5114
+ custom_role: NotRequired[pulumi.Input[builtins.str]]
5115
+ """
5116
+ CustomRole is the custom Kubernetes ClusterRole to be used. The custom role format must be allowlisted in the rbacrolebindingactuation feature and RFC 1123 compliant.
5117
+
5118
+ - - -
5119
+ """
5057
5120
  predefined_role: NotRequired[pulumi.Input[builtins.str]]
5058
5121
  """
5059
5122
  PredefinedRole is an ENUM representation of the default Kubernetes Roles
5060
5123
  Possible values are: `UNKNOWN`, `ADMIN`, `EDIT`, `VIEW`.
5061
-
5062
- - - -
5063
5124
  """
5064
5125
  elif False:
5065
5126
  ScopeRbacRoleBindingRoleArgsDict: TypeAlias = Mapping[str, Any]
@@ -5067,24 +5128,40 @@ elif False:
5067
5128
  @pulumi.input_type
5068
5129
  class ScopeRbacRoleBindingRoleArgs:
5069
5130
  def __init__(__self__, *,
5131
+ custom_role: Optional[pulumi.Input[builtins.str]] = None,
5070
5132
  predefined_role: Optional[pulumi.Input[builtins.str]] = None):
5071
5133
  """
5072
- :param pulumi.Input[builtins.str] predefined_role: PredefinedRole is an ENUM representation of the default Kubernetes Roles
5073
- Possible values are: `UNKNOWN`, `ADMIN`, `EDIT`, `VIEW`.
5134
+ :param pulumi.Input[builtins.str] custom_role: CustomRole is the custom Kubernetes ClusterRole to be used. The custom role format must be allowlisted in the rbacrolebindingactuation feature and RFC 1123 compliant.
5074
5135
 
5075
5136
  - - -
5137
+ :param pulumi.Input[builtins.str] predefined_role: PredefinedRole is an ENUM representation of the default Kubernetes Roles
5138
+ Possible values are: `UNKNOWN`, `ADMIN`, `EDIT`, `VIEW`.
5076
5139
  """
5140
+ if custom_role is not None:
5141
+ pulumi.set(__self__, "custom_role", custom_role)
5077
5142
  if predefined_role is not None:
5078
5143
  pulumi.set(__self__, "predefined_role", predefined_role)
5079
5144
 
5145
+ @property
5146
+ @pulumi.getter(name="customRole")
5147
+ def custom_role(self) -> Optional[pulumi.Input[builtins.str]]:
5148
+ """
5149
+ CustomRole is the custom Kubernetes ClusterRole to be used. The custom role format must be allowlisted in the rbacrolebindingactuation feature and RFC 1123 compliant.
5150
+
5151
+ - - -
5152
+ """
5153
+ return pulumi.get(self, "custom_role")
5154
+
5155
+ @custom_role.setter
5156
+ def custom_role(self, value: Optional[pulumi.Input[builtins.str]]):
5157
+ pulumi.set(self, "custom_role", value)
5158
+
5080
5159
  @property
5081
5160
  @pulumi.getter(name="predefinedRole")
5082
5161
  def predefined_role(self) -> Optional[pulumi.Input[builtins.str]]:
5083
5162
  """
5084
5163
  PredefinedRole is an ENUM representation of the default Kubernetes Roles
5085
5164
  Possible values are: `UNKNOWN`, `ADMIN`, `EDIT`, `VIEW`.
5086
-
5087
- - - -
5088
5165
  """
5089
5166
  return pulumi.get(self, "predefined_role")
5090
5167
 
@@ -691,6 +691,25 @@ class Feature(pulumi.CustomResource):
691
691
  },
692
692
  })
693
693
  ```
694
+ ### Gkehub Feature Rbacrolebinding Actuation
695
+
696
+ ```python
697
+ import pulumi
698
+ import pulumi_gcp as gcp
699
+
700
+ feature = gcp.gkehub.Feature("feature",
701
+ name="rbacrolebindingactuation",
702
+ location="global",
703
+ spec={
704
+ "rbacrolebindingactuation": {
705
+ "allowed_custom_roles": [
706
+ "custom-role1",
707
+ "custom-role2",
708
+ "custom-role3",
709
+ ],
710
+ },
711
+ })
712
+ ```
694
713
 
695
714
  ## Import
696
715
 
@@ -1037,6 +1056,25 @@ class Feature(pulumi.CustomResource):
1037
1056
  },
1038
1057
  })
1039
1058
  ```
1059
+ ### Gkehub Feature Rbacrolebinding Actuation
1060
+
1061
+ ```python
1062
+ import pulumi
1063
+ import pulumi_gcp as gcp
1064
+
1065
+ feature = gcp.gkehub.Feature("feature",
1066
+ name="rbacrolebindingactuation",
1067
+ location="global",
1068
+ spec={
1069
+ "rbacrolebindingactuation": {
1070
+ "allowed_custom_roles": [
1071
+ "custom-role1",
1072
+ "custom-role2",
1073
+ "custom-role3",
1074
+ ],
1075
+ },
1076
+ })
1077
+ ```
1040
1078
 
1041
1079
  ## Import
1042
1080
 
@@ -70,6 +70,7 @@ __all__ = [
70
70
  'FeatureSpecFleetobservabilityLoggingConfigDefaultConfig',
71
71
  'FeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfig',
72
72
  'FeatureSpecMulticlusteringress',
73
+ 'FeatureSpecRbacrolebindingactuation',
73
74
  'FeatureState',
74
75
  'FeatureStateState',
75
76
  'FleetDefaultClusterConfig',
@@ -120,6 +121,7 @@ __all__ = [
120
121
  'GetFeatureSpecFleetobservabilityLoggingConfigDefaultConfigResult',
121
122
  'GetFeatureSpecFleetobservabilityLoggingConfigFleetScopeLogsConfigResult',
122
123
  'GetFeatureSpecMulticlusteringressResult',
124
+ 'GetFeatureSpecRbacrolebindingactuationResult',
123
125
  'GetFeatureStateResult',
124
126
  'GetFeatureStateStateResult',
125
127
  'GetMembershipAuthorityResult',
@@ -2813,7 +2815,8 @@ class FeatureSpec(dict):
2813
2815
  def __init__(__self__, *,
2814
2816
  clusterupgrade: Optional['outputs.FeatureSpecClusterupgrade'] = None,
2815
2817
  fleetobservability: Optional['outputs.FeatureSpecFleetobservability'] = None,
2816
- multiclusteringress: Optional['outputs.FeatureSpecMulticlusteringress'] = None):
2818
+ multiclusteringress: Optional['outputs.FeatureSpecMulticlusteringress'] = None,
2819
+ rbacrolebindingactuation: Optional['outputs.FeatureSpecRbacrolebindingactuation'] = None):
2817
2820
  """
2818
2821
  :param 'FeatureSpecClusterupgradeArgs' clusterupgrade: Clusterupgrade feature spec.
2819
2822
  Structure is documented below.
@@ -2821,6 +2824,8 @@ class FeatureSpec(dict):
2821
2824
  Structure is documented below.
2822
2825
  :param 'FeatureSpecMulticlusteringressArgs' multiclusteringress: Multicluster Ingress-specific spec.
2823
2826
  Structure is documented below.
2827
+ :param 'FeatureSpecRbacrolebindingactuationArgs' rbacrolebindingactuation: RBACRolebinding Actuation feature spec.
2828
+ Structure is documented below.
2824
2829
  """
2825
2830
  if clusterupgrade is not None:
2826
2831
  pulumi.set(__self__, "clusterupgrade", clusterupgrade)
@@ -2828,6 +2833,8 @@ class FeatureSpec(dict):
2828
2833
  pulumi.set(__self__, "fleetobservability", fleetobservability)
2829
2834
  if multiclusteringress is not None:
2830
2835
  pulumi.set(__self__, "multiclusteringress", multiclusteringress)
2836
+ if rbacrolebindingactuation is not None:
2837
+ pulumi.set(__self__, "rbacrolebindingactuation", rbacrolebindingactuation)
2831
2838
 
2832
2839
  @property
2833
2840
  @pulumi.getter
@@ -2856,6 +2863,15 @@ class FeatureSpec(dict):
2856
2863
  """
2857
2864
  return pulumi.get(self, "multiclusteringress")
2858
2865
 
2866
+ @property
2867
+ @pulumi.getter
2868
+ def rbacrolebindingactuation(self) -> Optional['outputs.FeatureSpecRbacrolebindingactuation']:
2869
+ """
2870
+ RBACRolebinding Actuation feature spec.
2871
+ Structure is documented below.
2872
+ """
2873
+ return pulumi.get(self, "rbacrolebindingactuation")
2874
+
2859
2875
 
2860
2876
  @pulumi.output_type
2861
2877
  class FeatureSpecClusterupgrade(dict):
@@ -3208,6 +3224,42 @@ class FeatureSpecMulticlusteringress(dict):
3208
3224
  return pulumi.get(self, "config_membership")
3209
3225
 
3210
3226
 
3227
+ @pulumi.output_type
3228
+ class FeatureSpecRbacrolebindingactuation(dict):
3229
+ @staticmethod
3230
+ def __key_warning(key: str):
3231
+ suggest = None
3232
+ if key == "allowedCustomRoles":
3233
+ suggest = "allowed_custom_roles"
3234
+
3235
+ if suggest:
3236
+ pulumi.log.warn(f"Key '{key}' not found in FeatureSpecRbacrolebindingactuation. Access the value via the '{suggest}' property getter instead.")
3237
+
3238
+ def __getitem__(self, key: str) -> Any:
3239
+ FeatureSpecRbacrolebindingactuation.__key_warning(key)
3240
+ return super().__getitem__(key)
3241
+
3242
+ def get(self, key: str, default = None) -> Any:
3243
+ FeatureSpecRbacrolebindingactuation.__key_warning(key)
3244
+ return super().get(key, default)
3245
+
3246
+ def __init__(__self__, *,
3247
+ allowed_custom_roles: Optional[Sequence[builtins.str]] = None):
3248
+ """
3249
+ :param Sequence[builtins.str] allowed_custom_roles: The list of allowed custom roles (ClusterRoles). If a custom role is not part of this list, it cannot be used in a fleet scope RBACRoleBinding. If a custom role in this list is in use, it cannot be removed from the list until the scope RBACRolebindings using it are deleted.
3250
+ """
3251
+ if allowed_custom_roles is not None:
3252
+ pulumi.set(__self__, "allowed_custom_roles", allowed_custom_roles)
3253
+
3254
+ @property
3255
+ @pulumi.getter(name="allowedCustomRoles")
3256
+ def allowed_custom_roles(self) -> Optional[Sequence[builtins.str]]:
3257
+ """
3258
+ The list of allowed custom roles (ClusterRoles). If a custom role is not part of this list, it cannot be used in a fleet scope RBACRoleBinding. If a custom role in this list is in use, it cannot be removed from the list until the scope RBACRolebindings using it are deleted.
3259
+ """
3260
+ return pulumi.get(self, "allowed_custom_roles")
3261
+
3262
+
3211
3263
  @pulumi.output_type
3212
3264
  class FeatureState(dict):
3213
3265
  def __init__(__self__, *,
@@ -3797,7 +3849,9 @@ class ScopeRbacRoleBindingRole(dict):
3797
3849
  @staticmethod
3798
3850
  def __key_warning(key: str):
3799
3851
  suggest = None
3800
- if key == "predefinedRole":
3852
+ if key == "customRole":
3853
+ suggest = "custom_role"
3854
+ elif key == "predefinedRole":
3801
3855
  suggest = "predefined_role"
3802
3856
 
3803
3857
  if suggest:
@@ -3812,24 +3866,36 @@ class ScopeRbacRoleBindingRole(dict):
3812
3866
  return super().get(key, default)
3813
3867
 
3814
3868
  def __init__(__self__, *,
3869
+ custom_role: Optional[builtins.str] = None,
3815
3870
  predefined_role: Optional[builtins.str] = None):
3816
3871
  """
3817
- :param builtins.str predefined_role: PredefinedRole is an ENUM representation of the default Kubernetes Roles
3818
- Possible values are: `UNKNOWN`, `ADMIN`, `EDIT`, `VIEW`.
3872
+ :param builtins.str custom_role: CustomRole is the custom Kubernetes ClusterRole to be used. The custom role format must be allowlisted in the rbacrolebindingactuation feature and RFC 1123 compliant.
3819
3873
 
3820
3874
  - - -
3875
+ :param builtins.str predefined_role: PredefinedRole is an ENUM representation of the default Kubernetes Roles
3876
+ Possible values are: `UNKNOWN`, `ADMIN`, `EDIT`, `VIEW`.
3821
3877
  """
3878
+ if custom_role is not None:
3879
+ pulumi.set(__self__, "custom_role", custom_role)
3822
3880
  if predefined_role is not None:
3823
3881
  pulumi.set(__self__, "predefined_role", predefined_role)
3824
3882
 
3883
+ @property
3884
+ @pulumi.getter(name="customRole")
3885
+ def custom_role(self) -> Optional[builtins.str]:
3886
+ """
3887
+ CustomRole is the custom Kubernetes ClusterRole to be used. The custom role format must be allowlisted in the rbacrolebindingactuation feature and RFC 1123 compliant.
3888
+
3889
+ - - -
3890
+ """
3891
+ return pulumi.get(self, "custom_role")
3892
+
3825
3893
  @property
3826
3894
  @pulumi.getter(name="predefinedRole")
3827
3895
  def predefined_role(self) -> Optional[builtins.str]:
3828
3896
  """
3829
3897
  PredefinedRole is an ENUM representation of the default Kubernetes Roles
3830
3898
  Possible values are: `UNKNOWN`, `ADMIN`, `EDIT`, `VIEW`.
3831
-
3832
- - - -
3833
3899
  """
3834
3900
  return pulumi.get(self, "predefined_role")
3835
3901
 
@@ -4681,15 +4747,18 @@ class GetFeatureSpecResult(dict):
4681
4747
  def __init__(__self__, *,
4682
4748
  clusterupgrades: Sequence['outputs.GetFeatureSpecClusterupgradeResult'],
4683
4749
  fleetobservabilities: Sequence['outputs.GetFeatureSpecFleetobservabilityResult'],
4684
- multiclusteringresses: Sequence['outputs.GetFeatureSpecMulticlusteringressResult']):
4750
+ multiclusteringresses: Sequence['outputs.GetFeatureSpecMulticlusteringressResult'],
4751
+ rbacrolebindingactuations: Sequence['outputs.GetFeatureSpecRbacrolebindingactuationResult']):
4685
4752
  """
4686
4753
  :param Sequence['GetFeatureSpecClusterupgradeArgs'] clusterupgrades: Clusterupgrade feature spec.
4687
4754
  :param Sequence['GetFeatureSpecFleetobservabilityArgs'] fleetobservabilities: Fleet Observability feature spec.
4688
4755
  :param Sequence['GetFeatureSpecMulticlusteringressArgs'] multiclusteringresses: Multicluster Ingress-specific spec.
4756
+ :param Sequence['GetFeatureSpecRbacrolebindingactuationArgs'] rbacrolebindingactuations: RBACRolebinding Actuation feature spec.
4689
4757
  """
4690
4758
  pulumi.set(__self__, "clusterupgrades", clusterupgrades)
4691
4759
  pulumi.set(__self__, "fleetobservabilities", fleetobservabilities)
4692
4760
  pulumi.set(__self__, "multiclusteringresses", multiclusteringresses)
4761
+ pulumi.set(__self__, "rbacrolebindingactuations", rbacrolebindingactuations)
4693
4762
 
4694
4763
  @property
4695
4764
  @pulumi.getter
@@ -4715,6 +4784,14 @@ class GetFeatureSpecResult(dict):
4715
4784
  """
4716
4785
  return pulumi.get(self, "multiclusteringresses")
4717
4786
 
4787
+ @property
4788
+ @pulumi.getter
4789
+ def rbacrolebindingactuations(self) -> Sequence['outputs.GetFeatureSpecRbacrolebindingactuationResult']:
4790
+ """
4791
+ RBACRolebinding Actuation feature spec.
4792
+ """
4793
+ return pulumi.get(self, "rbacrolebindingactuations")
4794
+
4718
4795
 
4719
4796
  @pulumi.output_type
4720
4797
  class GetFeatureSpecClusterupgradeResult(dict):
@@ -4951,6 +5028,24 @@ class GetFeatureSpecMulticlusteringressResult(dict):
4951
5028
  return pulumi.get(self, "config_membership")
4952
5029
 
4953
5030
 
5031
+ @pulumi.output_type
5032
+ class GetFeatureSpecRbacrolebindingactuationResult(dict):
5033
+ def __init__(__self__, *,
5034
+ allowed_custom_roles: Sequence[builtins.str]):
5035
+ """
5036
+ :param Sequence[builtins.str] allowed_custom_roles: The list of allowed custom roles (ClusterRoles). If a custom role is not part of this list, it cannot be used in a fleet scope RBACRoleBinding. If a custom role in this list is in use, it cannot be removed from the list until the scope RBACRolebindings using it are deleted.
5037
+ """
5038
+ pulumi.set(__self__, "allowed_custom_roles", allowed_custom_roles)
5039
+
5040
+ @property
5041
+ @pulumi.getter(name="allowedCustomRoles")
5042
+ def allowed_custom_roles(self) -> Sequence[builtins.str]:
5043
+ """
5044
+ The list of allowed custom roles (ClusterRoles). If a custom role is not part of this list, it cannot be used in a fleet scope RBACRoleBinding. If a custom role in this list is in use, it cannot be removed from the list until the scope RBACRolebindings using it are deleted.
5045
+ """
5046
+ return pulumi.get(self, "allowed_custom_roles")
5047
+
5048
+
4954
5049
  @pulumi.output_type
4955
5050
  class GetFeatureStateResult(dict):
4956
5051
  def __init__(__self__, *,
@@ -439,10 +439,36 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
439
439
  role={
440
440
  "predefined_role": "ADMIN",
441
441
  },
442
+ labels={
443
+ "key": "value",
444
+ })
445
+ ```
446
+ ### Gkehub Scope Rbac Custom Role Binding Basic
447
+
448
+ ```python
449
+ import pulumi
450
+ import pulumi_gcp as gcp
451
+
452
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_13293")
453
+ rbacrolebindingactuation = gcp.gkehub.Feature("rbacrolebindingactuation",
454
+ name="rbacrolebindingactuation",
455
+ location="global",
456
+ spec={
457
+ "rbacrolebindingactuation": {
458
+ "allowed_custom_roles": ["my-custom-role"],
459
+ },
460
+ })
461
+ scope_rbac_role_binding = gcp.gkehub.ScopeRbacRoleBinding("scope_rbac_role_binding",
462
+ scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_40289",
463
+ scope_id=scope.scope_id,
464
+ user="test-email@gmail.com",
465
+ role={
466
+ "custom_role": "my-custom-role",
467
+ },
442
468
  labels={
443
469
  "key": "value",
444
470
  },
445
- opts = pulumi.ResourceOptions(depends_on=[scope]))
471
+ opts = pulumi.ResourceOptions(depends_on=[rbacrolebindingactuation]))
446
472
  ```
447
473
 
448
474
  ## Import
@@ -514,10 +540,36 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
514
540
  role={
515
541
  "predefined_role": "ADMIN",
516
542
  },
543
+ labels={
544
+ "key": "value",
545
+ })
546
+ ```
547
+ ### Gkehub Scope Rbac Custom Role Binding Basic
548
+
549
+ ```python
550
+ import pulumi
551
+ import pulumi_gcp as gcp
552
+
553
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_13293")
554
+ rbacrolebindingactuation = gcp.gkehub.Feature("rbacrolebindingactuation",
555
+ name="rbacrolebindingactuation",
556
+ location="global",
557
+ spec={
558
+ "rbacrolebindingactuation": {
559
+ "allowed_custom_roles": ["my-custom-role"],
560
+ },
561
+ })
562
+ scope_rbac_role_binding = gcp.gkehub.ScopeRbacRoleBinding("scope_rbac_role_binding",
563
+ scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_40289",
564
+ scope_id=scope.scope_id,
565
+ user="test-email@gmail.com",
566
+ role={
567
+ "custom_role": "my-custom-role",
568
+ },
517
569
  labels={
518
570
  "key": "value",
519
571
  },
520
- opts = pulumi.ResourceOptions(depends_on=[scope]))
572
+ opts = pulumi.ResourceOptions(depends_on=[rbacrolebindingactuation]))
521
573
  ```
522
574
 
523
575
  ## Import
@@ -318,6 +318,8 @@ __all__ = [
318
318
  'VmwareAdminClusterPlatformConfigStatusArgsDict',
319
319
  'VmwareAdminClusterPlatformConfigStatusConditionArgs',
320
320
  'VmwareAdminClusterPlatformConfigStatusConditionArgsDict',
321
+ 'VmwareAdminClusterPrivateRegistryConfigArgs',
322
+ 'VmwareAdminClusterPrivateRegistryConfigArgsDict',
321
323
  'VmwareAdminClusterStatusArgs',
322
324
  'VmwareAdminClusterStatusArgsDict',
323
325
  'VmwareAdminClusterStatusConditionArgs',
@@ -10642,6 +10644,58 @@ class VmwareAdminClusterPlatformConfigStatusConditionArgs:
10642
10644
  pulumi.set(self, "type", value)
10643
10645
 
10644
10646
 
10647
+ if not MYPY:
10648
+ class VmwareAdminClusterPrivateRegistryConfigArgsDict(TypedDict):
10649
+ address: NotRequired[pulumi.Input[builtins.str]]
10650
+ """
10651
+ The registry address.
10652
+ """
10653
+ ca_cert: NotRequired[pulumi.Input[builtins.str]]
10654
+ """
10655
+ The CA certificate public key for private registry.
10656
+ """
10657
+ elif False:
10658
+ VmwareAdminClusterPrivateRegistryConfigArgsDict: TypeAlias = Mapping[str, Any]
10659
+
10660
+ @pulumi.input_type
10661
+ class VmwareAdminClusterPrivateRegistryConfigArgs:
10662
+ def __init__(__self__, *,
10663
+ address: Optional[pulumi.Input[builtins.str]] = None,
10664
+ ca_cert: Optional[pulumi.Input[builtins.str]] = None):
10665
+ """
10666
+ :param pulumi.Input[builtins.str] address: The registry address.
10667
+ :param pulumi.Input[builtins.str] ca_cert: The CA certificate public key for private registry.
10668
+ """
10669
+ if address is not None:
10670
+ pulumi.set(__self__, "address", address)
10671
+ if ca_cert is not None:
10672
+ pulumi.set(__self__, "ca_cert", ca_cert)
10673
+
10674
+ @property
10675
+ @pulumi.getter
10676
+ def address(self) -> Optional[pulumi.Input[builtins.str]]:
10677
+ """
10678
+ The registry address.
10679
+ """
10680
+ return pulumi.get(self, "address")
10681
+
10682
+ @address.setter
10683
+ def address(self, value: Optional[pulumi.Input[builtins.str]]):
10684
+ pulumi.set(self, "address", value)
10685
+
10686
+ @property
10687
+ @pulumi.getter(name="caCert")
10688
+ def ca_cert(self) -> Optional[pulumi.Input[builtins.str]]:
10689
+ """
10690
+ The CA certificate public key for private registry.
10691
+ """
10692
+ return pulumi.get(self, "ca_cert")
10693
+
10694
+ @ca_cert.setter
10695
+ def ca_cert(self, value: Optional[pulumi.Input[builtins.str]]):
10696
+ pulumi.set(self, "ca_cert", value)
10697
+
10698
+
10645
10699
  if not MYPY:
10646
10700
  class VmwareAdminClusterStatusArgsDict(TypedDict):
10647
10701
  conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['VmwareAdminClusterStatusConditionArgsDict']]]]
@@ -168,6 +168,7 @@ __all__ = [
168
168
  'VmwareAdminClusterPlatformConfigBundleStatusCondition',
169
169
  'VmwareAdminClusterPlatformConfigStatus',
170
170
  'VmwareAdminClusterPlatformConfigStatusCondition',
171
+ 'VmwareAdminClusterPrivateRegistryConfig',
171
172
  'VmwareAdminClusterStatus',
172
173
  'VmwareAdminClusterStatusCondition',
173
174
  'VmwareAdminClusterVcenter',
@@ -8254,6 +8255,54 @@ class VmwareAdminClusterPlatformConfigStatusCondition(dict):
8254
8255
  return pulumi.get(self, "type")
8255
8256
 
8256
8257
 
8258
+ @pulumi.output_type
8259
+ class VmwareAdminClusterPrivateRegistryConfig(dict):
8260
+ @staticmethod
8261
+ def __key_warning(key: str):
8262
+ suggest = None
8263
+ if key == "caCert":
8264
+ suggest = "ca_cert"
8265
+
8266
+ if suggest:
8267
+ pulumi.log.warn(f"Key '{key}' not found in VmwareAdminClusterPrivateRegistryConfig. Access the value via the '{suggest}' property getter instead.")
8268
+
8269
+ def __getitem__(self, key: str) -> Any:
8270
+ VmwareAdminClusterPrivateRegistryConfig.__key_warning(key)
8271
+ return super().__getitem__(key)
8272
+
8273
+ def get(self, key: str, default = None) -> Any:
8274
+ VmwareAdminClusterPrivateRegistryConfig.__key_warning(key)
8275
+ return super().get(key, default)
8276
+
8277
+ def __init__(__self__, *,
8278
+ address: Optional[builtins.str] = None,
8279
+ ca_cert: Optional[builtins.str] = None):
8280
+ """
8281
+ :param builtins.str address: The registry address.
8282
+ :param builtins.str ca_cert: The CA certificate public key for private registry.
8283
+ """
8284
+ if address is not None:
8285
+ pulumi.set(__self__, "address", address)
8286
+ if ca_cert is not None:
8287
+ pulumi.set(__self__, "ca_cert", ca_cert)
8288
+
8289
+ @property
8290
+ @pulumi.getter
8291
+ def address(self) -> Optional[builtins.str]:
8292
+ """
8293
+ The registry address.
8294
+ """
8295
+ return pulumi.get(self, "address")
8296
+
8297
+ @property
8298
+ @pulumi.getter(name="caCert")
8299
+ def ca_cert(self) -> Optional[builtins.str]:
8300
+ """
8301
+ The CA certificate public key for private registry.
8302
+ """
8303
+ return pulumi.get(self, "ca_cert")
8304
+
8305
+
8257
8306
  @pulumi.output_type
8258
8307
  class VmwareAdminClusterStatus(dict):
8259
8308
  @staticmethod