cdktf-cdktf-provider-upcloud 15.8.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.
Files changed (66) hide show
  1. cdktf_cdktf_provider_upcloud/__init__.py +247 -0
  2. cdktf_cdktf_provider_upcloud/_jsii/__init__.py +45 -0
  3. cdktf_cdktf_provider_upcloud/_jsii/provider-upcloud@15.8.0.jsii.tgz +0 -0
  4. cdktf_cdktf_provider_upcloud/data_upcloud_hosts/__init__.py +894 -0
  5. cdktf_cdktf_provider_upcloud/data_upcloud_ip_addresses/__init__.py +633 -0
  6. cdktf_cdktf_provider_upcloud/data_upcloud_kubernetes_cluster/__init__.py +384 -0
  7. cdktf_cdktf_provider_upcloud/data_upcloud_load_balancer_dns_challenge_domain/__init__.py +319 -0
  8. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_mysql_sessions/__init__.py +853 -0
  9. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_opensearch_indices/__init__.py +717 -0
  10. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_postgresql_sessions/__init__.py +1084 -0
  11. cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_valkey_sessions/__init__.py +898 -0
  12. cdktf_cdktf_provider_upcloud/data_upcloud_managed_object_storage_policies/__init__.py +647 -0
  13. cdktf_cdktf_provider_upcloud/data_upcloud_managed_object_storage_regions/__init__.py +600 -0
  14. cdktf_cdktf_provider_upcloud/data_upcloud_networks/__init__.py +1093 -0
  15. cdktf_cdktf_provider_upcloud/data_upcloud_storage/__init__.py +725 -0
  16. cdktf_cdktf_provider_upcloud/data_upcloud_tags/__init__.py +558 -0
  17. cdktf_cdktf_provider_upcloud/data_upcloud_zone/__init__.py +421 -0
  18. cdktf_cdktf_provider_upcloud/data_upcloud_zones/__init__.py +364 -0
  19. cdktf_cdktf_provider_upcloud/file_storage/__init__.py +1683 -0
  20. cdktf_cdktf_provider_upcloud/firewall_rules/__init__.py +1233 -0
  21. cdktf_cdktf_provider_upcloud/floating_ip_address/__init__.py +552 -0
  22. cdktf_cdktf_provider_upcloud/gateway/__init__.py +1167 -0
  23. cdktf_cdktf_provider_upcloud/gateway_connection/__init__.py +1299 -0
  24. cdktf_cdktf_provider_upcloud/gateway_connection_tunnel/__init__.py +1357 -0
  25. cdktf_cdktf_provider_upcloud/kubernetes_cluster/__init__.py +801 -0
  26. cdktf_cdktf_provider_upcloud/kubernetes_node_group/__init__.py +2674 -0
  27. cdktf_cdktf_provider_upcloud/loadbalancer/__init__.py +2113 -0
  28. cdktf_cdktf_provider_upcloud/loadbalancer_backend/__init__.py +1426 -0
  29. cdktf_cdktf_provider_upcloud/loadbalancer_backend_tls_config/__init__.py +442 -0
  30. cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_backend_member/__init__.py +633 -0
  31. cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_certificate_bundle/__init__.py +459 -0
  32. cdktf_cdktf_provider_upcloud/loadbalancer_frontend/__init__.py +1290 -0
  33. cdktf_cdktf_provider_upcloud/loadbalancer_frontend_rule/__init__.py +11486 -0
  34. cdktf_cdktf_provider_upcloud/loadbalancer_frontend_tls_config/__init__.py +442 -0
  35. cdktf_cdktf_provider_upcloud/loadbalancer_manual_certificate_bundle/__init__.py +504 -0
  36. cdktf_cdktf_provider_upcloud/loadbalancer_resolver/__init__.py +659 -0
  37. cdktf_cdktf_provider_upcloud/loadbalancer_static_backend_member/__init__.py +633 -0
  38. cdktf_cdktf_provider_upcloud/managed_database_logical_database/__init__.py +536 -0
  39. cdktf_cdktf_provider_upcloud/managed_database_mysql/__init__.py +4644 -0
  40. cdktf_cdktf_provider_upcloud/managed_database_opensearch/__init__.py +13812 -0
  41. cdktf_cdktf_provider_upcloud/managed_database_postgresql/__init__.py +7734 -0
  42. cdktf_cdktf_provider_upcloud/managed_database_user/__init__.py +1541 -0
  43. cdktf_cdktf_provider_upcloud/managed_database_valkey/__init__.py +3355 -0
  44. cdktf_cdktf_provider_upcloud/managed_object_storage/__init__.py +1198 -0
  45. cdktf_cdktf_provider_upcloud/managed_object_storage_bucket/__init__.py +409 -0
  46. cdktf_cdktf_provider_upcloud/managed_object_storage_custom_domain/__init__.py +446 -0
  47. cdktf_cdktf_provider_upcloud/managed_object_storage_policy/__init__.py +521 -0
  48. cdktf_cdktf_provider_upcloud/managed_object_storage_user/__init__.py +454 -0
  49. cdktf_cdktf_provider_upcloud/managed_object_storage_user_access_key/__init__.py +505 -0
  50. cdktf_cdktf_provider_upcloud/managed_object_storage_user_policy/__init__.py +485 -0
  51. cdktf_cdktf_provider_upcloud/network/__init__.py +1554 -0
  52. cdktf_cdktf_provider_upcloud/network_peering/__init__.py +1084 -0
  53. cdktf_cdktf_provider_upcloud/provider/__init__.py +544 -0
  54. cdktf_cdktf_provider_upcloud/py.typed +1 -0
  55. cdktf_cdktf_provider_upcloud/router/__init__.py +1030 -0
  56. cdktf_cdktf_provider_upcloud/server/__init__.py +4542 -0
  57. cdktf_cdktf_provider_upcloud/server_group/__init__.py +571 -0
  58. cdktf_cdktf_provider_upcloud/storage/__init__.py +1850 -0
  59. cdktf_cdktf_provider_upcloud/storage_backup/__init__.py +483 -0
  60. cdktf_cdktf_provider_upcloud/storage_template/__init__.py +478 -0
  61. cdktf_cdktf_provider_upcloud/tag/__init__.py +493 -0
  62. cdktf_cdktf_provider_upcloud-15.8.0.dist-info/LICENSE +355 -0
  63. cdktf_cdktf_provider_upcloud-15.8.0.dist-info/METADATA +120 -0
  64. cdktf_cdktf_provider_upcloud-15.8.0.dist-info/RECORD +66 -0
  65. cdktf_cdktf_provider_upcloud-15.8.0.dist-info/WHEEL +5 -0
  66. cdktf_cdktf_provider_upcloud-15.8.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1541 @@
