pulumi-kafka 3.8.0a1723819820__py3-none-any.whl → 3.13.0a1763619276__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.
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "kafka",
4
- "version": "3.8.0-alpha.1723819820"
4
+ "version": "3.13.0-alpha.1763619276"
5
5
  }
pulumi_kafka/quota.py CHANGED
@@ -1,12 +1,17 @@
1
1
  # coding=utf-8
2
- # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
- import copy
5
+ import builtins as _builtins
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['QuotaArgs', 'Quota']
@@ -14,68 +19,69 @@ __all__ = ['QuotaArgs', 'Quota']
14
19
  @pulumi.input_type
15
20
  class QuotaArgs:
16
21
  def __init__(__self__, *,
17
- entity_name: pulumi.Input[str],
18
- entity_type: pulumi.Input[str],
19
- config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
22
+ entity_type: pulumi.Input[_builtins.str],
23
+ config: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
24
+ entity_name: Optional[pulumi.Input[_builtins.str]] = None):
20
25
  """
21
26
  The set of arguments for constructing a Quota resource.
22
- :param pulumi.Input[str] entity_name: The name of the entity to target.
23
- :param pulumi.Input[str] entity_type: The type of entity. Valid values are `client-id`, `user`, `ip`.
24
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] config: A map of string k/v attributes.
27
+ :param pulumi.Input[_builtins.str] entity_type: The type of the entity (client-id, user, ip)
28
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] config: A map of string k/v properties.
29
+ :param pulumi.Input[_builtins.str] entity_name: The name of the entity (if entity_name is not provided, it will create entity-default Kafka quota)
25
30
  """
26
- pulumi.set(__self__, "entity_name", entity_name)
27
31
  pulumi.set(__self__, "entity_type", entity_type)
28
32
  if config is not None:
29
33
  pulumi.set(__self__, "config", config)
34
+ if entity_name is not None:
35
+ pulumi.set(__self__, "entity_name", entity_name)
30
36
 
31
- @property
32
- @pulumi.getter(name="entityName")
33
- def entity_name(self) -> pulumi.Input[str]:
34
- """
35
- The name of the entity to target.
36
- """
37
- return pulumi.get(self, "entity_name")
38
-
39
- @entity_name.setter
40
- def entity_name(self, value: pulumi.Input[str]):
41
- pulumi.set(self, "entity_name", value)
42
-
43
- @property
37
+ @_builtins.property
44
38
  @pulumi.getter(name="entityType")
45
- def entity_type(self) -> pulumi.Input[str]:
39
+ def entity_type(self) -> pulumi.Input[_builtins.str]:
46
40
  """
47
- The type of entity. Valid values are `client-id`, `user`, `ip`.
41
+ The type of the entity (client-id, user, ip)
48
42
  """
49
43
  return pulumi.get(self, "entity_type")
50
44
 
51
45
  @entity_type.setter
52
- def entity_type(self, value: pulumi.Input[str]):
46
+ def entity_type(self, value: pulumi.Input[_builtins.str]):
53
47
  pulumi.set(self, "entity_type", value)
54
48
 
55
- @property
49
+ @_builtins.property
56
50
  @pulumi.getter
