pulumi-aiven 6.15.0a1715335403__py3-none-any.whl → 6.16.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pulumi-aiven might be problematic. Click here for more details.

Files changed (44) hide show
  1. pulumi_aiven/__init__.py +19 -0
  2. pulumi_aiven/_inputs.py +1272 -248
  3. pulumi_aiven/cassandra.py +48 -1
  4. pulumi_aiven/clickhouse.py +48 -1
  5. pulumi_aiven/clickhouse_role.py +2 -2
  6. pulumi_aiven/dragonfly.py +48 -1
  7. pulumi_aiven/flink.py +2 -2
  8. pulumi_aiven/flink_application_deployment.py +56 -30
  9. pulumi_aiven/gcp_privatelink.py +52 -30
  10. pulumi_aiven/gcp_privatelink_connection_approval.py +54 -30
  11. pulumi_aiven/get_cassanda.py +14 -1
  12. pulumi_aiven/get_cassandra.py +14 -1
  13. pulumi_aiven/get_clickhouse.py +14 -1
  14. pulumi_aiven/get_dragonfly.py +14 -1
  15. pulumi_aiven/get_gcp_privatelink.py +45 -2
  16. pulumi_aiven/get_grafana.py +14 -1
  17. pulumi_aiven/get_m3_aggregator.py +14 -1
  18. pulumi_aiven/get_m3_db.py +14 -1
  19. pulumi_aiven/get_mirror_maker_replication_flow.py +1 -1
  20. pulumi_aiven/get_my_sql.py +14 -1
  21. pulumi_aiven/get_organization_application_user.py +156 -0
  22. pulumi_aiven/get_redis.py +14 -1
  23. pulumi_aiven/get_service_integration.py +3 -3
  24. pulumi_aiven/get_service_integration_endpoint.py +1 -1
  25. pulumi_aiven/grafana.py +48 -1
  26. pulumi_aiven/influx_db.py +21 -2
  27. pulumi_aiven/kafka.py +20 -1
  28. pulumi_aiven/m3_aggregator.py +48 -1
  29. pulumi_aiven/m3_db.py +48 -1
  30. pulumi_aiven/mirror_maker_replication_flow.py +7 -7
  31. pulumi_aiven/my_sql.py +48 -1
  32. pulumi_aiven/open_search.py +21 -2
  33. pulumi_aiven/organization_application_user.py +323 -0
  34. pulumi_aiven/organization_application_user_token.py +742 -0
  35. pulumi_aiven/outputs.py +1870 -285
  36. pulumi_aiven/pg.py +2 -2
  37. pulumi_aiven/pulumi-plugin.json +2 -1
  38. pulumi_aiven/redis.py +48 -1
  39. pulumi_aiven/service_integration.py +7 -7
  40. pulumi_aiven/service_integration_endpoint.py +7 -7
  41. {pulumi_aiven-6.15.0a1715335403.dist-info → pulumi_aiven-6.16.0.dist-info}/METADATA +1 -1
  42. {pulumi_aiven-6.15.0a1715335403.dist-info → pulumi_aiven-6.16.0.dist-info}/RECORD +44 -41
  43. {pulumi_aiven-6.15.0a1715335403.dist-info → pulumi_aiven-6.16.0.dist-info}/WHEEL +0 -0
  44. {pulumi_aiven-6.15.0a1715335403.dist-info → pulumi_aiven-6.16.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,742 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from . import _utilities
11
+ from . import outputs
12
+ from ._inputs import *
13
+
14
+ __all__ = ['OrganizationApplicationUserTokenArgs', 'OrganizationApplicationUserToken']
15
+
16
+ @pulumi.input_type
17
+ class OrganizationApplicationUserTokenArgs:
18
+ def __init__(__self__, *,
19
+ organization_id: pulumi.Input[str],
20
+ user_id: pulumi.Input[str],
21
+ description: Optional[pulumi.Input[str]] = None,
22
+ extend_when_used: Optional[pulumi.Input[bool]] = None,
23
+ max_age_seconds: Optional[pulumi.Input[float]] = None,
24
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
25
+ timeouts: Optional[pulumi.Input['OrganizationApplicationUserTokenTimeoutsArgs']] = None):
26
+ """
27
+ The set of arguments for constructing a OrganizationApplicationUserToken resource.
28
+ :param pulumi.Input[str] organization_id: The ID of the organization the application user belongs to.
29
+ :param pulumi.Input[str] user_id: The ID of the application user the token is created for.
30
+ :param pulumi.Input[str] description: Description of the token.
31
+ :param pulumi.Input[bool] extend_when_used: Extends the token session duration when the token is used. Only applicable if a value is set for `max_age_seconds`.
32
+ :param pulumi.Input[float] max_age_seconds: The number of hours after which a token expires. Default session duration is 10 hours.
33
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: Restricts the scopes for this token.
34
+ """
35
+ pulumi.set(__self__, "organization_id", organization_id)
36
+ pulumi.set(__self__, "user_id", user_id)
37
+ if description is not None:
38
+ pulumi.set(__self__, "description", description)
39
+ if extend_when_used is not None:
40
+ pulumi.set(__self__, "extend_when_used", extend_when_used)
41
+ if max_age_seconds is not None:
42
+ pulumi.set(__self__, "max_age_seconds", max_age_seconds)
43
+ if scopes is not None:
44
+ pulumi.set(__self__, "scopes", scopes)
45
+ if timeouts is not None:
46
+ pulumi.set(__self__, "timeouts", timeouts)
47
+
48
+ @property
49
+ @pulumi.getter(name="organizationId")
50
+ def organization_id(self) -> pulumi.Input[str]:
51
+ """
52
+ The ID of the organization the application user belongs to.
53
+ """
54
+ return pulumi.get(self, "organization_id")
55
+
56
+ @organization_id.setter
57
+ def organization_id(self, value: pulumi.Input[str]):
58
+ pulumi.set(self, "organization_id", value)
59
+
60
+ @property
61
+ @pulumi.getter(name="userId")
62
+ def user_id(self) -> pulumi.Input[str]:
63
+ """
64
+ The ID of the application user the token is created for.
65
+ """
66
+ return pulumi.get(self, "user_id")
67
+
68
+ @user_id.setter
69
+ def user_id(self, value: pulumi.Input[str]):
70
+ pulumi.set(self, "user_id", value)
71
+
72
+ @property
73
+ @pulumi.getter
74
+ def description(self) -> Optional[pulumi.Input[str]]:
75
+ """
76
+ Description of the token.
77
+ """
78
+ return pulumi.get(self, "description")
79
+
80
+ @description.setter
81
+ def description(self, value: Optional[pulumi.Input[str]]):
82
+ pulumi.set(self, "description", value)
83
+
84
+ @property
85
+ @pulumi.getter(name="extendWhenUsed")
86
+ def extend_when_used(self) -> Optional[pulumi.Input[bool]]:
87
+ """
88
+ Extends the token session duration when the token is used. Only applicable if a value is set for `max_age_seconds`.
89
+ """
90
+ return pulumi.get(self, "extend_when_used")
91
+
92
+ @extend_when_used.setter
93
+ def extend_when_used(self, value: Optional[pulumi.Input[bool]]):
94
+ pulumi.set(self, "extend_when_used", value)
95
+
96
+ @property
97
+ @pulumi.getter(name="maxAgeSeconds")
98
+ def max_age_seconds(self) -> Optional[pulumi.Input[float]]:
99
+ """
100
+ The number of hours after which a token expires. Default session duration is 10 hours.
101
+ """
102
+ return pulumi.get(self, "max_age_seconds")
103
+
104
+ @max_age_seconds.setter
105
+ def max_age_seconds(self, value: Optional[pulumi.Input[float]]):
106
+ pulumi.set(self, "max_age_seconds", value)
107
+
108
+ @property
109
+ @pulumi.getter
110
+ def scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
111
+ """
112
+ Restricts the scopes for this token.
113
+ """
114
+ return pulumi.get(self, "scopes")
115
+
116
+ @scopes.setter
117
+ def scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
118
+ pulumi.set(self, "scopes", value)
119
+
120
+ @property
121
+ @pulumi.getter
122
+ def timeouts(self) -> Optional[pulumi.Input['OrganizationApplicationUserTokenTimeoutsArgs']]:
123
+ return pulumi.get(self, "timeouts")
124
+
125
+ @timeouts.setter
126
+ def timeouts(self, value: Optional[pulumi.Input['OrganizationApplicationUserTokenTimeoutsArgs']]):
127
+ pulumi.set(self, "timeouts", value)
128
+
129
+
130
+ @pulumi.input_type
131
+ class _OrganizationApplicationUserTokenState:
132
+ def __init__(__self__, *,
133
+ create_time: Optional[pulumi.Input[str]] = None,
134
+ created_manually: Optional[pulumi.Input[bool]] = None,
135
+ currently_active: Optional[pulumi.Input[bool]] = None,
136
+ description: Optional[pulumi.Input[str]] = None,
137
+ expiry_time: Optional[pulumi.Input[str]] = None,
138
+ extend_when_used: Optional[pulumi.Input[bool]] = None,
139
+ full_token: Optional[pulumi.Input[str]] = None,
140
+ last_ip: Optional[pulumi.Input[str]] = None,
141
+ last_used_time: Optional[pulumi.Input[str]] = None,
142
+ last_user_agent: Optional[pulumi.Input[str]] = None,
143
+ last_user_agent_human_readable: Optional[pulumi.Input[str]] = None,
144
+ max_age_seconds: Optional[pulumi.Input[float]] = None,
145
+ organization_id: Optional[pulumi.Input[str]] = None,
146
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
147
+ timeouts: Optional[pulumi.Input['OrganizationApplicationUserTokenTimeoutsArgs']] = None,
148
+ token_prefix: Optional[pulumi.Input[str]] = None,
149
+ user_id: Optional[pulumi.Input[str]] = None):
150
+ """
151
+ Input properties used for looking up and filtering OrganizationApplicationUserToken resources.
152
+ :param pulumi.Input[str] create_time: Time when the token was created.
153
+ :param pulumi.Input[bool] created_manually: True for tokens explicitly created using the `access_tokens` API. False for tokens created when a user logs in.
154
+ :param pulumi.Input[bool] currently_active: True if the API request was made with this token.
155
+ :param pulumi.Input[str] description: Description of the token.
156
+ :param pulumi.Input[str] expiry_time: Timestamp when the access token will expire unless extended.
157
+ :param pulumi.Input[bool] extend_when_used: Extends the token session duration when the token is used. Only applicable if a value is set for `max_age_seconds`.
158
+ :param pulumi.Input[str] full_token: Full token.
159
+ :param pulumi.Input[str] last_ip: IP address of the last request made with this token.
160
+ :param pulumi.Input[str] last_used_time: Timestamp when the access token was last used.
161
+ :param pulumi.Input[str] last_user_agent: User agent of the last request made with this token.
162
+ :param pulumi.Input[str] last_user_agent_human_readable: User agent of the last request made with this token in human-readable format.
163
+ :param pulumi.Input[float] max_age_seconds: The number of hours after which a token expires. Default session duration is 10 hours.
164
+ :param pulumi.Input[str] organization_id: The ID of the organization the application user belongs to.
165
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: Restricts the scopes for this token.
166
+ :param pulumi.Input[str] token_prefix: Prefix of the token.
167
+ :param pulumi.Input[str] user_id: The ID of the application user the token is created for.
168
+ """
169
+ if create_time is not None:
170
+ pulumi.set(__self__, "create_time", create_time)
171
+ if created_manually is not None:
172
+ pulumi.set(__self__, "created_manually", created_manually)
173
+ if currently_active is not None:
174
+ pulumi.set(__self__, "currently_active", currently_active)
175
+ if description is not None:
176
+ pulumi.set(__self__, "description", description)
177
+ if expiry_time is not None:
178
+ pulumi.set(__self__, "expiry_time", expiry_time)
179
+ if extend_when_used is not None:
180
+ pulumi.set(__self__, "extend_when_used", extend_when_used)
181
+ if full_token is not None:
182
+ pulumi.set(__self__, "full_token", full_token)
183
+ if last_ip is not None:
184
+ pulumi.set(__self__, "last_ip", last_ip)
185
+ if last_used_time is not None:
186
+ pulumi.set(__self__, "last_used_time", last_used_time)
187
+ if last_user_agent is not None:
188
+ pulumi.set(__self__, "last_user_agent", last_user_agent)
189
+ if last_user_agent_human_readable is not None:
190
+ pulumi.set(__self__, "last_user_agent_human_readable", last_user_agent_human_readable)
191
+ if max_age_seconds is not None:
192
+ pulumi.set(__self__, "max_age_seconds", max_age_seconds)
193
+ if organization_id is not None:
194
+ pulumi.set(__self__, "organization_id", organization_id)
195
+ if scopes is not None:
196
+ pulumi.set(__self__, "scopes", scopes)
197
+ if timeouts is not None:
198
+ pulumi.set(__self__, "timeouts", timeouts)
199
+ if token_prefix is not None:
200
+ pulumi.set(__self__, "token_prefix", token_prefix)
201
+ if user_id is not None:
202
+ pulumi.set(__self__, "user_id", user_id)
203
+
204
+ @property
205
+ @pulumi.getter(name="createTime")
206
+ def create_time(self) -> Optional[pulumi.Input[str]]:
207
+ """
208
+ Time when the token was created.
209
+ """
210
+ return pulumi.get(self, "create_time")
211
+
212
+ @create_time.setter
213
+ def create_time(self, value: Optional[pulumi.Input[str]]):
214
+ pulumi.set(self, "create_time", value)
215
+
216
+ @property
217
+ @pulumi.getter(name="createdManually")
218
+ def created_manually(self) -> Optional[pulumi.Input[bool]]:
219
+ """
220
+ True for tokens explicitly created using the `access_tokens` API. False for tokens created when a user logs in.
221
+ """
222
+ return pulumi.get(self, "created_manually")
223
+
224
+ @created_manually.setter
225
+ def created_manually(self, value: Optional[pulumi.Input[bool]]):
226
+ pulumi.set(self, "created_manually", value)
227
+
228
+ @property
229
+ @pulumi.getter(name="currentlyActive")
230
+ def currently_active(self) -> Optional[pulumi.Input[bool]]:
231
+ """
232
+ True if the API request was made with this token.
233
+ """
234
+ return pulumi.get(self, "currently_active")
235
+
236
+ @currently_active.setter
237
+ def currently_active(self, value: Optional[pulumi.Input[bool]]):
238
+ pulumi.set(self, "currently_active", value)
239
+
240
+ @property
241
+ @pulumi.getter
242
+ def description(self) -> Optional[pulumi.Input[str]]:
243
+ """
244
+ Description of the token.
245
+ """
246
+ return pulumi.get(self, "description")
247
+
248
+ @description.setter
249
+ def description(self, value: Optional[pulumi.Input[str]]):
250
+ pulumi.set(self, "description", value)
251
+
252
+ @property
253
+ @pulumi.getter(name="expiryTime")
254
+ def expiry_time(self) -> Optional[pulumi.Input[str]]:
255
+ """
256
+ Timestamp when the access token will expire unless extended.
257
+ """
258
+ return pulumi.get(self, "expiry_time")
259
+
260
+ @expiry_time.setter
261
+ def expiry_time(self, value: Optional[pulumi.Input[str]]):
262
+ pulumi.set(self, "expiry_time", value)
263
+
264
+ @property
265
+ @pulumi.getter(name="extendWhenUsed")
266
+ def extend_when_used(self) -> Optional[pulumi.Input[bool]]:
267
+ """
268
+ Extends the token session duration when the token is used. Only applicable if a value is set for `max_age_seconds`.
269
+ """
270
+ return pulumi.get(self, "extend_when_used")
271
+
272
+ @extend_when_used.setter
273
+ def extend_when_used(self, value: Optional[pulumi.Input[bool]]):
274
+ pulumi.set(self, "extend_when_used", value)
275
+
276
+ @property
277
+ @pulumi.getter(name="fullToken")
278
+ def full_token(self) -> Optional[pulumi.Input[str]]:
279
+ """
280
+ Full token.
281
+ """
282
+ return pulumi.get(self, "full_token")
283
+
284
+ @full_token.setter
285
+ def full_token(self, value: Optional[pulumi.Input[str]]):
286
+ pulumi.set(self, "full_token", value)
287
+
288
+ @property
289
+ @pulumi.getter(name="lastIp")
290
+ def last_ip(self) -> Optional[pulumi.Input[str]]:
291
+ """
292
+ IP address of the last request made with this token.
293
+ """
294
+ return pulumi.get(self, "last_ip")
295
+
296
+ @last_ip.setter
297
+ def last_ip(self, value: Optional[pulumi.Input[str]]):
298
+ pulumi.set(self, "last_ip", value)
299
+
300
+ @property
301
+ @pulumi.getter(name="lastUsedTime")
302
+ def last_used_time(self) -> Optional[pulumi.Input[str]]:
303
+ """
304
+ Timestamp when the access token was last used.
305
+ """
306
+ return pulumi.get(self, "last_used_time")
307
+
308
+ @last_used_time.setter
309
+ def last_used_time(self, value: Optional[pulumi.Input[str]]):
310
+ pulumi.set(self, "last_used_time", value)
311
+
312
+ @property
313
+ @pulumi.getter(name="lastUserAgent")
314
+ def last_user_agent(self) -> Optional[pulumi.Input[str]]:
315
+ """
316
+ User agent of the last request made with this token.
317
+ """
318
+ return pulumi.get(self, "last_user_agent")
319
+
320
+ @last_user_agent.setter
321
+ def last_user_agent(self, value: Optional[pulumi.Input[str]]):
322
+ pulumi.set(self, "last_user_agent", value)
323
+
324
+ @property
325
+ @pulumi.getter(name="lastUserAgentHumanReadable")
326
+ def last_user_agent_human_readable(self) -> Optional[pulumi.Input[str]]:
327
+ """
328
+ User agent of the last request made with this token in human-readable format.
329
+ """
330
+ return pulumi.get(self, "last_user_agent_human_readable")
331
+
332
+ @last_user_agent_human_readable.setter
333
+ def last_user_agent_human_readable(self, value: Optional[pulumi.Input[str]]):
334
+ pulumi.set(self, "last_user_agent_human_readable", value)
335
+
336
+ @property
337
+ @pulumi.getter(name="maxAgeSeconds")
338
+ def max_age_seconds(self) -> Optional[pulumi.Input[float]]:
339
+ """
340
+ The number of hours after which a token expires. Default session duration is 10 hours.
341
+ """
342
+ return pulumi.get(self, "max_age_seconds")
343
+
344
+ @max_age_seconds.setter
345
+ def max_age_seconds(self, value: Optional[pulumi.Input[float]]):
346
+ pulumi.set(self, "max_age_seconds", value)
347
+
348
+ @property
349
+ @pulumi.getter(name="organizationId")
350
+ def organization_id(self) -> Optional[pulumi.Input[str]]:
351
+ """
352
+ The ID of the organization the application user belongs to.
353
+ """
354
+ return pulumi.get(self, "organization_id")
355
+
356
+ @organization_id.setter
357
+ def organization_id(self, value: Optional[pulumi.Input[str]]):
358
+ pulumi.set(self, "organization_id", value)
359
+
360
+ @property
361
+ @pulumi.getter
362
+ def scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
363
+ """
364
+ Restricts the scopes for this token.
365
+ """
366
+ return pulumi.get(self, "scopes")
367
+
368
+ @scopes.setter
369
+ def scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
370
+ pulumi.set(self, "scopes", value)
371
+
372
+ @property
373
+ @pulumi.getter
374
+ def timeouts(self) -> Optional[pulumi.Input['OrganizationApplicationUserTokenTimeoutsArgs']]:
375
+ return pulumi.get(self, "timeouts")
376
+
377
+ @timeouts.setter
378
+ def timeouts(self, value: Optional[pulumi.Input['OrganizationApplicationUserTokenTimeoutsArgs']]):
379
+ pulumi.set(self, "timeouts", value)
380
+
381
+ @property
382
+ @pulumi.getter(name="tokenPrefix")
383
+ def token_prefix(self) -> Optional[pulumi.Input[str]]:
384
+ """
385
+ Prefix of the token.
386
+ """
387
+ return pulumi.get(self, "token_prefix")
388
+
389
+ @token_prefix.setter
390
+ def token_prefix(self, value: Optional[pulumi.Input[str]]):
391
+ pulumi.set(self, "token_prefix", value)
392
+
393
+ @property
394
+ @pulumi.getter(name="userId")
395
+ def user_id(self) -> Optional[pulumi.Input[str]]:
396
+ """
397
+ The ID of the application user the token is created for.
398
+ """
399
+ return pulumi.get(self, "user_id")
400
+
401
+ @user_id.setter
402
+ def user_id(self, value: Optional[pulumi.Input[str]]):
403
+ pulumi.set(self, "user_id", value)
404
+
405
+
406
+ class OrganizationApplicationUserToken(pulumi.CustomResource):
407
+ @overload
408
+ def __init__(__self__,
409
+ resource_name: str,
410
+ opts: Optional[pulumi.ResourceOptions] = None,
411
+ description: Optional[pulumi.Input[str]] = None,
412
+ extend_when_used: Optional[pulumi.Input[bool]] = None,
413
+ max_age_seconds: Optional[pulumi.Input[float]] = None,
414
+ organization_id: Optional[pulumi.Input[str]] = None,
415
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
416
+ timeouts: Optional[pulumi.Input[pulumi.InputType['OrganizationApplicationUserTokenTimeoutsArgs']]] = None,
417
+ user_id: Optional[pulumi.Input[str]] = None,
418
+ __props__=None):
419
+ """
420
+ Creates and manages an application user token. Review the [best practices](https://aiven.io/docs/platform/concepts/application-users#security-best-practices) for securing application users and their tokens.
421
+
422
+ ## Example Usage
423
+
424
+ ```python
425
+ import pulumi
426
+ import pulumi_aiven as aiven
427
+
428
+ tf_user = aiven.OrganizationApplicationUser("tf_user",
429
+ organization_id=main["id"],
430
+ name="app-terraform")
431
+ example = aiven.OrganizationApplicationUserToken("example",
432
+ organization_id=main["id"],
433
+ user_id=tf_user.user_id,
434
+ description="Token for TF access to Aiven.")
435
+ ```
436
+
437
+ ## Import
438
+
439
+ ```sh
440
+ $ pulumi import aiven:index/organizationApplicationUserToken:OrganizationApplicationUserToken example ORGANIZATION_ID/USER_ID/TOKEN_PREFIX
441
+ ```
442
+
443
+ :param str resource_name: The name of the resource.
444
+ :param pulumi.ResourceOptions opts: Options for the resource.
445
+ :param pulumi.Input[str] description: Description of the token.
446
+ :param pulumi.Input[bool] extend_when_used: Extends the token session duration when the token is used. Only applicable if a value is set for `max_age_seconds`.
447
+ :param pulumi.Input[float] max_age_seconds: The number of hours after which a token expires. Default session duration is 10 hours.
448
+ :param pulumi.Input[str] organization_id: The ID of the organization the application user belongs to.
449
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: Restricts the scopes for this token.
450
+ :param pulumi.Input[str] user_id: The ID of the application user the token is created for.
451
+ """
452
+ ...
453
+ @overload
454
+ def __init__(__self__,
455
+ resource_name: str,
456
+ args: OrganizationApplicationUserTokenArgs,
457
+ opts: Optional[pulumi.ResourceOptions] = None):
458
+ """
459
+ Creates and manages an application user token. Review the [best practices](https://aiven.io/docs/platform/concepts/application-users#security-best-practices) for securing application users and their tokens.
460
+
461
+ ## Example Usage
462
+
463
+ ```python
464
+ import pulumi
465
+ import pulumi_aiven as aiven
466
+
467
+ tf_user = aiven.OrganizationApplicationUser("tf_user",
468
+ organization_id=main["id"],
469
+ name="app-terraform")
470
+ example = aiven.OrganizationApplicationUserToken("example",
471
+ organization_id=main["id"],
472
+ user_id=tf_user.user_id,
473
+ description="Token for TF access to Aiven.")
474
+ ```
475
+
476
+ ## Import
477
+
478
+ ```sh
479
+ $ pulumi import aiven:index/organizationApplicationUserToken:OrganizationApplicationUserToken example ORGANIZATION_ID/USER_ID/TOKEN_PREFIX
480
+ ```
481
+
482
+ :param str resource_name: The name of the resource.
483
+ :param OrganizationApplicationUserTokenArgs args: The arguments to use to populate this resource's properties.
484
+ :param pulumi.ResourceOptions opts: Options for the resource.
485
+ """
486
+ ...
487
+ def __init__(__self__, resource_name: str, *args, **kwargs):
488
+ resource_args, opts = _utilities.get_resource_args_opts(OrganizationApplicationUserTokenArgs, pulumi.ResourceOptions, *args, **kwargs)
489
+ if resource_args is not None:
490
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
491
+ else:
492
+ __self__._internal_init(resource_name, *args, **kwargs)
493
+
494
+ def _internal_init(__self__,
495
+ resource_name: str,
496
+ opts: Optional[pulumi.ResourceOptions] = None,
497
+ description: Optional[pulumi.Input[str]] = None,
498
+ extend_when_used: Optional[pulumi.Input[bool]] = None,
499
+ max_age_seconds: Optional[pulumi.Input[float]] = None,
500
+ organization_id: Optional[pulumi.Input[str]] = None,
501
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
502
+ timeouts: Optional[pulumi.Input[pulumi.InputType['OrganizationApplicationUserTokenTimeoutsArgs']]] = None,
503
+ user_id: Optional[pulumi.Input[str]] = None,
504
+ __props__=None):
505
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
506
+ if not isinstance(opts, pulumi.ResourceOptions):
507
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
508
+ if opts.id is None:
509
+ if __props__ is not None:
510
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
511
+ __props__ = OrganizationApplicationUserTokenArgs.__new__(OrganizationApplicationUserTokenArgs)
512
+
513
+ __props__.__dict__["description"] = description
514
+ __props__.__dict__["extend_when_used"] = extend_when_used
515
+ __props__.__dict__["max_age_seconds"] = max_age_seconds
516
+ if organization_id is None and not opts.urn:
517
+ raise TypeError("Missing required property 'organization_id'")
518
+ __props__.__dict__["organization_id"] = organization_id
519
+ __props__.__dict__["scopes"] = scopes
520
+ __props__.__dict__["timeouts"] = timeouts
521
+ if user_id is None and not opts.urn:
522
+ raise TypeError("Missing required property 'user_id'")
523
+ __props__.__dict__["user_id"] = user_id
524
+ __props__.__dict__["create_time"] = None
525
+ __props__.__dict__["created_manually"] = None
526
+ __props__.__dict__["currently_active"] = None
527
+ __props__.__dict__["expiry_time"] = None
528
+ __props__.__dict__["full_token"] = None
529
+ __props__.__dict__["last_ip"] = None
530
+ __props__.__dict__["last_used_time"] = None
531
+ __props__.__dict__["last_user_agent"] = None
532
+ __props__.__dict__["last_user_agent_human_readable"] = None
533
+ __props__.__dict__["token_prefix"] = None
534
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["fullToken"])
535
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
536
+ super(OrganizationApplicationUserToken, __self__).__init__(
537
+ 'aiven:index/organizationApplicationUserToken:OrganizationApplicationUserToken',
538
+ resource_name,
539
+ __props__,
540
+ opts)
541
+
542
+ @staticmethod
543
+ def get(resource_name: str,
544
+ id: pulumi.Input[str],
545
+ opts: Optional[pulumi.ResourceOptions] = None,
546
+ create_time: Optional[pulumi.Input[str]] = None,
547
+ created_manually: Optional[pulumi.Input[bool]] = None,
548
+ currently_active: Optional[pulumi.Input[bool]] = None,
549
+ description: Optional[pulumi.Input[str]] = None,
550
+ expiry_time: Optional[pulumi.Input[str]] = None,
551
+ extend_when_used: Optional[pulumi.Input[bool]] = None,
552
+ full_token: Optional[pulumi.Input[str]] = None,
553
+ last_ip: Optional[pulumi.Input[str]] = None,
554
+ last_used_time: Optional[pulumi.Input[str]] = None,
555
+ last_user_agent: Optional[pulumi.Input[str]] = None,
556
+ last_user_agent_human_readable: Optional[pulumi.Input[str]] = None,
557
+ max_age_seconds: Optional[pulumi.Input[float]] = None,
558
+ organization_id: Optional[pulumi.Input[str]] = None,
559
+ scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
560
+ timeouts: Optional[pulumi.Input[pulumi.InputType['OrganizationApplicationUserTokenTimeoutsArgs']]] = None,
561
+ token_prefix: Optional[pulumi.Input[str]] = None,
562
+ user_id: Optional[pulumi.Input[str]] = None) -> 'OrganizationApplicationUserToken':
563
+ """
564
+ Get an existing OrganizationApplicationUserToken resource's state with the given name, id, and optional extra
565
+ properties used to qualify the lookup.
566
+
567
+ :param str resource_name: The unique name of the resulting resource.
568
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
569
+ :param pulumi.ResourceOptions opts: Options for the resource.
570
+ :param pulumi.Input[str] create_time: Time when the token was created.
571
+ :param pulumi.Input[bool] created_manually: True for tokens explicitly created using the `access_tokens` API. False for tokens created when a user logs in.
572
+ :param pulumi.Input[bool] currently_active: True if the API request was made with this token.
573
+ :param pulumi.Input[str] description: Description of the token.
574
+ :param pulumi.Input[str] expiry_time: Timestamp when the access token will expire unless extended.
575
+ :param pulumi.Input[bool] extend_when_used: Extends the token session duration when the token is used. Only applicable if a value is set for `max_age_seconds`.
576
+ :param pulumi.Input[str] full_token: Full token.
577
+ :param pulumi.Input[str] last_ip: IP address of the last request made with this token.
578
+ :param pulumi.Input[str] last_used_time: Timestamp when the access token was last used.
579
+ :param pulumi.Input[str] last_user_agent: User agent of the last request made with this token.
580
+ :param pulumi.Input[str] last_user_agent_human_readable: User agent of the last request made with this token in human-readable format.
581
+ :param pulumi.Input[float] max_age_seconds: The number of hours after which a token expires. Default session duration is 10 hours.
582
+ :param pulumi.Input[str] organization_id: The ID of the organization the application user belongs to.
583
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] scopes: Restricts the scopes for this token.
584
+ :param pulumi.Input[str] token_prefix: Prefix of the token.
585
+ :param pulumi.Input[str] user_id: The ID of the application user the token is created for.
586
+ """
587
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
588
+
589
+ __props__ = _OrganizationApplicationUserTokenState.__new__(_OrganizationApplicationUserTokenState)
590
+
591
+ __props__.__dict__["create_time"] = create_time
592
+ __props__.__dict__["created_manually"] = created_manually
593
+ __props__.__dict__["currently_active"] = currently_active
594
+ __props__.__dict__["description"] = description
595
+ __props__.__dict__["expiry_time"] = expiry_time
596
+ __props__.__dict__["extend_when_used"] = extend_when_used
597
+ __props__.__dict__["full_token"] = full_token
598
+ __props__.__dict__["last_ip"] = last_ip
599
+ __props__.__dict__["last_used_time"] = last_used_time
600
+ __props__.__dict__["last_user_agent"] = last_user_agent
601
+ __props__.__dict__["last_user_agent_human_readable"] = last_user_agent_human_readable
602
+ __props__.__dict__["max_age_seconds"] = max_age_seconds
603
+ __props__.__dict__["organization_id"] = organization_id
604
+ __props__.__dict__["scopes"] = scopes
605
+ __props__.__dict__["timeouts"] = timeouts
606
+ __props__.__dict__["token_prefix"] = token_prefix
607
+ __props__.__dict__["user_id"] = user_id
608
+ return OrganizationApplicationUserToken(resource_name, opts=opts, __props__=__props__)
609
+
610
+ @property
611
+ @pulumi.getter(name="createTime")
612
+ def create_time(self) -> pulumi.Output[str]:
613
+ """
614
+ Time when the token was created.
615
+ """
616
+ return pulumi.get(self, "create_time")
617
+
618
+ @property
619
+ @pulumi.getter(name="createdManually")
620
+ def created_manually(self) -> pulumi.Output[bool]:
621
+ """
622
+ True for tokens explicitly created using the `access_tokens` API. False for tokens created when a user logs in.
623
+ """
624
+ return pulumi.get(self, "created_manually")
625
+
626
+ @property
627
+ @pulumi.getter(name="currentlyActive")
628
+ def currently_active(self) -> pulumi.Output[bool]:
629
+ """
630
+ True if the API request was made with this token.
631
+ """
632
+ return pulumi.get(self, "currently_active")
633
+
634
+ @property
635
+ @pulumi.getter
636
+ def description(self) -> pulumi.Output[Optional[str]]:
637
+ """
638
+ Description of the token.
639
+ """
640
+ return pulumi.get(self, "description")
641
+
642
+ @property
643
+ @pulumi.getter(name="expiryTime")
644
+ def expiry_time(self) -> pulumi.Output[str]:
645
+ """
646
+ Timestamp when the access token will expire unless extended.
647
+ """
648
+ return pulumi.get(self, "expiry_time")
649
+
650
+ @property
651
+ @pulumi.getter(name="extendWhenUsed")
652
+ def extend_when_used(self) -> pulumi.Output[Optional[bool]]:
653
+ """
654
+ Extends the token session duration when the token is used. Only applicable if a value is set for `max_age_seconds`.
655
+ """
656
+ return pulumi.get(self, "extend_when_used")
657
+
658
+ @property
659
+ @pulumi.getter(name="fullToken")
660
+ def full_token(self) -> pulumi.Output[str]:
661
+ """
662
+ Full token.
663
+ """
664
+ return pulumi.get(self, "full_token")
665
+
666
+ @property
667
+ @pulumi.getter(name="lastIp")
668
+ def last_ip(self) -> pulumi.Output[str]:
669
+ """
670
+ IP address of the last request made with this token.
671
+ """
672
+ return pulumi.get(self, "last_ip")
673
+
674
+ @property
675
+ @pulumi.getter(name="lastUsedTime")
676
+ def last_used_time(self) -> pulumi.Output[str]:
677
+ """
678
+ Timestamp when the access token was last used.
679
+ """
680
+ return pulumi.get(self, "last_used_time")
681
+
682
+ @property
683
+ @pulumi.getter(name="lastUserAgent")
684
+ def last_user_agent(self) -> pulumi.Output[str]:
685
+ """
686
+ User agent of the last request made with this token.
687
+ """
688
+ return pulumi.get(self, "last_user_agent")
689
+
690
+ @property
691
+ @pulumi.getter(name="lastUserAgentHumanReadable")
692
+ def last_user_agent_human_readable(self) -> pulumi.Output[str]:
693
+ """
694
+ User agent of the last request made with this token in human-readable format.
695
+ """
696
+ return pulumi.get(self, "last_user_agent_human_readable")
697
+
698
+ @property
699
+ @pulumi.getter(name="maxAgeSeconds")
700
+ def max_age_seconds(self) -> pulumi.Output[Optional[float]]:
701
+ """
702
+ The number of hours after which a token expires. Default session duration is 10 hours.
703
+ """
704
+ return pulumi.get(self, "max_age_seconds")
705
+
706
+ @property
707
+ @pulumi.getter(name="organizationId")
708
+ def organization_id(self) -> pulumi.Output[str]:
709
+ """
710
+ The ID of the organization the application user belongs to.
711
+ """
712
+ return pulumi.get(self, "organization_id")
713
+
714
+ @property
715
+ @pulumi.getter
716
+ def scopes(self) -> pulumi.Output[Optional[Sequence[str]]]:
717
+ """
718
+ Restricts the scopes for this token.
719
+ """
720
+ return pulumi.get(self, "scopes")
721
+
722
+ @property
723
+ @pulumi.getter
724
+ def timeouts(self) -> pulumi.Output[Optional['outputs.OrganizationApplicationUserTokenTimeouts']]:
725
+ return pulumi.get(self, "timeouts")
726
+
727
+ @property
728
+ @pulumi.getter(name="tokenPrefix")
729
+ def token_prefix(self) -> pulumi.Output[str]:
730
+ """
731
+ Prefix of the token.
732
+ """
733
+ return pulumi.get(self, "token_prefix")
734
+
735
+ @property
736
+ @pulumi.getter(name="userId")
737
+ def user_id(self) -> pulumi.Output[str]:
738
+ """
739
+ The ID of the application user the token is created for.
740
+ """
741
+ return pulumi.get(self, "user_id")
742
+