1
+ r'''
2
+ # `upcloud_managed_database_user`
3
+
4
+ Refer to the Terraform Registry for docs: [`upcloud_managed_database_user`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user).
5
+ '''
6
+ from pkgutil import extend_path
7
+ __path__ = extend_path(__path__, __name__)
8
+
9
+ import abc
10
+ import builtins
11
+ import datetime
12
+ import enum
13
+ import typing
14
+
15
+ import jsii
16
+ import publication
17
+ import typing_extensions
18
+
19
+ import typeguard
20
+ from importlib.metadata import version as _metadata_package_version
21
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
22
+
23
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
24
+ if TYPEGUARD_MAJOR_VERSION <= 2:
25
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
26
+ else:
27
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
28
+ pass
29
+ else:
30
+ if TYPEGUARD_MAJOR_VERSION == 3:
31
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
32
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
33
+ else:
34
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
35
+
36
+ from .._jsii import *
37
+
38
+ import cdktf as _cdktf_9a9027ec
39
+ import constructs as _constructs_77d1e7e8
40
+
41
+
42
+ class ManagedDatabaseUser(
43
+ _cdktf_9a9027ec.TerraformResource,
44
+ metaclass=jsii.JSIIMeta,
45
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUser",
46
+ ):
47
+ '''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user upcloud_managed_database_user}.'''
48
+
49
+ def __init__(
50
+ self,
51
+ scope: _constructs_77d1e7e8.Construct,
52
+ id_: builtins.str,
53
+ *,
54
+ service: builtins.str,
55
+ username: builtins.str,
56
+ authentication: typing.Optional[builtins.str] = None,
57
+ id: typing.Optional[builtins.str] = None,
58
+ opensearch_access_control: typing.Optional[typing.Union["ManagedDatabaseUserOpensearchAccessControl", typing.Dict[builtins.str, typing.Any]]] = None,
59
+ password: typing.Optional[builtins.str] = None,
60
+ pg_access_control: typing.Optional[typing.Union["ManagedDatabaseUserPgAccessControl", typing.Dict[builtins.str, typing.Any]]] = None,
61
+ valkey_access_control: typing.Optional[typing.Union["ManagedDatabaseUserValkeyAccessControl", typing.Dict[builtins.str, typing.Any]]] = None,
62
+ connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
63
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
64
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
65
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
66
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
67
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
68
+ provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
69
+ ) -> None:
70
+ '''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user upcloud_managed_database_user} Resource.
71
+
72
+ :param scope: The scope in which to define this construct.
73
+ :param id_: The scoped construct ID. Must be unique amongst siblings in the same scope
74
+ :param service: Service's UUID for which this user belongs to. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#service ManagedDatabaseUser#service}
75
+ :param username: Name of the database user. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#username ManagedDatabaseUser#username}
76
+ :param authentication: MySQL only, authentication type. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#authentication ManagedDatabaseUser#authentication}
77
+ :param id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#id ManagedDatabaseUser#id}. Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
78
+ :param opensearch_access_control: opensearch_access_control block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#opensearch_access_control ManagedDatabaseUser#opensearch_access_control}
79
+ :param password: Password for the database user. Defaults to a random value. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#password ManagedDatabaseUser#password}
80
+ :param pg_access_control: pg_access_control block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#pg_access_control ManagedDatabaseUser#pg_access_control}
81
+ :param valkey_access_control: valkey_access_control block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#valkey_access_control ManagedDatabaseUser#valkey_access_control}
82
+ :param connection:
83
+ :param count:
84
+ :param depends_on:
85
+ :param for_each:
86
+ :param lifecycle:
87
+ :param provider:
88
+ :param provisioners:
89
+ '''
90
+ if __debug__:
91
+ type_hints = typing.get_type_hints(_typecheckingstub__284705db217200be03c68231d6206d89ab6b5c942fa6aa0a91e5f854d83bc8b6)
92
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
93
+ check_type(argname="argument id_", value=id_, expected_type=type_hints["id_"])
94
+ config = ManagedDatabaseUserConfig(
95
+ service=service,
96
+ username=username,
97
+ authentication=authentication,
98
+ id=id,
99
+ opensearch_access_control=opensearch_access_control,
100
+ password=password,
101
+ pg_access_control=pg_access_control,
102
+ valkey_access_control=valkey_access_control,
103
+ connection=connection,
104
+ count=count,
105
+ depends_on=depends_on,
106
+ for_each=for_each,
107
+ lifecycle=lifecycle,
108
+ provider=provider,
109
+ provisioners=provisioners,
110
+ )
111
+
112
+ jsii.create(self.__class__, self, [scope, id_, config])
113
+
114
+ @jsii.member(jsii_name="generateConfigForImport")
115
+ @builtins.classmethod
116
+ def generate_config_for_import(
117
+ cls,
118
+ scope: _constructs_77d1e7e8.Construct,
119
+ import_to_id: builtins.str,
120
+ import_from_id: builtins.str,
121
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
122
+ ) -> _cdktf_9a9027ec.ImportableResource:
123
+ '''Generates CDKTF code for importing a ManagedDatabaseUser resource upon running "cdktf plan ".
124
+
125
+ :param scope: The scope in which to define this construct.
126
+ :param import_to_id: The construct id used in the generated config for the ManagedDatabaseUser to import.
127
+ :param import_from_id: The id of the existing ManagedDatabaseUser that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#import import section} in the documentation of this resource for the id to use
128
+ :param provider: ? Optional instance of the provider where the ManagedDatabaseUser to import is found.
129
+ '''
130
+ if __debug__:
131
+ type_hints = typing.get_type_hints(_typecheckingstub__84698ed08c8aa045527016f73e9fa31bd39a927599fbe252ef22c04dc81395fa)
132
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
133
+ check_type(argname="argument import_to_id", value=import_to_id, expected_type=type_hints["import_to_id"])
134
+ check_type(argname="argument import_from_id", value=import_from_id, expected_type=type_hints["import_from_id"])
135
+ check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
136
+ return typing.cast(_cdktf_9a9027ec.ImportableResource, jsii.sinvoke(cls, "generateConfigForImport", [scope, import_to_id, import_from_id, provider]))
137
+
138
+ @jsii.member(jsii_name="putOpensearchAccessControl")
139
+ def put_opensearch_access_control(
140
+ self,
141
+ *,
142
+ rules: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ManagedDatabaseUserOpensearchAccessControlRules", typing.Dict[builtins.str, typing.Any]]]],
143
+ ) -> None:
144
+ '''
145
+ :param rules: rules block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#rules ManagedDatabaseUser#rules}
146
+ '''
147
+ value = ManagedDatabaseUserOpensearchAccessControl(rules=rules)
148
+
149
+ return typing.cast(None, jsii.invoke(self, "putOpensearchAccessControl", [value]))
150
+
151
+ @jsii.member(jsii_name="putPgAccessControl")
152
+ def put_pg_access_control(
153
+ self,
154
+ *,
155
+ allow_replication: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
156
+ ) -> None:
157
+ '''
158
+ :param allow_replication: Grant replication privilege. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#allow_replication ManagedDatabaseUser#allow_replication}
159
+ '''
160
+ value = ManagedDatabaseUserPgAccessControl(allow_replication=allow_replication)
161
+
162
+ return typing.cast(None, jsii.invoke(self, "putPgAccessControl", [value]))
163
+
164
+ @jsii.member(jsii_name="putValkeyAccessControl")
165
+ def put_valkey_access_control(
166
+ self,
167
+ *,
168
+ categories: typing.Optional[typing.Sequence[builtins.str]] = None,
169
+ channels: typing.Optional[typing.Sequence[builtins.str]] = None,
170
+ commands: typing.Optional[typing.Sequence[builtins.str]] = None,
171
+ keys: typing.Optional[typing.Sequence[builtins.str]] = None,
172
+ ) -> None:
173
+ '''
174
+ :param categories: Set access control to all commands in specified categories. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#categories ManagedDatabaseUser#categories}
175
+ :param channels: Set access control to Pub/Sub channels. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#channels ManagedDatabaseUser#channels}
176
+ :param commands: Set access control to commands. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#commands ManagedDatabaseUser#commands}
177
+ :param keys: Set access control to keys. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#keys ManagedDatabaseUser#keys}
178
+ '''
179
+ value = ManagedDatabaseUserValkeyAccessControl(
180
+ categories=categories, channels=channels, commands=commands, keys=keys
181
+ )
182
+
183
+ return typing.cast(None, jsii.invoke(self, "putValkeyAccessControl", [value]))
184
+
185
+ @jsii.member(jsii_name="resetAuthentication")
186
+ def reset_authentication(self) -> None:
187
+ return typing.cast(None, jsii.invoke(self, "resetAuthentication", []))
188
+
189
+ @jsii.member(jsii_name="resetId")
190
+ def reset_id(self) -> None:
191
+ return typing.cast(None, jsii.invoke(self, "resetId", []))
192
+
193
+ @jsii.member(jsii_name="resetOpensearchAccessControl")
194
+ def reset_opensearch_access_control(self) -> None:
195
+ return typing.cast(None, jsii.invoke(self, "resetOpensearchAccessControl", []))
196
+
197
+ @jsii.member(jsii_name="resetPassword")
198
+ def reset_password(self) -> None:
199
+ return typing.cast(None, jsii.invoke(self, "resetPassword", []))
200
+
201
+ @jsii.member(jsii_name="resetPgAccessControl")
202
+ def reset_pg_access_control(self) -> None:
203
+ return typing.cast(None, jsii.invoke(self, "resetPgAccessControl", []))
204
+
205
+ @jsii.member(jsii_name="resetValkeyAccessControl")
206
+ def reset_valkey_access_control(self) -> None:
207
+ return typing.cast(None, jsii.invoke(self, "resetValkeyAccessControl", []))
208
+
209
+ @jsii.member(jsii_name="synthesizeAttributes")
210
+ def _synthesize_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
211
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeAttributes", []))
212
+
213
+ @jsii.member(jsii_name="synthesizeHclAttributes")
214
+ def _synthesize_hcl_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
215
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeHclAttributes", []))
216
+
217
+ @jsii.python.classproperty
218
+ @jsii.member(jsii_name="tfResourceType")
219
+ def TF_RESOURCE_TYPE(cls) -> builtins.str:
220
+ return typing.cast(builtins.str, jsii.sget(cls, "tfResourceType"))
221
+
222
+ @builtins.property
223
+ @jsii.member(jsii_name="opensearchAccessControl")
224
+ def opensearch_access_control(
225
+ self,
226
+ ) -> "ManagedDatabaseUserOpensearchAccessControlOutputReference":
227
+ return typing.cast("ManagedDatabaseUserOpensearchAccessControlOutputReference", jsii.get(self, "opensearchAccessControl"))
228
+
229
+ @builtins.property
230
+ @jsii.member(jsii_name="pgAccessControl")
231
+ def pg_access_control(self) -> "ManagedDatabaseUserPgAccessControlOutputReference":
232
+ return typing.cast("ManagedDatabaseUserPgAccessControlOutputReference", jsii.get(self, "pgAccessControl"))
233
+
234
+ @builtins.property
235
+ @jsii.member(jsii_name="type")
236
+ def type(self) -> builtins.str:
237
+ return typing.cast(builtins.str, jsii.get(self, "type"))
238
+
239
+ @builtins.property
240
+ @jsii.member(jsii_name="valkeyAccessControl")
241
+ def valkey_access_control(
242
+ self,
243
+ ) -> "ManagedDatabaseUserValkeyAccessControlOutputReference":
244
+ return typing.cast("ManagedDatabaseUserValkeyAccessControlOutputReference", jsii.get(self, "valkeyAccessControl"))
245
+
246
+ @builtins.property
247
+ @jsii.member(jsii_name="authenticationInput")
248
+ def authentication_input(self) -> typing.Optional[builtins.str]:
249
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "authenticationInput"))
250
+
251
+ @builtins.property
252
+ @jsii.member(jsii_name="idInput")
253
+ def id_input(self) -> typing.Optional[builtins.str]:
254
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "idInput"))
255
+
256
+ @builtins.property
257
+ @jsii.member(jsii_name="opensearchAccessControlInput")
258
+ def opensearch_access_control_input(
259
+ self,
260
+ ) -> typing.Optional["ManagedDatabaseUserOpensearchAccessControl"]:
261
+ return typing.cast(typing.Optional["ManagedDatabaseUserOpensearchAccessControl"], jsii.get(self, "opensearchAccessControlInput"))
262
+
263
+ @builtins.property
264
+ @jsii.member(jsii_name="passwordInput")
265
+ def password_input(self) -> typing.Optional[builtins.str]:
266
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "passwordInput"))
267
+
268
+ @builtins.property
269
+ @jsii.member(jsii_name="pgAccessControlInput")
270
+ def pg_access_control_input(
271
+ self,
272
+ ) -> typing.Optional["ManagedDatabaseUserPgAccessControl"]:
273
+ return typing.cast(typing.Optional["ManagedDatabaseUserPgAccessControl"], jsii.get(self, "pgAccessControlInput"))
274
+
275
+ @builtins.property
276
+ @jsii.member(jsii_name="serviceInput")
277
+ def service_input(self) -> typing.Optional[builtins.str]:
278
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "serviceInput"))
279
+
280
+ @builtins.property
281
+ @jsii.member(jsii_name="usernameInput")
282
+ def username_input(self) -> typing.Optional[builtins.str]:
283
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "usernameInput"))
284
+
285
+ @builtins.property
286
+ @jsii.member(jsii_name="valkeyAccessControlInput")
287
+ def valkey_access_control_input(
288
+ self,
289
+ ) -> typing.Optional["ManagedDatabaseUserValkeyAccessControl"]:
290
+ return typing.cast(typing.Optional["ManagedDatabaseUserValkeyAccessControl"], jsii.get(self, "valkeyAccessControlInput"))
291
+
292
+ @builtins.property
293
+ @jsii.member(jsii_name="authentication")
294
+ def authentication(self) -> builtins.str:
295
+ return typing.cast(builtins.str, jsii.get(self, "authentication"))
296
+
297
+ @authentication.setter
298
+ def authentication(self, value: builtins.str) -> None:
299
+ if __debug__:
300
+ type_hints = typing.get_type_hints(_typecheckingstub__b59524d6ec28e1e91e2660a7a825733751c8f6ccf1b6b7ace9eacc505d796901)
301
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
302
+ jsii.set(self, "authentication", value) # pyright: ignore[reportArgumentType]
303
+
304
+ @builtins.property
305
+ @jsii.member(jsii_name="id")
306
+ def id(self) -> builtins.str:
307
+ return typing.cast(builtins.str, jsii.get(self, "id"))
308
+
309
+ @id.setter
310
+ def id(self, value: builtins.str) -> None:
311
+ if __debug__:
312
+ type_hints = typing.get_type_hints(_typecheckingstub__279d5d1ce136b75e6c2fe00e42d73f303c19db8b2a872db680552e387797902c)
313
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
314
+ jsii.set(self, "id", value) # pyright: ignore[reportArgumentType]
315
+
316
+ @builtins.property
317
+ @jsii.member(jsii_name="password")
318
+ def password(self) -> builtins.str:
319
+ return typing.cast(builtins.str, jsii.get(self, "password"))
320
+
321
+ @password.setter
322
+ def password(self, value: builtins.str) -> None:
323
+ if __debug__:
324
+ type_hints = typing.get_type_hints(_typecheckingstub__e0bc67b2dd690e0235e63664dc77e9295886fea48c10eba2f30b039f0b5f455b)
325
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
326
+ jsii.set(self, "password", value) # pyright: ignore[reportArgumentType]
327
+
328
+ @builtins.property
329
+ @jsii.member(jsii_name="service")
330
+ def service(self) -> builtins.str:
331
+ return typing.cast(builtins.str, jsii.get(self, "service"))
332
+
333
+ @service.setter
334
+ def service(self, value: builtins.str) -> None:
335
+ if __debug__:
336
+ type_hints = typing.get_type_hints(_typecheckingstub__cb1244dc41c138e20749cc2e50d2739b25a0c3a573a7655784fe3a48e8b7c2a4)
337
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
338
+ jsii.set(self, "service", value) # pyright: ignore[reportArgumentType]
339
+
340
+ @builtins.property
341
+ @jsii.member(jsii_name="username")
342
+ def username(self) -> builtins.str:
343
+ return typing.cast(builtins.str, jsii.get(self, "username"))
344
+
345
+ @username.setter
346
+ def username(self, value: builtins.str) -> None:
347
+ if __debug__:
348
+ type_hints = typing.get_type_hints(_typecheckingstub__9047a597e672fcf3a034119577335b53b918a8ad3b654540e8d13c08a894eeb3)
349
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
350
+ jsii.set(self, "username", value) # pyright: ignore[reportArgumentType]
351
+
352
+
353
+ @jsii.data_type(
354
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUserConfig",
355
+ jsii_struct_bases=[_cdktf_9a9027ec.TerraformMetaArguments],
356
+ name_mapping={
357
+ "connection": "connection",
358
+ "count": "count",
359
+ "depends_on": "dependsOn",
360
+ "for_each": "forEach",
361
+ "lifecycle": "lifecycle",
362
+ "provider": "provider",
363
+ "provisioners": "provisioners",
364
+ "service": "service",
365
+ "username": "username",
366
+ "authentication": "authentication",
367
+ "id": "id",
368
+ "opensearch_access_control": "opensearchAccessControl",
369
+ "password": "password",
370
+ "pg_access_control": "pgAccessControl",
371
+ "valkey_access_control": "valkeyAccessControl",
372
+ },
373
+ )
374
+ class ManagedDatabaseUserConfig(_cdktf_9a9027ec.TerraformMetaArguments):
375
+ def __init__(
376
+ self,
377
+ *,
378
+ connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
379
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
380
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
381
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
382
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
383
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
384
+ provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
385
+ service: builtins.str,
386
+ username: builtins.str,
387
+ authentication: typing.Optional[builtins.str] = None,
388
+ id: typing.Optional[builtins.str] = None,
389
+ opensearch_access_control: typing.Optional[typing.Union["ManagedDatabaseUserOpensearchAccessControl", typing.Dict[builtins.str, typing.Any]]] = None,
390
+ password: typing.Optional[builtins.str] = None,
391
+ pg_access_control: typing.Optional[typing.Union["ManagedDatabaseUserPgAccessControl", typing.Dict[builtins.str, typing.Any]]] = None,
392
+ valkey_access_control: typing.Optional[typing.Union["ManagedDatabaseUserValkeyAccessControl", typing.Dict[builtins.str, typing.Any]]] = None,
393
+ ) -> None:
394
+ '''
395
+ :param connection:
396
+ :param count:
397
+ :param depends_on:
398
+ :param for_each:
399
+ :param lifecycle:
400
+ :param provider:
401
+ :param provisioners:
402
+ :param service: Service's UUID for which this user belongs to. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#service ManagedDatabaseUser#service}
403
+ :param username: Name of the database user. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#username ManagedDatabaseUser#username}
404
+ :param authentication: MySQL only, authentication type. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#authentication ManagedDatabaseUser#authentication}
405
+ :param id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#id ManagedDatabaseUser#id}. Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
406
+ :param opensearch_access_control: opensearch_access_control block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#opensearch_access_control ManagedDatabaseUser#opensearch_access_control}
407
+ :param password: Password for the database user. Defaults to a random value. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#password ManagedDatabaseUser#password}
408
+ :param pg_access_control: pg_access_control block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#pg_access_control ManagedDatabaseUser#pg_access_control}
409
+ :param valkey_access_control: valkey_access_control block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#valkey_access_control ManagedDatabaseUser#valkey_access_control}
410
+ '''
411
+ if isinstance(lifecycle, dict):
412
+ lifecycle = _cdktf_9a9027ec.TerraformResourceLifecycle(**lifecycle)
413
+ if isinstance(opensearch_access_control, dict):
414
+ opensearch_access_control = ManagedDatabaseUserOpensearchAccessControl(**opensearch_access_control)
415
+ if isinstance(pg_access_control, dict):
416
+ pg_access_control = ManagedDatabaseUserPgAccessControl(**pg_access_control)
417
+ if isinstance(valkey_access_control, dict):
418
+ valkey_access_control = ManagedDatabaseUserValkeyAccessControl(**valkey_access_control)
419
+ if __debug__:
420
+ type_hints = typing.get_type_hints(_typecheckingstub__07a7f5c785cc0e125e8ded59bfd094c26884e099fe8129734900f6faab61a108)
421
+ check_type(argname="argument connection", value=connection, expected_type=type_hints["connection"])
422
+ check_type(argname="argument count", value=count, expected_type=type_hints["count"])
423
+ check_type(argname="argument depends_on", value=depends_on, expected_type=type_hints["depends_on"])
424
+ check_type(argname="argument for_each", value=for_each, expected_type=type_hints["for_each"])
425
+ check_type(argname="argument lifecycle", value=lifecycle, expected_type=type_hints["lifecycle"])
426
+ check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
427
+ check_type(argname="argument provisioners", value=provisioners, expected_type=type_hints["provisioners"])
428
+ check_type(argname="argument service", value=service, expected_type=type_hints["service"])
429
+ check_type(argname="argument username", value=username, expected_type=type_hints["username"])
430
+ check_type(argname="argument authentication", value=authentication, expected_type=type_hints["authentication"])
431
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
432
+ check_type(argname="argument opensearch_access_control", value=opensearch_access_control, expected_type=type_hints["opensearch_access_control"])
433
+ check_type(argname="argument password", value=password, expected_type=type_hints["password"])
434
+ check_type(argname="argument pg_access_control", value=pg_access_control, expected_type=type_hints["pg_access_control"])
435
+ check_type(argname="argument valkey_access_control", value=valkey_access_control, expected_type=type_hints["valkey_access_control"])
436
+ self._values: typing.Dict[builtins.str, typing.Any] = {
437
+ "service": service,
438
+ "username": username,
439
+ }
440
+ if connection is not None:
441
+ self._values["connection"] = connection
442
+ if count is not None:
443
+ self._values["count"] = count
444
+ if depends_on is not None:
445
+ self._values["depends_on"] = depends_on
446
+ if for_each is not None:
447
+ self._values["for_each"] = for_each
448
+ if lifecycle is not None:
449
+ self._values["lifecycle"] = lifecycle
450
+ if provider is not None:
451
+ self._values["provider"] = provider
452
+ if provisioners is not None:
453
+ self._values["provisioners"] = provisioners
454
+ if authentication is not None:
455
+ self._values["authentication"] = authentication
456
+ if id is not None:
457
+ self._values["id"] = id
458
+ if opensearch_access_control is not None:
459
+ self._values["opensearch_access_control"] = opensearch_access_control
460
+ if password is not None:
461
+ self._values["password"] = password
462
+ if pg_access_control is not None:
463
+ self._values["pg_access_control"] = pg_access_control
464
+ if valkey_access_control is not None:
465
+ self._values["valkey_access_control"] = valkey_access_control
466
+
467
+ @builtins.property
468
+ def connection(
469
+ self,
470
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, _cdktf_9a9027ec.WinrmProvisionerConnection]]:
471
+ '''
472
+ :stability: experimental
473
+ '''
474
+ result = self._values.get("connection")
475
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, _cdktf_9a9027ec.WinrmProvisionerConnection]], result)
476
+
477
+ @builtins.property
478
+ def count(
479
+ self,
480
+ ) -> typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]]:
481
+ '''
482
+ :stability: experimental
483
+ '''
484
+ result = self._values.get("count")
485
+ return typing.cast(typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]], result)
486
+
487
+ @builtins.property
488
+ def depends_on(
489
+ self,
490
+ ) -> typing.Optional[typing.List[_cdktf_9a9027ec.ITerraformDependable]]:
491
+ '''
492
+ :stability: experimental
493
+ '''
494
+ result = self._values.get("depends_on")
495
+ return typing.cast(typing.Optional[typing.List[_cdktf_9a9027ec.ITerraformDependable]], result)
496
+
497
+ @builtins.property
498
+ def for_each(self) -> typing.Optional[_cdktf_9a9027ec.ITerraformIterator]:
499
+ '''
500
+ :stability: experimental
501
+ '''
502
+ result = self._values.get("for_each")
503
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.ITerraformIterator], result)
504
+
505
+ @builtins.property
506
+ def lifecycle(self) -> typing.Optional[_cdktf_9a9027ec.TerraformResourceLifecycle]:
507
+ '''
508
+ :stability: experimental
509
+ '''
510
+ result = self._values.get("lifecycle")
511
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.TerraformResourceLifecycle], result)
512
+
513
+ @builtins.property
514
+ def provider(self) -> typing.Optional[_cdktf_9a9027ec.TerraformProvider]:
515
+ '''
516
+ :stability: experimental
517
+ '''
518
+ result = self._values.get("provider")
519
+ return typing.cast(typing.Optional[_cdktf_9a9027ec.TerraformProvider], result)
520
+
521
+ @builtins.property
522
+ def provisioners(
523
+ self,
524
+ ) -> typing.Optional[typing.List[typing.Union[_cdktf_9a9027ec.FileProvisioner, _cdktf_9a9027ec.LocalExecProvisioner, _cdktf_9a9027ec.RemoteExecProvisioner]]]:
525
+ '''
526
+ :stability: experimental
527
+ '''
528
+ result = self._values.get("provisioners")
529
+ return typing.cast(typing.Optional[typing.List[typing.Union[_cdktf_9a9027ec.FileProvisioner, _cdktf_9a9027ec.LocalExecProvisioner, _cdktf_9a9027ec.RemoteExecProvisioner]]], result)
530
+
531
+ @builtins.property
532
+ def service(self) -> builtins.str:
533
+ '''Service's UUID for which this user belongs to.
534
+
535
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#service ManagedDatabaseUser#service}
536
+ '''
537
+ result = self._values.get("service")
538
+ assert result is not None, "Required property 'service' is missing"
539
+ return typing.cast(builtins.str, result)
540
+
541
+ @builtins.property
542
+ def username(self) -> builtins.str:
543
+ '''Name of the database user.
544
+
545
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#username ManagedDatabaseUser#username}
546
+ '''
547
+ result = self._values.get("username")
548
+ assert result is not None, "Required property 'username' is missing"
549
+ return typing.cast(builtins.str, result)
550
+
551
+ @builtins.property
552
+ def authentication(self) -> typing.Optional[builtins.str]:
553
+ '''MySQL only, authentication type.
554
+
555
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#authentication ManagedDatabaseUser#authentication}
556
+ '''
557
+ result = self._values.get("authentication")
558
+ return typing.cast(typing.Optional[builtins.str], result)
559
+
560
+ @builtins.property
561
+ def id(self) -> typing.Optional[builtins.str]:
562
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#id ManagedDatabaseUser#id}.
563
+
564
+ Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
565
+ If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
566
+ '''
567
+ result = self._values.get("id")
568
+ return typing.cast(typing.Optional[builtins.str], result)
569
+
570
+ @builtins.property
571
+ def opensearch_access_control(
572
+ self,
573
+ ) -> typing.Optional["ManagedDatabaseUserOpensearchAccessControl"]:
574
+ '''opensearch_access_control block.
575
+
576
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#opensearch_access_control ManagedDatabaseUser#opensearch_access_control}
577
+ '''
578
+ result = self._values.get("opensearch_access_control")
579
+ return typing.cast(typing.Optional["ManagedDatabaseUserOpensearchAccessControl"], result)
580
+
581
+ @builtins.property
582
+ def password(self) -> typing.Optional[builtins.str]:
583
+ '''Password for the database user. Defaults to a random value.
584
+
585
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#password ManagedDatabaseUser#password}
586
+ '''
587
+ result = self._values.get("password")
588
+ return typing.cast(typing.Optional[builtins.str], result)
589
+
590
+ @builtins.property
591
+ def pg_access_control(
592
+ self,
593
+ ) -> typing.Optional["ManagedDatabaseUserPgAccessControl"]:
594
+ '''pg_access_control block.
595
+
596
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#pg_access_control ManagedDatabaseUser#pg_access_control}
597
+ '''
598
+ result = self._values.get("pg_access_control")
599
+ return typing.cast(typing.Optional["ManagedDatabaseUserPgAccessControl"], result)
600
+
601
+ @builtins.property
602
+ def valkey_access_control(
603
+ self,
604
+ ) -> typing.Optional["ManagedDatabaseUserValkeyAccessControl"]:
605
+ '''valkey_access_control block.
606
+
607
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#valkey_access_control ManagedDatabaseUser#valkey_access_control}
608
+ '''
609
+ result = self._values.get("valkey_access_control")
610
+ return typing.cast(typing.Optional["ManagedDatabaseUserValkeyAccessControl"], result)
611
+
612
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
613
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
614
+
615
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
616
+ return not (rhs == self)
617
+
618
+ def __repr__(self) -> str:
619
+ return "ManagedDatabaseUserConfig(%s)" % ", ".join(
620
+ k + "=" + repr(v) for k, v in self._values.items()
621
+ )
622
+
623
+
624
+ @jsii.data_type(
625
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUserOpensearchAccessControl",
626
+ jsii_struct_bases=[],
627
+ name_mapping={"rules": "rules"},
628
+ )
629
+ class ManagedDatabaseUserOpensearchAccessControl:
630
+ def __init__(
631
+ self,
632
+ *,
633
+ rules: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ManagedDatabaseUserOpensearchAccessControlRules", typing.Dict[builtins.str, typing.Any]]]],
634
+ ) -> None:
635
+ '''
636
+ :param rules: rules block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#rules ManagedDatabaseUser#rules}
637
+ '''
638
+ if __debug__:
639
+ type_hints = typing.get_type_hints(_typecheckingstub__72db216f4a07b0d61090bf6cee72765d201a2daf9f3d0177b70ceadc0e0b4950)
640
+ check_type(argname="argument rules", value=rules, expected_type=type_hints["rules"])
641
+ self._values: typing.Dict[builtins.str, typing.Any] = {
642
+ "rules": rules,
643
+ }
644
+
645
+ @builtins.property
646
+ def rules(
647
+ self,
648
+ ) -> typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ManagedDatabaseUserOpensearchAccessControlRules"]]:
649
+ '''rules block.
650
+
651
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#rules ManagedDatabaseUser#rules}
652
+ '''
653
+ result = self._values.get("rules")
654
+ assert result is not None, "Required property 'rules' is missing"
655
+ return typing.cast(typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ManagedDatabaseUserOpensearchAccessControlRules"]], result)
656
+
657
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
658
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
659
+
660
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
661
+ return not (rhs == self)
662
+
663
+ def __repr__(self) -> str:
664
+ return "ManagedDatabaseUserOpensearchAccessControl(%s)" % ", ".join(
665
+ k + "=" + repr(v) for k, v in self._values.items()
666
+ )
667
+
668
+
669
+ class ManagedDatabaseUserOpensearchAccessControlOutputReference(
670
+ _cdktf_9a9027ec.ComplexObject,
671
+ metaclass=jsii.JSIIMeta,
672
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUserOpensearchAccessControlOutputReference",
673
+ ):
674
+ def __init__(
675
+ self,
676
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
677
+ terraform_attribute: builtins.str,
678
+ ) -> None:
679
+ '''
680
+ :param terraform_resource: The parent resource.
681
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
682
+ '''
683
+ if __debug__:
684
+ type_hints = typing.get_type_hints(_typecheckingstub__c261e84207dbab039535cdcebbb50274d3e302855b6e03213389abe9b79b0dea)
685
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
686
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
687
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
688
+
689
+ @jsii.member(jsii_name="putRules")
690
+ def put_rules(
691
+ self,
692
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union["ManagedDatabaseUserOpensearchAccessControlRules", typing.Dict[builtins.str, typing.Any]]]],
693
+ ) -> None:
694
+ '''
695
+ :param value: -
696
+ '''
697
+ if __debug__:
698
+ type_hints = typing.get_type_hints(_typecheckingstub__4e8b484f46ddc4c7bb19027cf7fcbff4bb7f7557610ef87817a40ce0cddd761c)
699
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
700
+ return typing.cast(None, jsii.invoke(self, "putRules", [value]))
701
+
702
+ @builtins.property
703
+ @jsii.member(jsii_name="rules")
704
+ def rules(self) -> "ManagedDatabaseUserOpensearchAccessControlRulesList":
705
+ return typing.cast("ManagedDatabaseUserOpensearchAccessControlRulesList", jsii.get(self, "rules"))
706
+
707
+ @builtins.property
708
+ @jsii.member(jsii_name="rulesInput")
709
+ def rules_input(
710
+ self,
711
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ManagedDatabaseUserOpensearchAccessControlRules"]]]:
712
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List["ManagedDatabaseUserOpensearchAccessControlRules"]]], jsii.get(self, "rulesInput"))
713
+
714
+ @builtins.property
715
+ @jsii.member(jsii_name="internalValue")
716
+ def internal_value(
717
+ self,
718
+ ) -> typing.Optional[ManagedDatabaseUserOpensearchAccessControl]:
719
+ return typing.cast(typing.Optional[ManagedDatabaseUserOpensearchAccessControl], jsii.get(self, "internalValue"))
720
+
721
+ @internal_value.setter
722
+ def internal_value(
723
+ self,
724
+ value: typing.Optional[ManagedDatabaseUserOpensearchAccessControl],
725
+ ) -> None:
726
+ if __debug__:
727
+ type_hints = typing.get_type_hints(_typecheckingstub__6f2043b59277b76c0c76f326072fbc42fd640a5568ab1320f7cc8d737f67e3da)
728
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
729
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
730
+
731
+
732
+ @jsii.data_type(
733
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUserOpensearchAccessControlRules",
734
+ jsii_struct_bases=[],
735
+ name_mapping={"index": "index", "permission": "permission"},
736
+ )
737
+ class ManagedDatabaseUserOpensearchAccessControlRules:
738
+ def __init__(self, *, index: builtins.str, permission: builtins.str) -> None:
739
+ '''
740
+ :param index: Set index name, pattern or top level API. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#index ManagedDatabaseUser#index}
741
+ :param permission: Set permission access. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#permission ManagedDatabaseUser#permission}
742
+ '''
743
+ if __debug__:
744
+ type_hints = typing.get_type_hints(_typecheckingstub__037bf6ae1cf4ccc5175cd9f327782b4c274be6c4d8dcbbf42b47b3e0d87e86ea)
745
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
746
+ check_type(argname="argument permission", value=permission, expected_type=type_hints["permission"])
747
+ self._values: typing.Dict[builtins.str, typing.Any] = {
748
+ "index": index,
749
+ "permission": permission,
750
+ }
751
+
752
+ @builtins.property
753
+ def index(self) -> builtins.str:
754
+ '''Set index name, pattern or top level API.
755
+
756
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#index ManagedDatabaseUser#index}
757
+ '''
758
+ result = self._values.get("index")
759
+ assert result is not None, "Required property 'index' is missing"
760
+ return typing.cast(builtins.str, result)
761
+
762
+ @builtins.property
763
+ def permission(self) -> builtins.str:
764
+ '''Set permission access.
765
+
766
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#permission ManagedDatabaseUser#permission}
767
+ '''
768
+ result = self._values.get("permission")
769
+ assert result is not None, "Required property 'permission' is missing"
770
+ return typing.cast(builtins.str, result)
771
+
772
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
773
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
774
+
775
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
776
+ return not (rhs == self)
777
+
778
+ def __repr__(self) -> str:
779
+ return "ManagedDatabaseUserOpensearchAccessControlRules(%s)" % ", ".join(
780
+ k + "=" + repr(v) for k, v in self._values.items()
781
+ )
782
+
783
+
784
+ class ManagedDatabaseUserOpensearchAccessControlRulesList(
785
+ _cdktf_9a9027ec.ComplexList,
786
+ metaclass=jsii.JSIIMeta,
787
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUserOpensearchAccessControlRulesList",
788
+ ):
789
+ def __init__(
790
+ self,
791
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
792
+ terraform_attribute: builtins.str,
793
+ wraps_set: builtins.bool,
794
+ ) -> None:
795
+ '''
796
+ :param terraform_resource: The parent resource.
797
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
798
+ :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
799
+ '''
800
+ if __debug__:
801
+ type_hints = typing.get_type_hints(_typecheckingstub__2ddfde11f5cd47441e7f3810f048ba114d237bd9f6dd0d26c1f866d3ce2144db)
802
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
803
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
804
+ check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
805
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])
806
+
807
+ @jsii.member(jsii_name="get")
808
+ def get(
809
+ self,
810
+ index: jsii.Number,
811
+ ) -> "ManagedDatabaseUserOpensearchAccessControlRulesOutputReference":
812
+ '''
813
+ :param index: the index of the item to return.
814
+ '''
815
+ if __debug__:
816
+ type_hints = typing.get_type_hints(_typecheckingstub__af95d05f551a4530c295fcca76cb47045ea1f7738b1326bf1aa33ffd3b1047e3)
817
+ check_type(argname="argument index", value=index, expected_type=type_hints["index"])
818
+ return typing.cast("ManagedDatabaseUserOpensearchAccessControlRulesOutputReference", jsii.invoke(self, "get", [index]))
819
+
820
+ @builtins.property
821
+ @jsii.member(jsii_name="terraformAttribute")
822
+ def _terraform_attribute(self) -> builtins.str:
823
+ '''The attribute on the parent resource this class is referencing.'''
824
+ return typing.cast(builtins.str, jsii.get(self, "terraformAttribute"))
825
+
826
+ @_terraform_attribute.setter
827
+ def _terraform_attribute(self, value: builtins.str) -> None:
828
+ if __debug__:
829
+ type_hints = typing.get_type_hints(_typecheckingstub__819a3aa89c9c1206aa9c2a863c363f11b8a66bd9b8497cfee924eca988197fcb)
830
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
831
+ jsii.set(self, "terraformAttribute", value) # pyright: ignore[reportArgumentType]
832
+
833
+ @builtins.property
834
+ @jsii.member(jsii_name="terraformResource")
835
+ def _terraform_resource(self) -> _cdktf_9a9027ec.IInterpolatingParent:
836
+ '''The parent resource.'''
837
+ return typing.cast(_cdktf_9a9027ec.IInterpolatingParent, jsii.get(self, "terraformResource"))
838
+
839
+ @_terraform_resource.setter
840
+ def _terraform_resource(self, value: _cdktf_9a9027ec.IInterpolatingParent) -> None:
841
+ if __debug__:
842
+ type_hints = typing.get_type_hints(_typecheckingstub__9035a2506767e4f58f5e63793c32afb1e7d291560717108cec71bf2c6deb579f)
843
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
844
+ jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
845
+
846
+ @builtins.property
847
+ @jsii.member(jsii_name="wrapsSet")
848
+ def _wraps_set(self) -> builtins.bool:
849
+ '''whether the list is wrapping a set (will add tolist() to be able to access an item via an index).'''
850
+ return typing.cast(builtins.bool, jsii.get(self, "wrapsSet"))
851
+
852
+ @_wraps_set.setter
853
+ def _wraps_set(self, value: builtins.bool) -> None:
854
+ if __debug__:
855
+ type_hints = typing.get_type_hints(_typecheckingstub__1b3fe316a8770435bbdac3dfecd6e58cc0f51b70c77adf586b8d3b4d6ff04d74)
856
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
857
+ jsii.set(self, "wrapsSet", value) # pyright: ignore[reportArgumentType]
858
+
859
+ @builtins.property
860
+ @jsii.member(jsii_name="internalValue")
861
+ def internal_value(
862
+ self,
863
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ManagedDatabaseUserOpensearchAccessControlRules]]]:
864
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ManagedDatabaseUserOpensearchAccessControlRules]]], jsii.get(self, "internalValue"))
865
+
866
+ @internal_value.setter
867
+ def internal_value(
868
+ self,
869
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ManagedDatabaseUserOpensearchAccessControlRules]]],
870
+ ) -> None:
871
+ if __debug__:
872
+ type_hints = typing.get_type_hints(_typecheckingstub__3e8caca91ec82f03099665dab3a8d90b2a77f89960ed729ae582c6cbf3fc3a7a)
873
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
874
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
875
+
876
+
877
+ class ManagedDatabaseUserOpensearchAccessControlRulesOutputReference(
878
+ _cdktf_9a9027ec.ComplexObject,
879
+ metaclass=jsii.JSIIMeta,
880
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUserOpensearchAccessControlRulesOutputReference",
881
+ ):
882
+ def __init__(
883
+ self,
884
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
885
+ terraform_attribute: builtins.str,
886
+ complex_object_index: jsii.Number,
887
+ complex_object_is_from_set: builtins.bool,
888
+ ) -> None:
889
+ '''
890
+ :param terraform_resource: The parent resource.
891
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
892
+ :param complex_object_index: the index of this item in the list.
893
+ :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
894
+ '''
895
+ if __debug__:
896
+ type_hints = typing.get_type_hints(_typecheckingstub__827e8b000834556bb9414f5368d4406305681add87da50fcd173ac58b0af5692)
897
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
898
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
899
+ check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
900
+ check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
901
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])
902
+
903
+ @builtins.property
904
+ @jsii.member(jsii_name="indexInput")
905
+ def index_input(self) -> typing.Optional[builtins.str]:
906
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "indexInput"))
907
+
908
+ @builtins.property
909
+ @jsii.member(jsii_name="permissionInput")
910
+ def permission_input(self) -> typing.Optional[builtins.str]:
911
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "permissionInput"))
912
+
913
+ @builtins.property
914
+ @jsii.member(jsii_name="index")
915
+ def index(self) -> builtins.str:
916
+ return typing.cast(builtins.str, jsii.get(self, "index"))
917
+
918
+ @index.setter
919
+ def index(self, value: builtins.str) -> None:
920
+ if __debug__:
921
+ type_hints = typing.get_type_hints(_typecheckingstub__bf31bc12b7f94a526e7e41226e6e9296881b18ff36410291f9f4964a64acf62f)
922
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
923
+ jsii.set(self, "index", value) # pyright: ignore[reportArgumentType]
924
+
925
+ @builtins.property
926
+ @jsii.member(jsii_name="permission")
927
+ def permission(self) -> builtins.str:
928
+ return typing.cast(builtins.str, jsii.get(self, "permission"))
929
+
930
+ @permission.setter
931
+ def permission(self, value: builtins.str) -> None:
932
+ if __debug__:
933
+ type_hints = typing.get_type_hints(_typecheckingstub__a8078f0d2a5b371825e053b9bd3d3b431480d8a53a502928b258020d66840f0b)
934
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
935
+ jsii.set(self, "permission", value) # pyright: ignore[reportArgumentType]
936
+
937
+ @builtins.property
938
+ @jsii.member(jsii_name="internalValue")
939
+ def internal_value(
940
+ self,
941
+ ) -> typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ManagedDatabaseUserOpensearchAccessControlRules]]:
942
+ return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ManagedDatabaseUserOpensearchAccessControlRules]], jsii.get(self, "internalValue"))
943
+
944
+ @internal_value.setter
945
+ def internal_value(
946
+ self,
947
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ManagedDatabaseUserOpensearchAccessControlRules]],
948
+ ) -> None:
949
+ if __debug__:
950
+ type_hints = typing.get_type_hints(_typecheckingstub__13b1b4f9dcb8775caf7897bb1366e6419bc653fc18161596852f846170e69f1c)
951
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
952
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
953
+
954
+
955
+ @jsii.data_type(
956
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUserPgAccessControl",
957
+ jsii_struct_bases=[],
958
+ name_mapping={"allow_replication": "allowReplication"},
959
+ )
960
+ class ManagedDatabaseUserPgAccessControl:
961
+ def __init__(
962
+ self,
963
+ *,
964
+ allow_replication: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
965
+ ) -> None:
966
+ '''
967
+ :param allow_replication: Grant replication privilege. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#allow_replication ManagedDatabaseUser#allow_replication}
968
+ '''
969
+ if __debug__:
970
+ type_hints = typing.get_type_hints(_typecheckingstub__f34e6b56dbd319319ed29790d55c8592357d86f9b7c8e8c14a5c4d70a6787a4f)
971
+ check_type(argname="argument allow_replication", value=allow_replication, expected_type=type_hints["allow_replication"])
972
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
973
+ if allow_replication is not None:
974
+ self._values["allow_replication"] = allow_replication
975
+
976
+ @builtins.property
977
+ def allow_replication(
978
+ self,
979
+ ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
980
+ '''Grant replication privilege.
981
+
982
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#allow_replication ManagedDatabaseUser#allow_replication}
983
+ '''
984
+ result = self._values.get("allow_replication")
985
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
986
+
987
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
988
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
989
+
990
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
991
+ return not (rhs == self)
992
+
993
+ def __repr__(self) -> str:
994
+ return "ManagedDatabaseUserPgAccessControl(%s)" % ", ".join(
995
+ k + "=" + repr(v) for k, v in self._values.items()
996
+ )
997
+
998
+
999
+ class ManagedDatabaseUserPgAccessControlOutputReference(
1000
+ _cdktf_9a9027ec.ComplexObject,
1001
+ metaclass=jsii.JSIIMeta,
1002
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUserPgAccessControlOutputReference",
1003
+ ):
1004
+ def __init__(
1005
+ self,
1006
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1007
+ terraform_attribute: builtins.str,
1008
+ ) -> None:
1009
+ '''
1010
+ :param terraform_resource: The parent resource.
1011
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
1012
+ '''
1013
+ if __debug__:
1014
+ type_hints = typing.get_type_hints(_typecheckingstub__85fcf89643ce491d5750a1564e2b960c17139df7539f861e2865332a05483b5b)
1015
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
1016
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
1017
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
1018
+
1019
+ @jsii.member(jsii_name="resetAllowReplication")
1020
+ def reset_allow_replication(self) -> None:
1021
+ return typing.cast(None, jsii.invoke(self, "resetAllowReplication", []))
1022
+
1023
+ @builtins.property
1024
+ @jsii.member(jsii_name="allowReplicationInput")
1025
+ def allow_replication_input(
1026
+ self,
1027
+ ) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
1028
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], jsii.get(self, "allowReplicationInput"))
1029
+
1030
+ @builtins.property
1031
+ @jsii.member(jsii_name="allowReplication")
1032
+ def allow_replication(
1033
+ self,
1034
+ ) -> typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]:
1035
+ return typing.cast(typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable], jsii.get(self, "allowReplication"))
1036
+
1037
+ @allow_replication.setter
1038
+ def allow_replication(
1039
+ self,
1040
+ value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
1041
+ ) -> None:
1042
+ if __debug__:
1043
+ type_hints = typing.get_type_hints(_typecheckingstub__d64766b07261271a83f0b99c9b5994c07b319be03b24ec0486adc7ddcb458552)
1044
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1045
+ jsii.set(self, "allowReplication", value) # pyright: ignore[reportArgumentType]
1046
+
1047
+ @builtins.property
1048
+ @jsii.member(jsii_name="internalValue")
1049
+ def internal_value(self) -> typing.Optional[ManagedDatabaseUserPgAccessControl]:
1050
+ return typing.cast(typing.Optional[ManagedDatabaseUserPgAccessControl], jsii.get(self, "internalValue"))
1051
+
1052
+ @internal_value.setter
1053
+ def internal_value(
1054
+ self,
1055
+ value: typing.Optional[ManagedDatabaseUserPgAccessControl],
1056
+ ) -> None:
1057
+ if __debug__:
1058
+ type_hints = typing.get_type_hints(_typecheckingstub__3ef37ebe78b06916a552ac2271f6287ba8f91f8248730c96c7d6d23c8258132c)
1059
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1060
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
1061
+
1062
+
1063
+ @jsii.data_type(
1064
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUserValkeyAccessControl",
1065
+ jsii_struct_bases=[],
1066
+ name_mapping={
1067
+ "categories": "categories",
1068
+ "channels": "channels",
1069
+ "commands": "commands",
1070
+ "keys": "keys",
1071
+ },
1072
+ )
1073
+ class ManagedDatabaseUserValkeyAccessControl:
1074
+ def __init__(
1075
+ self,
1076
+ *,
1077
+ categories: typing.Optional[typing.Sequence[builtins.str]] = None,
1078
+ channels: typing.Optional[typing.Sequence[builtins.str]] = None,
1079
+ commands: typing.Optional[typing.Sequence[builtins.str]] = None,
1080
+ keys: typing.Optional[typing.Sequence[builtins.str]] = None,
1081
+ ) -> None:
1082
+ '''
1083
+ :param categories: Set access control to all commands in specified categories. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#categories ManagedDatabaseUser#categories}
1084
+ :param channels: Set access control to Pub/Sub channels. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#channels ManagedDatabaseUser#channels}
1085
+ :param commands: Set access control to commands. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#commands ManagedDatabaseUser#commands}
1086
+ :param keys: Set access control to keys. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#keys ManagedDatabaseUser#keys}
1087
+ '''
1088
+ if __debug__:
1089
+ type_hints = typing.get_type_hints(_typecheckingstub__2f1493b4bca5854170cbde576964405bb43c4a65a1f4134e3fdb249bbe20358d)
1090
+ check_type(argname="argument categories", value=categories, expected_type=type_hints["categories"])
1091
+ check_type(argname="argument channels", value=channels, expected_type=type_hints["channels"])
1092
+ check_type(argname="argument commands", value=commands, expected_type=type_hints["commands"])
1093
+ check_type(argname="argument keys", value=keys, expected_type=type_hints["keys"])
1094
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1095
+ if categories is not None:
1096
+ self._values["categories"] = categories
1097
+ if channels is not None:
1098
+ self._values["channels"] = channels
1099
+ if commands is not None:
1100
+ self._values["commands"] = commands
1101
+ if keys is not None:
1102
+ self._values["keys"] = keys
1103
+
1104
+ @builtins.property
1105
+ def categories(self) -> typing.Optional[typing.List[builtins.str]]:
1106
+ '''Set access control to all commands in specified categories.
1107
+
1108
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#categories ManagedDatabaseUser#categories}
1109
+ '''
1110
+ result = self._values.get("categories")
1111
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1112
+
1113
+ @builtins.property
1114
+ def channels(self) -> typing.Optional[typing.List[builtins.str]]:
1115
+ '''Set access control to Pub/Sub channels.
1116
+
1117
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#channels ManagedDatabaseUser#channels}
1118
+ '''
1119
+ result = self._values.get("channels")
1120
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1121
+
1122
+ @builtins.property
1123
+ def commands(self) -> typing.Optional[typing.List[builtins.str]]:
1124
+ '''Set access control to commands.
1125
+
1126
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#commands ManagedDatabaseUser#commands}
1127
+ '''
1128
+ result = self._values.get("commands")
1129
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1130
+
1131
+ @builtins.property
1132
+ def keys(self) -> typing.Optional[typing.List[builtins.str]]:
1133
+ '''Set access control to keys.
1134
+
1135
+ Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/managed_database_user#keys ManagedDatabaseUser#keys}
1136
+ '''
1137
+ result = self._values.get("keys")
1138
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1139
+
1140
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1141
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1142
+
1143
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1144
+ return not (rhs == self)
1145
+
1146
+ def __repr__(self) -> str:
1147
+ return "ManagedDatabaseUserValkeyAccessControl(%s)" % ", ".join(
1148
+ k + "=" + repr(v) for k, v in self._values.items()
1149
+ )
1150
+
1151
+
1152
+ class ManagedDatabaseUserValkeyAccessControlOutputReference(
1153
+ _cdktf_9a9027ec.ComplexObject,
1154
+ metaclass=jsii.JSIIMeta,
1155
+ jsii_type="@cdktf/provider-upcloud.managedDatabaseUser.ManagedDatabaseUserValkeyAccessControlOutputReference",
1156
+ ):
1157
+ def __init__(
1158
+ self,
1159
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1160
+ terraform_attribute: builtins.str,
1161
+ ) -> None:
1162
+ '''
1163
+ :param terraform_resource: The parent resource.
1164
+ :param terraform_attribute: The attribute on the parent resource this class is referencing.
1165
+ '''
1166
+ if __debug__:
1167
+ type_hints = typing.get_type_hints(_typecheckingstub__60e811bb7552f5b604095a5015d4c3f3505ab56452fbbcbaf69a6a51d0f46768)
1168
+ check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
1169
+ check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
1170
+ jsii.create(self.__class__, self, [terraform_resource, terraform_attribute])
1171
+
1172
+ @jsii.member(jsii_name="resetCategories")
1173
+ def reset_categories(self) -> None:
1174
+ return typing.cast(None, jsii.invoke(self, "resetCategories", []))
1175
+
1176
+ @jsii.member(jsii_name="resetChannels")
1177
+ def reset_channels(self) -> None:
1178
+ return typing.cast(None, jsii.invoke(self, "resetChannels", []))
1179
+
1180
+ @jsii.member(jsii_name="resetCommands")
1181
+ def reset_commands(self) -> None:
1182
+ return typing.cast(None, jsii.invoke(self, "resetCommands", []))
1183
+
1184
+ @jsii.member(jsii_name="resetKeys")
1185
+ def reset_keys(self) -> None:
1186
+ return typing.cast(None, jsii.invoke(self, "resetKeys", []))
1187
+
1188
+ @builtins.property
1189
+ @jsii.member(jsii_name="categoriesInput")
1190
+ def categories_input(self) -> typing.Optional[typing.List[builtins.str]]:
1191
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "categoriesInput"))
1192
+
1193
+ @builtins.property
1194
+ @jsii.member(jsii_name="channelsInput")
1195
+ def channels_input(self) -> typing.Optional[typing.List[builtins.str]]:
1196
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "channelsInput"))
1197
+
1198
+ @builtins.property
1199
+ @jsii.member(jsii_name="commandsInput")
1200
+ def commands_input(self) -> typing.Optional[typing.List[builtins.str]]:
1201
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "commandsInput"))
1202
+
1203
+ @builtins.property
1204
+ @jsii.member(jsii_name="keysInput")
1205
+ def keys_input(self) -> typing.Optional[typing.List[builtins.str]]:
1206
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "keysInput"))
1207
+
1208
+ @builtins.property
1209
+ @jsii.member(jsii_name="categories")
1210
+ def categories(self) -> typing.List[builtins.str]:
1211
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "categories"))
1212
+
1213
+ @categories.setter
1214
+ def categories(self, value: typing.List[builtins.str]) -> None:
1215
+ if __debug__:
1216
+ type_hints = typing.get_type_hints(_typecheckingstub__ccd299ae68222ffa9a194acbf7a81cc6852825ca93271fd388a8cd6121ed4f19)
1217
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1218
+ jsii.set(self, "categories", value) # pyright: ignore[reportArgumentType]
1219
+
1220
+ @builtins.property
1221
+ @jsii.member(jsii_name="channels")
1222
+ def channels(self) -> typing.List[builtins.str]:
1223
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "channels"))
1224
+
1225
+ @channels.setter
1226
+ def channels(self, value: typing.List[builtins.str]) -> None:
1227
+ if __debug__:
1228
+ type_hints = typing.get_type_hints(_typecheckingstub__d3b52ad193f7883921cbb74ab75e9b78c1fbce4f8095f08603bbc19c8a429872)
1229
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1230
+ jsii.set(self, "channels", value) # pyright: ignore[reportArgumentType]
1231
+
1232
+ @builtins.property
1233
+ @jsii.member(jsii_name="commands")
1234
+ def commands(self) -> typing.List[builtins.str]:
1235
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "commands"))
1236
+
1237
+ @commands.setter
1238
+ def commands(self, value: typing.List[builtins.str]) -> None:
1239
+ if __debug__:
1240
+ type_hints = typing.get_type_hints(_typecheckingstub__75d52995b6d04add9841ba35e2f51734fdb294de2b4075236624eeac70dbc284)
1241
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1242
+ jsii.set(self, "commands", value) # pyright: ignore[reportArgumentType]
1243
+
1244
+ @builtins.property
1245
+ @jsii.member(jsii_name="keys")
1246
+ def keys(self) -> typing.List[builtins.str]:
1247
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "keys"))
1248
+
1249
+ @keys.setter
1250
+ def keys(self, value: typing.List[builtins.str]) -> None:
1251
+ if __debug__:
1252
+ type_hints = typing.get_type_hints(_typecheckingstub__4d2d78c3e1a8bba65f5829af1ac02a433782d32b8ae35a1f8159c5e851eac810)
1253
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1254
+ jsii.set(self, "keys", value) # pyright: ignore[reportArgumentType]
1255
+
1256
+ @builtins.property
1257
+ @jsii.member(jsii_name="internalValue")
1258
+ def internal_value(self) -> typing.Optional[ManagedDatabaseUserValkeyAccessControl]:
1259
+ return typing.cast(typing.Optional[ManagedDatabaseUserValkeyAccessControl], jsii.get(self, "internalValue"))
1260
+
1261
+ @internal_value.setter
1262
+ def internal_value(
1263
+ self,
1264
+ value: typing.Optional[ManagedDatabaseUserValkeyAccessControl],
1265
+ ) -> None:
1266
+ if __debug__:
1267
+ type_hints = typing.get_type_hints(_typecheckingstub__cec487a59a2b9bbfdc8f9f8aeeb285858a68a44c95f58c1b7e4379f578adae99)
1268
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1269
+ jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]
1270
+
1271
+
1272
+ __all__ = [
1273
+ "ManagedDatabaseUser",
1274
+ "ManagedDatabaseUserConfig",
1275
+ "ManagedDatabaseUserOpensearchAccessControl",
1276
+ "ManagedDatabaseUserOpensearchAccessControlOutputReference",
1277
+ "ManagedDatabaseUserOpensearchAccessControlRules",
1278
+ "ManagedDatabaseUserOpensearchAccessControlRulesList",
1279
+ "ManagedDatabaseUserOpensearchAccessControlRulesOutputReference",
1280
+ "ManagedDatabaseUserPgAccessControl",
1281
+ "ManagedDatabaseUserPgAccessControlOutputReference",
1282
+ "ManagedDatabaseUserValkeyAccessControl",
1283
+ "ManagedDatabaseUserValkeyAccessControlOutputReference",
1284
+ ]
1285
+
1286
+ publication.publish()
1287
+
1288
+ def _typecheckingstub__284705db217200be03c68231d6206d89ab6b5c942fa6aa0a91e5f854d83bc8b6(
1289
+ scope: _constructs_77d1e7e8.Construct,
1290
+ id_: builtins.str,
1291
+ *,
1292
+ service: builtins.str,
1293
+ username: builtins.str,
1294
+ authentication: typing.Optional[builtins.str] = None,
1295
+ id: typing.Optional[builtins.str] = None,
1296
+ opensearch_access_control: typing.Optional[typing.Union[ManagedDatabaseUserOpensearchAccessControl, typing.Dict[builtins.str, typing.Any]]] = None,
1297
+ password: typing.Optional[builtins.str] = None,
1298
+ pg_access_control: typing.Optional[typing.Union[ManagedDatabaseUserPgAccessControl, typing.Dict[builtins.str, typing.Any]]] = None,
1299
+ valkey_access_control: typing.Optional[typing.Union[ManagedDatabaseUserValkeyAccessControl, typing.Dict[builtins.str, typing.Any]]] = None,
1300
+ connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
1301
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
1302
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
1303
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
1304
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
1305
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
1306
+ provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
1307
+ ) -> None:
1308
+ """Type checking stubs"""
1309
+ pass
1310
+
1311
+ def _typecheckingstub__84698ed08c8aa045527016f73e9fa31bd39a927599fbe252ef22c04dc81395fa(
1312
+ scope: _constructs_77d1e7e8.Construct,
1313
+ import_to_id: builtins.str,
1314
+ import_from_id: builtins.str,
1315
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
1316
+ ) -> None:
1317
+ """Type checking stubs"""
1318
+ pass
1319
+
1320
+ def _typecheckingstub__b59524d6ec28e1e91e2660a7a825733751c8f6ccf1b6b7ace9eacc505d796901(
1321
+ value: builtins.str,
1322
+ ) -> None:
1323
+ """Type checking stubs"""
1324
+ pass
1325
+
1326
+ def _typecheckingstub__279d5d1ce136b75e6c2fe00e42d73f303c19db8b2a872db680552e387797902c(
1327
+ value: builtins.str,
1328
+ ) -> None:
1329
+ """Type checking stubs"""
1330
+ pass
1331
+
1332
+ def _typecheckingstub__e0bc67b2dd690e0235e63664dc77e9295886fea48c10eba2f30b039f0b5f455b(
1333
+ value: builtins.str,
1334
+ ) -> None:
1335
+ """Type checking stubs"""
1336
+ pass
1337
+
1338
+ def _typecheckingstub__cb1244dc41c138e20749cc2e50d2739b25a0c3a573a7655784fe3a48e8b7c2a4(
1339
+ value: builtins.str,
1340
+ ) -> None:
1341
+ """Type checking stubs"""
1342
+ pass
1343
+
1344
+ def _typecheckingstub__9047a597e672fcf3a034119577335b53b918a8ad3b654540e8d13c08a894eeb3(
1345
+ value: builtins.str,
1346
+ ) -> None:
1347
+ """Type checking stubs"""
1348
+ pass
1349
+
1350
+ def _typecheckingstub__07a7f5c785cc0e125e8ded59bfd094c26884e099fe8129734900f6faab61a108(
1351
+ *,
1352
+ connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
1353
+ count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
1354
+ depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
1355
+ for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
1356
+ lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
1357
+ provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
1358
+ provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
1359
+ service: builtins.str,
1360
+ username: builtins.str,
1361
+ authentication: typing.Optional[builtins.str] = None,
1362
+ id: typing.Optional[builtins.str] = None,
1363
+ opensearch_access_control: typing.Optional[typing.Union[ManagedDatabaseUserOpensearchAccessControl, typing.Dict[builtins.str, typing.Any]]] = None,
1364
+ password: typing.Optional[builtins.str] = None,
1365
+ pg_access_control: typing.Optional[typing.Union[ManagedDatabaseUserPgAccessControl, typing.Dict[builtins.str, typing.Any]]] = None,
1366
+ valkey_access_control: typing.Optional[typing.Union[ManagedDatabaseUserValkeyAccessControl, typing.Dict[builtins.str, typing.Any]]] = None,
1367
+ ) -> None:
1368
+ """Type checking stubs"""
1369
+ pass
1370
+
1371
+ def _typecheckingstub__72db216f4a07b0d61090bf6cee72765d201a2daf9f3d0177b70ceadc0e0b4950(
1372
+ *,
1373
+ rules: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ManagedDatabaseUserOpensearchAccessControlRules, typing.Dict[builtins.str, typing.Any]]]],
1374
+ ) -> None:
1375
+ """Type checking stubs"""
1376
+ pass
1377
+
1378
+ def _typecheckingstub__c261e84207dbab039535cdcebbb50274d3e302855b6e03213389abe9b79b0dea(
1379
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1380
+ terraform_attribute: builtins.str,
1381
+ ) -> None:
1382
+ """Type checking stubs"""
1383
+ pass
1384
+
1385
+ def _typecheckingstub__4e8b484f46ddc4c7bb19027cf7fcbff4bb7f7557610ef87817a40ce0cddd761c(
1386
+ value: typing.Union[_cdktf_9a9027ec.IResolvable, typing.Sequence[typing.Union[ManagedDatabaseUserOpensearchAccessControlRules, typing.Dict[builtins.str, typing.Any]]]],
1387
+ ) -> None:
1388
+ """Type checking stubs"""
1389
+ pass
1390
+
1391
+ def _typecheckingstub__6f2043b59277b76c0c76f326072fbc42fd640a5568ab1320f7cc8d737f67e3da(
1392
+ value: typing.Optional[ManagedDatabaseUserOpensearchAccessControl],
1393
+ ) -> None:
1394
+ """Type checking stubs"""
1395
+ pass
1396
+
1397
+ def _typecheckingstub__037bf6ae1cf4ccc5175cd9f327782b4c274be6c4d8dcbbf42b47b3e0d87e86ea(
1398
+ *,
1399
+ index: builtins.str,
1400
+ permission: builtins.str,
1401
+ ) -> None:
1402
+ """Type checking stubs"""
1403
+ pass
1404
+
1405
+ def _typecheckingstub__2ddfde11f5cd47441e7f3810f048ba114d237bd9f6dd0d26c1f866d3ce2144db(
1406
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1407
+ terraform_attribute: builtins.str,
1408
+ wraps_set: builtins.bool,
1409
+ ) -> None:
1410
+ """Type checking stubs"""
1411
+ pass
1412
+
1413
+ def _typecheckingstub__af95d05f551a4530c295fcca76cb47045ea1f7738b1326bf1aa33ffd3b1047e3(
1414
+ index: jsii.Number,
1415
+ ) -> None:
1416
+ """Type checking stubs"""
1417
+ pass
1418
+
1419
+ def _typecheckingstub__819a3aa89c9c1206aa9c2a863c363f11b8a66bd9b8497cfee924eca988197fcb(
1420
+ value: builtins.str,
1421
+ ) -> None:
1422
+ """Type checking stubs"""
1423
+ pass
1424
+
1425
+ def _typecheckingstub__9035a2506767e4f58f5e63793c32afb1e7d291560717108cec71bf2c6deb579f(
1426
+ value: _cdktf_9a9027ec.IInterpolatingParent,
1427
+ ) -> None:
1428
+ """Type checking stubs"""
1429
+ pass
1430
+
1431
+ def _typecheckingstub__1b3fe316a8770435bbdac3dfecd6e58cc0f51b70c77adf586b8d3b4d6ff04d74(
1432
+ value: builtins.bool,
1433
+ ) -> None:
1434
+ """Type checking stubs"""
1435
+ pass
1436
+
1437
+ def _typecheckingstub__3e8caca91ec82f03099665dab3a8d90b2a77f89960ed729ae582c6cbf3fc3a7a(
1438
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, typing.List[ManagedDatabaseUserOpensearchAccessControlRules]]],
1439
+ ) -> None:
1440
+ """Type checking stubs"""
1441
+ pass
1442
+
1443
+ def _typecheckingstub__827e8b000834556bb9414f5368d4406305681add87da50fcd173ac58b0af5692(
1444
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1445
+ terraform_attribute: builtins.str,
1446
+ complex_object_index: jsii.Number,
1447
+ complex_object_is_from_set: builtins.bool,
1448
+ ) -> None:
1449
+ """Type checking stubs"""
1450
+ pass
1451
+
1452
+ def _typecheckingstub__bf31bc12b7f94a526e7e41226e6e9296881b18ff36410291f9f4964a64acf62f(
1453
+ value: builtins.str,
1454
+ ) -> None:
1455
+ """Type checking stubs"""
1456
+ pass
1457
+
1458
+ def _typecheckingstub__a8078f0d2a5b371825e053b9bd3d3b431480d8a53a502928b258020d66840f0b(
1459
+ value: builtins.str,
1460
+ ) -> None:
1461
+ """Type checking stubs"""
1462
+ pass
1463
+
1464
+ def _typecheckingstub__13b1b4f9dcb8775caf7897bb1366e6419bc653fc18161596852f846170e69f1c(
1465
+ value: typing.Optional[typing.Union[_cdktf_9a9027ec.IResolvable, ManagedDatabaseUserOpensearchAccessControlRules]],
1466
+ ) -> None:
1467
+ """Type checking stubs"""
1468
+ pass
1469
+
1470
+ def _typecheckingstub__f34e6b56dbd319319ed29790d55c8592357d86f9b7c8e8c14a5c4d70a6787a4f(
1471
+ *,
1472
+ allow_replication: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
1473
+ ) -> None:
1474
+ """Type checking stubs"""
1475
+ pass
1476
+
1477
+ def _typecheckingstub__85fcf89643ce491d5750a1564e2b960c17139df7539f861e2865332a05483b5b(
1478
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1479
+ terraform_attribute: builtins.str,
1480
+ ) -> None:
1481
+ """Type checking stubs"""
1482
+ pass
1483
+
1484
+ def _typecheckingstub__d64766b07261271a83f0b99c9b5994c07b319be03b24ec0486adc7ddcb458552(
1485
+ value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
1486
+ ) -> None:
1487
+ """Type checking stubs"""
1488
+ pass
1489
+
1490
+ def _typecheckingstub__3ef37ebe78b06916a552ac2271f6287ba8f91f8248730c96c7d6d23c8258132c(
1491
+ value: typing.Optional[ManagedDatabaseUserPgAccessControl],
1492
+ ) -> None:
1493
+ """Type checking stubs"""
1494
+ pass
1495
+
1496
+ def _typecheckingstub__2f1493b4bca5854170cbde576964405bb43c4a65a1f4134e3fdb249bbe20358d(
1497
+ *,
1498
+ categories: typing.Optional[typing.Sequence[builtins.str]] = None,
1499
+ channels: typing.Optional[typing.Sequence[builtins.str]] = None,
1500
+ commands: typing.Optional[typing.Sequence[builtins.str]] = None,
1501
+ keys: typing.Optional[typing.Sequence[builtins.str]] = None,
1502
+ ) -> None:
1503
+ """Type checking stubs"""
1504
+ pass
1505
+
1506
+ def _typecheckingstub__60e811bb7552f5b604095a5015d4c3f3505ab56452fbbcbaf69a6a51d0f46768(
1507
+ terraform_resource: _cdktf_9a9027ec.IInterpolatingParent,
1508
+ terraform_attribute: builtins.str,
1509
+ ) -> None:
1510
+ """Type checking stubs"""
1511
+ pass
1512
+
1513
+ def _typecheckingstub__ccd299ae68222ffa9a194acbf7a81cc6852825ca93271fd388a8cd6121ed4f19(
1514
+ value: typing.List[builtins.str],
1515
+ ) -> None:
1516
+ """Type checking stubs"""
1517
+ pass
1518
+
1519
+ def _typecheckingstub__d3b52ad193f7883921cbb74ab75e9b78c1fbce4f8095f08603bbc19c8a429872(
1520
+ value: typing.List[builtins.str],
1521
+ ) -> None:
1522
+ """Type checking stubs"""
1523
+ pass
1524
+
1525
+ def _typecheckingstub__75d52995b6d04add9841ba35e2f51734fdb294de2b4075236624eeac70dbc284(
1526
+ value: typing.List[builtins.str],
1527
+ ) -> None:
1528
+ """Type checking stubs"""
1529
+ pass
1530
+
1531
+ def _typecheckingstub__4d2d78c3e1a8bba65f5829af1ac02a433782d32b8ae35a1f8159c5e851eac810(
1532
+ value: typing.List[builtins.str],
1533
+ ) -> None:
1534
+ """Type checking stubs"""
1535
+ pass
1536
+
1537
+ def _typecheckingstub__cec487a59a2b9bbfdc8f9f8aeeb285858a68a44c95f58c1b7e4379f578adae99(
1538
+ value: typing.Optional[ManagedDatabaseUserValkeyAccessControl],
1539
+ ) -> None:
1540
+ """Type checking stubs"""
1541
+ pass