57
- def config(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
51
+ def config(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
58
52
  """
59
- A map of string k/v attributes.
53
+ A map of string k/v properties.
60
54
  """
61
55
  return pulumi.get(self, "config")
62
56
 
63
57
  @config.setter
64
- def config(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
58
+ def config(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
65
59
  pulumi.set(self, "config", value)
66
60
 
61
+ @_builtins.property
62
+ @pulumi.getter(name="entityName")
63
+ def entity_name(self) -> Optional[pulumi.Input[_builtins.str]]:
64
+ """
65
+ The name of the entity (if entity_name is not provided, it will create entity-default Kafka quota)
66
+ """
67
+ return pulumi.get(self, "entity_name")
68
+
69
+ @entity_name.setter
70
+ def entity_name(self, value: Optional[pulumi.Input[_builtins.str]]):
71
+ pulumi.set(self, "entity_name", value)
72
+
67
73
 
68
74
  @pulumi.input_type
69
75
  class _QuotaState:
70
76
  def __init__(__self__, *,
71
- config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
72
- entity_name: Optional[pulumi.Input[str]] = None,
73
- entity_type: Optional[pulumi.Input[str]] = None):
77
+ config: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
78
+ entity_name: Optional[pulumi.Input[_builtins.str]] = None,
79
+ entity_type: Optional[pulumi.Input[_builtins.str]] = None):
74
80
  """
75
81
  Input properties used for looking up and filtering Quota resources.
76
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] config: A map of string k/v attributes.
77
- :param pulumi.Input[str] entity_name: The name of the entity to target.
78
- :param pulumi.Input[str] entity_type: The type of entity. Valid values are `client-id`, `user`, `ip`.
82
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] config: A map of string k/v properties.
83
+ :param pulumi.Input[_builtins.str] entity_name: The name of the entity (if entity_name is not provided, it will create entity-default Kafka quota)
84
+ :param pulumi.Input[_builtins.str] entity_type: The type of the entity (client-id, user, ip)
79
85
  """
80
86
  if config is not None:
81
87
  pulumi.set(__self__, "config", config)
@@ -84,75 +90,181 @@ class _QuotaState:
84
90
  if entity_type is not None:
85
91
  pulumi.set(__self__, "entity_type", entity_type)
86
92
 
87
- @property
93
+ @_builtins.property
88
94
  @pulumi.getter
89
- def config(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
95
+ def config(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
90
96
  """
91
- A map of string k/v attributes.
97
+ A map of string k/v properties.
92
98
  """
93
99
  return pulumi.get(self, "config")
94
100
 
95
101
  @config.setter
96
- def config(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
102
+ def config(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
97
103
  pulumi.set(self, "config", value)
98
104
 
99
- @property
105
+ @_builtins.property
100
106
  @pulumi.getter(name="entityName")
101
- def entity_name(self) -> Optional[pulumi.Input[str]]:
107
+ def entity_name(self) -> Optional[pulumi.Input[_builtins.str]]:
102
108
  """
103
- The name of the entity to target.
109
+ The name of the entity (if entity_name is not provided, it will create entity-default Kafka quota)
104
110
  """
105
111
  return pulumi.get(self, "entity_name")
106
112
 
107
113
  @entity_name.setter
108
- def entity_name(self, value: Optional[pulumi.Input[str]]):
114
+ def entity_name(self, value: Optional[pulumi.Input[_builtins.str]]):
109
115
  pulumi.set(self, "entity_name", value)
110
116
 
111
- @property
117
+ @_builtins.property
112
118
  @pulumi.getter(name="entityType")
113
- def entity_type(self) -> Optional[pulumi.Input[str]]:
119
+ def entity_type(self) -> Optional[pulumi.Input[_builtins.str]]:
114
120
  """
115
- The type of entity. Valid values are `client-id`, `user`, `ip`.
121
+ The type of the entity (client-id, user, ip)
116
122
  """
117
123
  return pulumi.get(self, "entity_type")
118
124
 
119
125
  @entity_type.setter
120
- def entity_type(self, value: Optional[pulumi.Input[str]]):
126
+ def entity_type(self, value: Optional[pulumi.Input[_builtins.str]]):
121
127
  pulumi.set(self, "entity_type", value)
122
128
 
123
129
 
130
+ @pulumi.type_token("kafka:index/quota:Quota")
124
131
  class Quota(pulumi.CustomResource):
125
132
  @overload
126
133
  def __init__(__self__,
127
134
  resource_name: str,
128
135
  opts: Optional[pulumi.ResourceOptions] = None,
129
- config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
130
- entity_name: Optional[pulumi.Input[str]] = None,
131
- entity_type: Optional[pulumi.Input[str]] = None,
136
+ config: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
137
+ entity_name: Optional[pulumi.Input[_builtins.str]] = None,
138
+ entity_type: Optional[pulumi.Input[_builtins.str]] = None,
132
139
  __props__=None):
133
140
  """
134
- A resource for managing Kafka quotas.
141
+ The `Quota` resource manages Kafka quotas, which are used to limit resource usage and prevent any single client from monopolizing broker resources. Quotas can be applied to clients, users, or IP addresses to control bandwidth and request rates.
135
142
 
136
143
  ## Example Usage
137
144
 
145
+ ### Client ID Quota
146
+
138
147
  ```python
139
148
  import pulumi
140
149
  import pulumi_kafka as kafka
141
150
 
142
- quota = kafka.Quota("quota",
143
- entity_name="app_consumer",
151
+ # Limit a specific client's bandwidth
152
+ mobile_app = kafka.Quota("mobile_app",
153
+ entity_name="mobile-app-v1",
144
154
  entity_type="client-id",
145
155
  config={
146
156
  "consumer_byte_rate": "5000000",
147
157
  "producer_byte_rate": "2500000",
158
+ "request_percentage": "200",
148
159
  })
149
160
  ```
150
161
 
162
+ ### User Quota
163
+
164
+ ```python
165
+ import pulumi
166
+ import pulumi_kafka as kafka
167
+
168
+ # Set quotas for a specific user
169
+ service_account = kafka.Quota("service_account",
170
+ entity_name="payment-service",
171
+ entity_type="user",
172
+ config={
173
+ "consumer_byte_rate": "10000000",
174
+ "producer_byte_rate": "10000000",
175
+ "request_percentage": "400",
176
+ })
177
+ ```
178
+
179
+ ### Default User Quota
180
+
181
+ ```python
182
+ import pulumi
183
+ import pulumi_kafka as kafka
184
+
185
+ # Set default quotas for all users (when entity_name is omitted)
186
+ default_user = kafka.Quota("default_user",
187
+ entity_type="user",
188
+ config={
189
+ "consumer_byte_rate": "2000000",
190
+ "producer_byte_rate": "1000000",
191
+ "request_percentage": "100",
192
+ })
193
+ ```
194
+
195
+ ### IP Address Quota
196
+
197
+ ```python
198
+ import pulumi
199
+ import pulumi_kafka as kafka
200
+
201
+ # Rate limit connections from a specific IP
202
+ external_ip = kafka.Quota("external_ip",
203
+ entity_name="203.0.113.0",
204
+ entity_type="ip",
205
+ config={
206
+ "connection_creation_rate": "10",
207
+ })
208
+ ```
209
+
210
+ ## Quota Configuration Options
211
+
212
+ ### Bandwidth Quotas
213
+ - `producer_byte_rate` - The maximum bytes per second that can be produced by the entity
214
+ - `consumer_byte_rate` - The maximum bytes per second that can be consumed by the entity
215
+
216
+ ### Request Rate Quotas
217
+ - `request_percentage` - The percentage of CPU time on each broker that the entity can use for requests. Values > 100% indicate multiple CPUs (e.g., 200% = 2 CPUs)
218
+
219
+ ### Connection Quotas (IP-based only)
220
+ - `connection_creation_rate` - The maximum rate of new connections per second from the IP address
221
+
222
+ ## Quota Precedence
223
+
224
+ When multiple quotas apply to a request, Kafka uses the most specific quota:
225
+
226
+ 1. `/config/users/<user>/clients/<client-id>` (most specific)
227
+ 2. `/config/users/<user>/clients/<default>`
228
+ 3. `/config/users/<user>`
229
+ 4. `/config/users/<default>/clients/<client-id>`
230
+ 5. `/config/users/<default>/clients/<default>`
231
+ 6. `/config/users/<default>` (least specific)
232
+
233
+ ## Best Practices
234
+
235
+ 1. **Start with Conservative Defaults**: Set reasonable default quotas for all users/clients and then create specific quotas for services that need higher limits.
236
+
237
+ 2. **Monitor Quota Usage**: Use Kafka metrics to monitor quota utilization and adjust as needed. Look for throttling metrics to identify when quotas are being hit.
238
+
239
+ 3. **Use Request Percentage Carefully**: The `request_percentage` quota affects CPU usage. Values over 100% mean the client can use more than one CPU core.
240
+
241
+ 4. **Plan for Growth**: Set quotas with some headroom to accommodate traffic growth, but not so high that a misbehaving client can impact the cluster.
242
+
243
+ 5. **Different Quotas for Different Environments**: Use stricter quotas in development/staging environments compared to production.
244
+
245
+ > **Note:** Quotas are applied immediately but may take a few seconds to propagate across all brokers.
246
+
247
+ ## Import
248
+
249
+ Kafka quotas can be imported using the entity type and name:
250
+
251
+ For named entities
252
+
253
+ ```sh
254
+ $ pulumi import kafka:index/quota:Quota example client-id:my-client
255
+ ```
256
+
257
+ For default quotas (no entity name)
258
+
259
+ ```sh
260
+ $ pulumi import kafka:index/quota:Quota default_user user:
261
+ ```
262
+
151
263
  :param str resource_name: The name of the resource.
152
264
  :param pulumi.ResourceOptions opts: Options for the resource.
153
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] config: A map of string k/v attributes.
154
- :param pulumi.Input[str] entity_name: The name of the entity to target.
155
- :param pulumi.Input[str] entity_type: The type of entity. Valid values are `client-id`, `user`, `ip`.
265
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] config: A map of string k/v properties.
266
+ :param pulumi.Input[_builtins.str] entity_name: The name of the entity (if entity_name is not provided, it will create entity-default Kafka quota)
267
+ :param pulumi.Input[_builtins.str] entity_type: The type of the entity (client-id, user, ip)
156
268
  """
157
269
  ...
158
270
  @overload
@@ -161,23 +273,128 @@ class Quota(pulumi.CustomResource):
161
273
  args: QuotaArgs,
162
274
  opts: Optional[pulumi.ResourceOptions] = None):
163
275
  """
164
- A resource for managing Kafka quotas.
276
+ The `Quota` resource manages Kafka quotas, which are used to limit resource usage and prevent any single client from monopolizing broker resources. Quotas can be applied to clients, users, or IP addresses to control bandwidth and request rates.
165
277
 
166
278
  ## Example Usage
167
279
 
280
+ ### Client ID Quota
281
+
168
282
  ```python
169
283
  import pulumi
170
284
  import pulumi_kafka as kafka
171
285
 
172
- quota = kafka.Quota("quota",
173
- entity_name="app_consumer",
286
+ # Limit a specific client's bandwidth
287
+ mobile_app = kafka.Quota("mobile_app",
288
+ entity_name="mobile-app-v1",
174
289
  entity_type="client-id",
175
290
  config={
176
291
  "consumer_byte_rate": "5000000",
177
292
  "producer_byte_rate": "2500000",
293
+ "request_percentage": "200",
294
+ })
295
+ ```
296
+
297
+ ### User Quota
298
+
299
+ ```python
300
+ import pulumi
301
+ import pulumi_kafka as kafka
302
+
303
+ # Set quotas for a specific user
304
+ service_account = kafka.Quota("service_account",
305
+ entity_name="payment-service",
306
+ entity_type="user",
307
+ config={
308
+ "consumer_byte_rate": "10000000",
309
+ "producer_byte_rate": "10000000",
310
+ "request_percentage": "400",
178
311
  })
179
312
  ```
180
313
 
314
+ ### Default User Quota
315
+
316
+ ```python
317
+ import pulumi
318
+ import pulumi_kafka as kafka
319
+
320
+ # Set default quotas for all users (when entity_name is omitted)
321
+ default_user = kafka.Quota("default_user",
322
+ entity_type="user",
323
+ config={
324
+ "consumer_byte_rate": "2000000",
325
+ "producer_byte_rate": "1000000",
326
+ "request_percentage": "100",
327
+ })
328
+ ```
329
+
330
+ ### IP Address Quota
331
+
332
+ ```python
333
+ import pulumi
334
+ import pulumi_kafka as kafka
335
+
336
+ # Rate limit connections from a specific IP
337
+ external_ip = kafka.Quota("external_ip",
338
+ entity_name="203.0.113.0",
339
+ entity_type="ip",
340
+ config={
341
+ "connection_creation_rate": "10",
342
+ })
343
+ ```
344
+
345
+ ## Quota Configuration Options
346
+
347
+ ### Bandwidth Quotas
348
+ - `producer_byte_rate` - The maximum bytes per second that can be produced by the entity
349
+ - `consumer_byte_rate` - The maximum bytes per second that can be consumed by the entity
350
+
351
+ ### Request Rate Quotas
352
+ - `request_percentage` - The percentage of CPU time on each broker that the entity can use for requests. Values > 100% indicate multiple CPUs (e.g., 200% = 2 CPUs)
353
+
354
+ ### Connection Quotas (IP-based only)
355
+ - `connection_creation_rate` - The maximum rate of new connections per second from the IP address
356
+
357
+ ## Quota Precedence
358
+
359
+ When multiple quotas apply to a request, Kafka uses the most specific quota:
360
+
361
+ 1. `/config/users/<user>/clients/<client-id>` (most specific)
362
+ 2. `/config/users/<user>/clients/<default>`
363
+ 3. `/config/users/<user>`
364
+ 4. `/config/users/<default>/clients/<client-id>`
365
+ 5. `/config/users/<default>/clients/<default>`
366
+ 6. `/config/users/<default>` (least specific)
367
+
368
+ ## Best Practices
369
+
370
+ 1. **Start with Conservative Defaults**: Set reasonable default quotas for all users/clients and then create specific quotas for services that need higher limits.
371
+
372
+ 2. **Monitor Quota Usage**: Use Kafka metrics to monitor quota utilization and adjust as needed. Look for throttling metrics to identify when quotas are being hit.
373
+
374
+ 3. **Use Request Percentage Carefully**: The `request_percentage` quota affects CPU usage. Values over 100% mean the client can use more than one CPU core.
375
+
376
+ 4. **Plan for Growth**: Set quotas with some headroom to accommodate traffic growth, but not so high that a misbehaving client can impact the cluster.
377
+
378
+ 5. **Different Quotas for Different Environments**: Use stricter quotas in development/staging environments compared to production.
379
+
380
+ > **Note:** Quotas are applied immediately but may take a few seconds to propagate across all brokers.
381
+
382
+ ## Import
383
+
384
+ Kafka quotas can be imported using the entity type and name:
385
+
386
+ For named entities
387
+
388
+ ```sh
389
+ $ pulumi import kafka:index/quota:Quota example client-id:my-client
390
+ ```
391
+
392
+ For default quotas (no entity name)
393
+
394
+ ```sh
395
+ $ pulumi import kafka:index/quota:Quota default_user user:
396
+ ```
397
+
181
398
  :param str resource_name: The name of the resource.
182
399
  :param QuotaArgs args: The arguments to use to populate this resource's properties.
183
400
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -193,9 +410,9 @@ class Quota(pulumi.CustomResource):
193
410
  def _internal_init(__self__,
194
411
  resource_name: str,
195
412
  opts: Optional[pulumi.ResourceOptions] = None,
196
- config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
197
- entity_name: Optional[pulumi.Input[str]] = None,
198
- entity_type: Optional[pulumi.Input[str]] = None,
413
+ config: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
414
+ entity_name: Optional[pulumi.Input[_builtins.str]] = None,
415
+ entity_type: Optional[pulumi.Input[_builtins.str]] = None,
199
416
  __props__=None):
200
417
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
201
418
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -206,8 +423,6 @@ class Quota(pulumi.CustomResource):
206
423
  __props__ = QuotaArgs.__new__(QuotaArgs)
207
424
 
208
425
  __props__.__dict__["config"] = config
209
- if entity_name is None and not opts.urn:
210
- raise TypeError("Missing required property 'entity_name'")
211
426
  __props__.__dict__["entity_name"] = entity_name
212
427
  if entity_type is None and not opts.urn:
213
428
  raise TypeError("Missing required property 'entity_type'")
@@ -222,9 +437,9 @@ class Quota(pulumi.CustomResource):
222
437
  def get(resource_name: str,
223
438
  id: pulumi.Input[str],
224
439
  opts: Optional[pulumi.ResourceOptions] = None,
225
- config: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
226
- entity_name: Optional[pulumi.Input[str]] = None,
227
- entity_type: Optional[pulumi.Input[str]] = None) -> 'Quota':
440
+ config: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
441
+ entity_name: Optional[pulumi.Input[_builtins.str]] = None,
442
+ entity_type: Optional[pulumi.Input[_builtins.str]] = None) -> 'Quota':
228
443
  """
229
444
  Get an existing Quota resource's state with the given name, id, and optional extra
230
445
  properties used to qualify the lookup.
@@ -232,9 +447,9 @@ class Quota(pulumi.CustomResource):
232
447
  :param str resource_name: The unique name of the resulting resource.
233
448
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
234
449
  :param pulumi.ResourceOptions opts: Options for the resource.
235
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] config: A map of string k/v attributes.
236
- :param pulumi.Input[str] entity_name: The name of the entity to target.
237
- :param pulumi.Input[str] entity_type: The type of entity. Valid values are `client-id`, `user`, `ip`.
450
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] config: A map of string k/v properties.
451
+ :param pulumi.Input[_builtins.str] entity_name: The name of the entity (if entity_name is not provided, it will create entity-default Kafka quota)
452
+ :param pulumi.Input[_builtins.str] entity_type: The type of the entity (client-id, user, ip)
238
453
  """
239
454
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
240
455
 
@@ -245,27 +460,27 @@ class Quota(pulumi.CustomResource):
245
460
  __props__.__dict__["entity_type"] = entity_type
246
461
  return Quota(resource_name, opts=opts, __props__=__props__)
247
462
 
248
- @property
463
+ @_builtins.property
249
464
  @pulumi.getter
250
- def config(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
465
+ def config(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
251
466
  """
252
- A map of string k/v attributes.
467
+ A map of string k/v properties.
253
468
  """
254
469
  return pulumi.get(self, "config")
255
470
 
256
- @property
471
+ @_builtins.property
257
472
  @pulumi.getter(name="entityName")
258
- def entity_name(self) -> pulumi.Output[str]:
473
+ def entity_name(self) -> pulumi.Output[Optional[_builtins.str]]:
259
474
  """
260
- The name of the entity to target.
475
+ The name of the entity (if entity_name is not provided, it will create entity-default Kafka quota)
261
476
  """
262
477
  return pulumi.get(self, "entity_name")
263
478
 
264
- @property
479
+ @_builtins.property
265
480
  @pulumi.getter(name="entityType")
266
- def entity_type(self) -> pulumi.Output[str]:
481
+ def entity_type(self) -> pulumi.Output[_builtins.str]:
267
482
  """
268
- The type of entity. Valid values are `client-id`, `user`, `ip`.
483
+ The type of the entity (client-id, user, ip)
269
484
  """
270
485
  return pulumi.get(self, "entity_type")
271
486