pulumi-aiven 6.13.0a1709702245__py3-none-any.whl → 6.31.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.
- pulumi_aiven/__init__.py +136 -0
- pulumi_aiven/_inputs.py +32960 -13922
- pulumi_aiven/_utilities.py +41 -5
- pulumi_aiven/account.py +34 -43
- pulumi_aiven/account_authentication.py +24 -9
- pulumi_aiven/account_team.py +37 -12
- pulumi_aiven/account_team_member.py +48 -35
- pulumi_aiven/account_team_project.py +42 -25
- pulumi_aiven/alloydbomni.py +1335 -0
- pulumi_aiven/alloydbomni_database.py +347 -0
- pulumi_aiven/alloydbomni_user.py +433 -0
- pulumi_aiven/aws_privatelink.py +44 -39
- pulumi_aiven/aws_vpc_peering_connection.py +72 -57
- pulumi_aiven/azure_privatelink.py +54 -49
- pulumi_aiven/azure_privatelink_connection_approval.py +136 -33
- pulumi_aiven/azure_vpc_peering_connection.py +86 -73
- pulumi_aiven/billing_group.py +33 -30
- pulumi_aiven/cassandra.py +145 -122
- pulumi_aiven/cassandra_user.py +59 -54
- pulumi_aiven/clickhouse.py +133 -110
- pulumi_aiven/clickhouse_database.py +58 -58
- pulumi_aiven/clickhouse_grant.py +135 -130
- pulumi_aiven/clickhouse_role.py +36 -45
- pulumi_aiven/clickhouse_user.py +50 -45
- pulumi_aiven/config/__init__.pyi +5 -0
- pulumi_aiven/config/vars.py +5 -0
- pulumi_aiven/connection_pool.py +67 -62
- pulumi_aiven/dragonfly.py +1256 -0
- pulumi_aiven/flink.py +104 -100
- pulumi_aiven/flink_application.py +58 -51
- pulumi_aiven/flink_application_deployment.py +178 -73
- pulumi_aiven/flink_application_version.py +179 -96
- pulumi_aiven/gcp_privatelink.py +69 -42
- pulumi_aiven/gcp_privatelink_connection_approval.py +78 -49
- pulumi_aiven/gcp_vpc_peering_connection.py +49 -44
- pulumi_aiven/get_account.py +20 -5
- pulumi_aiven/get_account_authentication.py +31 -5
- pulumi_aiven/get_account_team.py +18 -5
- pulumi_aiven/get_account_team_member.py +29 -14
- pulumi_aiven/get_account_team_project.py +19 -6
- pulumi_aiven/get_alloydbomni.py +499 -0
- pulumi_aiven/get_alloydbomni_database.py +168 -0
- pulumi_aiven/get_alloydbomni_user.py +210 -0
- pulumi_aiven/get_aws_privatelink.py +33 -20
- pulumi_aiven/get_aws_vpc_peering_connection.py +56 -29
- pulumi_aiven/get_azure_privatelink.py +37 -22
- pulumi_aiven/get_azure_vpc_peering_connection.py +77 -28
- pulumi_aiven/get_billing_group.py +31 -8
- pulumi_aiven/get_cassanda.py +55 -19
- pulumi_aiven/get_cassandra.py +55 -19
- pulumi_aiven/get_cassandra_user.py +42 -26
- pulumi_aiven/get_clickhouse.py +55 -19
- pulumi_aiven/get_clickhouse_database.py +35 -22
- pulumi_aiven/get_clickhouse_user.py +40 -25
- pulumi_aiven/get_connection_pool.py +43 -26
- pulumi_aiven/get_dragonfly.py +499 -0
- pulumi_aiven/get_external_identity.py +160 -0
- pulumi_aiven/get_flink.py +55 -19
- pulumi_aiven/get_flink_application.py +44 -27
- pulumi_aiven/get_flink_application_version.py +55 -33
- pulumi_aiven/get_gcp_privatelink.py +63 -7
- pulumi_aiven/get_gcp_vpc_peering_connection.py +39 -24
- pulumi_aiven/get_grafana.py +55 -19
- pulumi_aiven/get_influx_db.py +41 -5
- pulumi_aiven/get_influxdb_database.py +18 -5
- pulumi_aiven/get_influxdb_user.py +21 -5
- pulumi_aiven/get_kafka.py +59 -21
- pulumi_aiven/get_kafka_acl.py +50 -33
- pulumi_aiven/get_kafka_connect.py +54 -32
- pulumi_aiven/get_kafka_connector.py +44 -24
- pulumi_aiven/get_kafka_mirror_maker.py +50 -28
- pulumi_aiven/get_kafka_schema.py +35 -19
- pulumi_aiven/get_kafka_schema_configuration.py +32 -17
- pulumi_aiven/get_kafka_schema_registry_acl.py +37 -20
- pulumi_aiven/get_kafka_topic.py +70 -25
- pulumi_aiven/get_kafka_user.py +42 -26
- pulumi_aiven/get_m3_aggregator.py +51 -15
- pulumi_aiven/get_m3_db.py +55 -19
- pulumi_aiven/get_m3db_user.py +38 -24
- pulumi_aiven/get_mirror_maker_replication_flow.py +86 -21
- pulumi_aiven/get_my_sql.py +50 -14
- pulumi_aiven/get_mysql_database.py +31 -18
- pulumi_aiven/get_mysql_user.py +36 -19
- pulumi_aiven/get_open_search.py +50 -14
- pulumi_aiven/get_open_search_acl_config.py +27 -15
- pulumi_aiven/get_open_search_acl_rule.py +37 -21
- pulumi_aiven/get_opensearch_security_plugin_config.py +29 -15
- pulumi_aiven/get_opensearch_user.py +32 -18
- pulumi_aiven/get_organization.py +25 -13
- pulumi_aiven/get_organization_application_user.py +176 -0
- pulumi_aiven/get_organization_user.py +18 -5
- pulumi_aiven/get_organization_user_group.py +48 -14
- pulumi_aiven/get_organization_user_list.py +121 -0
- pulumi_aiven/get_organizational_unit.py +26 -14
- pulumi_aiven/get_pg.py +55 -19
- pulumi_aiven/get_pg_database.py +39 -24
- pulumi_aiven/get_pg_user.py +44 -27
- pulumi_aiven/get_project.py +43 -22
- pulumi_aiven/get_project_user.py +27 -15
- pulumi_aiven/get_project_vpc.py +31 -19
- pulumi_aiven/get_redis.py +50 -14
- pulumi_aiven/get_redis_user.py +40 -22
- pulumi_aiven/get_service_component.py +40 -18
- pulumi_aiven/get_service_integration.py +163 -49
- pulumi_aiven/get_service_integration_endpoint.py +128 -33
- pulumi_aiven/get_thanos.py +499 -0
- pulumi_aiven/get_transit_gateway_vpc_attachment.py +35 -18
- pulumi_aiven/get_valkey.py +499 -0
- pulumi_aiven/get_valkey_user.py +218 -0
- pulumi_aiven/grafana.py +188 -318
- pulumi_aiven/influx_db.py +127 -90
- pulumi_aiven/influxdb_database.py +40 -55
- pulumi_aiven/influxdb_user.py +47 -42
- pulumi_aiven/kafka.py +157 -140
- pulumi_aiven/kafka_acl.py +64 -53
- pulumi_aiven/kafka_connect.py +201 -328
- pulumi_aiven/kafka_connector.py +67 -56
- pulumi_aiven/kafka_mirror_maker.py +139 -318
- pulumi_aiven/kafka_native_acl.py +588 -0
- pulumi_aiven/kafka_quota.py +604 -0
- pulumi_aiven/kafka_schema.py +65 -56
- pulumi_aiven/kafka_schema_configuration.py +25 -20
- pulumi_aiven/kafka_schema_registry_acl.py +80 -35
- pulumi_aiven/kafka_topic.py +184 -65
- pulumi_aiven/kafka_user.py +59 -54
- pulumi_aiven/m3_aggregator.py +176 -308
- pulumi_aiven/m3_db.py +190 -322
- pulumi_aiven/m3db_user.py +51 -46
- pulumi_aiven/mirror_maker_replication_flow.py +217 -53
- pulumi_aiven/my_sql.py +190 -322
- pulumi_aiven/mysql_database.py +32 -47
- pulumi_aiven/mysql_user.py +37 -32
- pulumi_aiven/open_search.py +128 -105
- pulumi_aiven/open_search_acl_config.py +33 -32
- pulumi_aiven/open_search_acl_rule.py +55 -50
- pulumi_aiven/opensearch_security_plugin_config.py +69 -16
- pulumi_aiven/opensearch_user.py +30 -25
- pulumi_aiven/organization.py +18 -13
- pulumi_aiven/organization_application_user.py +345 -0
- pulumi_aiven/organization_application_user_token.py +711 -0
- pulumi_aiven/organization_group_project.py +349 -0
- pulumi_aiven/organization_permission.py +421 -0
- pulumi_aiven/organization_user.py +25 -46
- pulumi_aiven/organization_user_group.py +64 -23
- pulumi_aiven/organization_user_group_member.py +359 -0
- pulumi_aiven/organizational_unit.py +41 -32
- pulumi_aiven/outputs.py +38714 -21632
- pulumi_aiven/pg.py +92 -88
- pulumi_aiven/pg_database.py +52 -67
- pulumi_aiven/pg_user.py +80 -61
- pulumi_aiven/project.py +111 -102
- pulumi_aiven/project_user.py +44 -31
- pulumi_aiven/project_vpc.py +58 -29
- pulumi_aiven/provider.py +5 -0
- pulumi_aiven/pulumi-plugin.json +2 -1
- pulumi_aiven/redis.py +163 -295
- pulumi_aiven/redis_user.py +58 -53
- pulumi_aiven/service_integration.py +511 -161
- pulumi_aiven/service_integration_endpoint.py +466 -158
- pulumi_aiven/static_ip.py +21 -16
- pulumi_aiven/thanos.py +1262 -0
- pulumi_aiven/transit_gateway_vpc_attachment.py +44 -54
- pulumi_aiven/valkey.py +1256 -0
- pulumi_aiven/valkey_user.py +606 -0
- {pulumi_aiven-6.13.0a1709702245.dist-info → pulumi_aiven-6.31.0.dist-info}/METADATA +7 -6
- pulumi_aiven-6.31.0.dist-info/RECORD +170 -0
- {pulumi_aiven-6.13.0a1709702245.dist-info → pulumi_aiven-6.31.0.dist-info}/WHEEL +1 -1
- pulumi_aiven-6.13.0a1709702245.dist-info/RECORD +0 -146
- {pulumi_aiven-6.13.0a1709702245.dist-info → pulumi_aiven-6.31.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,421 @@
|
|
|
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 sys
|
|
8
|
+
import pulumi
|
|
9
|
+
import pulumi.runtime
|
|
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
|
|
15
|
+
from . import _utilities
|
|
16
|
+
from . import outputs
|
|
17
|
+
from ._inputs import *
|
|
18
|
+
|
|
19
|
+
__all__ = ['OrganizationPermissionArgs', 'OrganizationPermission']
|
|
20
|
+
|
|
21
|
+
@pulumi.input_type
|
|
22
|
+
class OrganizationPermissionArgs:
|
|
23
|
+
def __init__(__self__, *,
|
|
24
|
+
organization_id: pulumi.Input[str],
|
|
25
|
+
permissions: pulumi.Input[Sequence[pulumi.Input['OrganizationPermissionPermissionArgs']]],
|
|
26
|
+
resource_id: pulumi.Input[str],
|
|
27
|
+
resource_type: pulumi.Input[str]):
|
|
28
|
+
"""
|
|
29
|
+
The set of arguments for constructing a OrganizationPermission resource.
|
|
30
|
+
:param pulumi.Input[str] organization_id: Organization ID.
|
|
31
|
+
:param pulumi.Input[Sequence[pulumi.Input['OrganizationPermissionPermissionArgs']]] permissions: Permissions to grant to principals.
|
|
32
|
+
:param pulumi.Input[str] resource_id: Resource ID.
|
|
33
|
+
:param pulumi.Input[str] resource_type: Resource type. The possible values are `project`, `organization` and `organization_unit`.
|
|
34
|
+
"""
|
|
35
|
+
pulumi.set(__self__, "organization_id", organization_id)
|
|
36
|
+
pulumi.set(__self__, "permissions", permissions)
|
|
37
|
+
pulumi.set(__self__, "resource_id", resource_id)
|
|
38
|
+
pulumi.set(__self__, "resource_type", resource_type)
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
@pulumi.getter(name="organizationId")
|
|
42
|
+
def organization_id(self) -> pulumi.Input[str]:
|
|
43
|
+
"""
|
|
44
|
+
Organization ID.
|
|
45
|
+
"""
|
|
46
|
+
return pulumi.get(self, "organization_id")
|
|
47
|
+
|
|
48
|
+
@organization_id.setter
|
|
49
|
+
def organization_id(self, value: pulumi.Input[str]):
|
|
50
|
+
pulumi.set(self, "organization_id", value)
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
@pulumi.getter
|
|
54
|
+
def permissions(self) -> pulumi.Input[Sequence[pulumi.Input['OrganizationPermissionPermissionArgs']]]:
|
|
55
|
+
"""
|
|
56
|
+
Permissions to grant to principals.
|
|
57
|
+
"""
|
|
58
|
+
return pulumi.get(self, "permissions")
|
|
59
|
+
|
|
60
|
+
@permissions.setter
|
|
61
|
+
def permissions(self, value: pulumi.Input[Sequence[pulumi.Input['OrganizationPermissionPermissionArgs']]]):
|
|
62
|
+
pulumi.set(self, "permissions", value)
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
@pulumi.getter(name="resourceId")
|
|
66
|
+
def resource_id(self) -> pulumi.Input[str]:
|
|
67
|
+
"""
|
|
68
|
+
Resource ID.
|
|
69
|
+
"""
|
|
70
|
+
return pulumi.get(self, "resource_id")
|
|
71
|
+
|
|
72
|
+
@resource_id.setter
|
|
73
|
+
def resource_id(self, value: pulumi.Input[str]):
|
|
74
|
+
pulumi.set(self, "resource_id", value)
|
|
75
|
+
|
|
76
|
+
@property
|
|
77
|
+
@pulumi.getter(name="resourceType")
|
|
78
|
+
def resource_type(self) -> pulumi.Input[str]:
|
|
79
|
+
"""
|
|
80
|
+
Resource type. The possible values are `project`, `organization` and `organization_unit`.
|
|
81
|
+
"""
|
|
82
|
+
return pulumi.get(self, "resource_type")
|
|
83
|
+
|
|
84
|
+
@resource_type.setter
|
|
85
|
+
def resource_type(self, value: pulumi.Input[str]):
|
|
86
|
+
pulumi.set(self, "resource_type", value)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@pulumi.input_type
|
|
90
|
+
class _OrganizationPermissionState:
|
|
91
|
+
def __init__(__self__, *,
|
|
92
|
+
organization_id: Optional[pulumi.Input[str]] = None,
|
|
93
|
+
permissions: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationPermissionPermissionArgs']]]] = None,
|
|
94
|
+
resource_id: Optional[pulumi.Input[str]] = None,
|
|
95
|
+
resource_type: Optional[pulumi.Input[str]] = None):
|
|
96
|
+
"""
|
|
97
|
+
Input properties used for looking up and filtering OrganizationPermission resources.
|
|
98
|
+
:param pulumi.Input[str] organization_id: Organization ID.
|
|
99
|
+
:param pulumi.Input[Sequence[pulumi.Input['OrganizationPermissionPermissionArgs']]] permissions: Permissions to grant to principals.
|
|
100
|
+
:param pulumi.Input[str] resource_id: Resource ID.
|
|
101
|
+
:param pulumi.Input[str] resource_type: Resource type. The possible values are `project`, `organization` and `organization_unit`.
|
|
102
|
+
"""
|
|
103
|
+
if organization_id is not None:
|
|
104
|
+
pulumi.set(__self__, "organization_id", organization_id)
|
|
105
|
+
if permissions is not None:
|
|
106
|
+
pulumi.set(__self__, "permissions", permissions)
|
|
107
|
+
if resource_id is not None:
|
|
108
|
+
pulumi.set(__self__, "resource_id", resource_id)
|
|
109
|
+
if resource_type is not None:
|
|
110
|
+
pulumi.set(__self__, "resource_type", resource_type)
|
|
111
|
+
|
|
112
|
+
@property
|
|
113
|
+
@pulumi.getter(name="organizationId")
|
|
114
|
+
def organization_id(self) -> Optional[pulumi.Input[str]]:
|
|
115
|
+
"""
|
|
116
|
+
Organization ID.
|
|
117
|
+
"""
|
|
118
|
+
return pulumi.get(self, "organization_id")
|
|
119
|
+
|
|
120
|
+
@organization_id.setter
|
|
121
|
+
def organization_id(self, value: Optional[pulumi.Input[str]]):
|
|
122
|
+
pulumi.set(self, "organization_id", value)
|
|
123
|
+
|
|
124
|
+
@property
|
|
125
|
+
@pulumi.getter
|
|
126
|
+
def permissions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationPermissionPermissionArgs']]]]:
|
|
127
|
+
"""
|
|
128
|
+
Permissions to grant to principals.
|
|
129
|
+
"""
|
|
130
|
+
return pulumi.get(self, "permissions")
|
|
131
|
+
|
|
132
|
+
@permissions.setter
|
|
133
|
+
def permissions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OrganizationPermissionPermissionArgs']]]]):
|
|
134
|
+
pulumi.set(self, "permissions", value)
|
|
135
|
+
|
|
136
|
+
@property
|
|
137
|
+
@pulumi.getter(name="resourceId")
|
|
138
|
+
def resource_id(self) -> Optional[pulumi.Input[str]]:
|
|
139
|
+
"""
|
|
140
|
+
Resource ID.
|
|
141
|
+
"""
|
|
142
|
+
return pulumi.get(self, "resource_id")
|
|
143
|
+
|
|
144
|
+
@resource_id.setter
|
|
145
|
+
def resource_id(self, value: Optional[pulumi.Input[str]]):
|
|
146
|
+
pulumi.set(self, "resource_id", value)
|
|
147
|
+
|
|
148
|
+
@property
|
|
149
|
+
@pulumi.getter(name="resourceType")
|
|
150
|
+
def resource_type(self) -> Optional[pulumi.Input[str]]:
|
|
151
|
+
"""
|
|
152
|
+
Resource type. The possible values are `project`, `organization` and `organization_unit`.
|
|
153
|
+
"""
|
|
154
|
+
return pulumi.get(self, "resource_type")
|
|
155
|
+
|
|
156
|
+
@resource_type.setter
|
|
157
|
+
def resource_type(self, value: Optional[pulumi.Input[str]]):
|
|
158
|
+
pulumi.set(self, "resource_type", value)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
class OrganizationPermission(pulumi.CustomResource):
|
|
162
|
+
@overload
|
|
163
|
+
def __init__(__self__,
|
|
164
|
+
resource_name: str,
|
|
165
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
166
|
+
organization_id: Optional[pulumi.Input[str]] = None,
|
|
167
|
+
permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OrganizationPermissionPermissionArgs', 'OrganizationPermissionPermissionArgsDict']]]]] = None,
|
|
168
|
+
resource_id: Optional[pulumi.Input[str]] = None,
|
|
169
|
+
resource_type: Optional[pulumi.Input[str]] = None,
|
|
170
|
+
__props__=None):
|
|
171
|
+
"""
|
|
172
|
+
Grants [roles and permissions](https://aiven.io/docs/platform/concepts/permissions) to a principal for a resource. Permissions can be granted at the organization, organizational unit, and project level. Unit-level permissions aren't shown in the Aiven Console.
|
|
173
|
+
|
|
174
|
+
## Example Usage
|
|
175
|
+
|
|
176
|
+
```python
|
|
177
|
+
import pulumi
|
|
178
|
+
import pulumi_aiven as aiven
|
|
179
|
+
|
|
180
|
+
# Grant access to a specific project
|
|
181
|
+
example_project_permissions = aiven.OrganizationPermission("example_project_permissions",
|
|
182
|
+
organization_id=main["id"],
|
|
183
|
+
resource_id=example_project["id"],
|
|
184
|
+
resource_type="project",
|
|
185
|
+
permissions=[
|
|
186
|
+
{
|
|
187
|
+
"permissions": [
|
|
188
|
+
"operator",
|
|
189
|
+
"service:logs:read",
|
|
190
|
+
],
|
|
191
|
+
"principal_id": "u123a456b7890c",
|
|
192
|
+
"principal_type": "user",
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"permissions": [
|
|
196
|
+
"project:integrations:write",
|
|
197
|
+
"developer",
|
|
198
|
+
],
|
|
199
|
+
"principal_id": example_group["groupId"],
|
|
200
|
+
"principal_type": "user_group",
|
|
201
|
+
},
|
|
202
|
+
])
|
|
203
|
+
# Organization-level permissions
|
|
204
|
+
example_org_permissions = aiven.OrganizationPermission("example_org_permissions",
|
|
205
|
+
organization_id=main["id"],
|
|
206
|
+
resource_id=main["id"],
|
|
207
|
+
resource_type="organization",
|
|
208
|
+
permissions=[
|
|
209
|
+
{
|
|
210
|
+
"permissions": [
|
|
211
|
+
"organization:app_users:write",
|
|
212
|
+
"project:audit_logs:read",
|
|
213
|
+
],
|
|
214
|
+
"principal_id": "u123a456b7890c",
|
|
215
|
+
"principal_type": "user",
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"permissions": [
|
|
219
|
+
"organization:users:write",
|
|
220
|
+
"organization:groups:write",
|
|
221
|
+
"organization:domains:write",
|
|
222
|
+
"organization:idps:write",
|
|
223
|
+
],
|
|
224
|
+
"principal_id": example_group_aiven_organization_user_group["groupId"],
|
|
225
|
+
"principal_type": "user_group",
|
|
226
|
+
},
|
|
227
|
+
])
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Import
|
|
231
|
+
|
|
232
|
+
```sh
|
|
233
|
+
$ pulumi import aiven:index/organizationPermission:OrganizationPermission operator ORGANIZATION_ID/ID
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
:param str resource_name: The name of the resource.
|
|
237
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
238
|
+
:param pulumi.Input[str] organization_id: Organization ID.
|
|
239
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['OrganizationPermissionPermissionArgs', 'OrganizationPermissionPermissionArgsDict']]]] permissions: Permissions to grant to principals.
|
|
240
|
+
:param pulumi.Input[str] resource_id: Resource ID.
|
|
241
|
+
:param pulumi.Input[str] resource_type: Resource type. The possible values are `project`, `organization` and `organization_unit`.
|
|
242
|
+
"""
|
|
243
|
+
...
|
|
244
|
+
@overload
|
|
245
|
+
def __init__(__self__,
|
|
246
|
+
resource_name: str,
|
|
247
|
+
args: OrganizationPermissionArgs,
|
|
248
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
|
249
|
+
"""
|
|
250
|
+
Grants [roles and permissions](https://aiven.io/docs/platform/concepts/permissions) to a principal for a resource. Permissions can be granted at the organization, organizational unit, and project level. Unit-level permissions aren't shown in the Aiven Console.
|
|
251
|
+
|
|
252
|
+
## Example Usage
|
|
253
|
+
|
|
254
|
+
```python
|
|
255
|
+
import pulumi
|
|
256
|
+
import pulumi_aiven as aiven
|
|
257
|
+
|
|
258
|
+
# Grant access to a specific project
|
|
259
|
+
example_project_permissions = aiven.OrganizationPermission("example_project_permissions",
|
|
260
|
+
organization_id=main["id"],
|
|
261
|
+
resource_id=example_project["id"],
|
|
262
|
+
resource_type="project",
|
|
263
|
+
permissions=[
|
|
264
|
+
{
|
|
265
|
+
"permissions": [
|
|
266
|
+
"operator",
|
|
267
|
+
"service:logs:read",
|
|
268
|
+
],
|
|
269
|
+
"principal_id": "u123a456b7890c",
|
|
270
|
+
"principal_type": "user",
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"permissions": [
|
|
274
|
+
"project:integrations:write",
|
|
275
|
+
"developer",
|
|
276
|
+
],
|
|
277
|
+
"principal_id": example_group["groupId"],
|
|
278
|
+
"principal_type": "user_group",
|
|
279
|
+
},
|
|
280
|
+
])
|
|
281
|
+
# Organization-level permissions
|
|
282
|
+
example_org_permissions = aiven.OrganizationPermission("example_org_permissions",
|
|
283
|
+
organization_id=main["id"],
|
|
284
|
+
resource_id=main["id"],
|
|
285
|
+
resource_type="organization",
|
|
286
|
+
permissions=[
|
|
287
|
+
{
|
|
288
|
+
"permissions": [
|
|
289
|
+
"organization:app_users:write",
|
|
290
|
+
"project:audit_logs:read",
|
|
291
|
+
],
|
|
292
|
+
"principal_id": "u123a456b7890c",
|
|
293
|
+
"principal_type": "user",
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"permissions": [
|
|
297
|
+
"organization:users:write",
|
|
298
|
+
"organization:groups:write",
|
|
299
|
+
"organization:domains:write",
|
|
300
|
+
"organization:idps:write",
|
|
301
|
+
],
|
|
302
|
+
"principal_id": example_group_aiven_organization_user_group["groupId"],
|
|
303
|
+
"principal_type": "user_group",
|
|
304
|
+
},
|
|
305
|
+
])
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
## Import
|
|
309
|
+
|
|
310
|
+
```sh
|
|
311
|
+
$ pulumi import aiven:index/organizationPermission:OrganizationPermission operator ORGANIZATION_ID/ID
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
:param str resource_name: The name of the resource.
|
|
315
|
+
:param OrganizationPermissionArgs args: The arguments to use to populate this resource's properties.
|
|
316
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
317
|
+
"""
|
|
318
|
+
...
|
|
319
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
|
320
|
+
resource_args, opts = _utilities.get_resource_args_opts(OrganizationPermissionArgs, pulumi.ResourceOptions, *args, **kwargs)
|
|
321
|
+
if resource_args is not None:
|
|
322
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
|
323
|
+
else:
|
|
324
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
|
325
|
+
|
|
326
|
+
def _internal_init(__self__,
|
|
327
|
+
resource_name: str,
|
|
328
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
329
|
+
organization_id: Optional[pulumi.Input[str]] = None,
|
|
330
|
+
permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OrganizationPermissionPermissionArgs', 'OrganizationPermissionPermissionArgsDict']]]]] = None,
|
|
331
|
+
resource_id: Optional[pulumi.Input[str]] = None,
|
|
332
|
+
resource_type: Optional[pulumi.Input[str]] = None,
|
|
333
|
+
__props__=None):
|
|
334
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
335
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
|
336
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
|
337
|
+
if opts.id is None:
|
|
338
|
+
if __props__ is not None:
|
|
339
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
340
|
+
__props__ = OrganizationPermissionArgs.__new__(OrganizationPermissionArgs)
|
|
341
|
+
|
|
342
|
+
if organization_id is None and not opts.urn:
|
|
343
|
+
raise TypeError("Missing required property 'organization_id'")
|
|
344
|
+
__props__.__dict__["organization_id"] = organization_id
|
|
345
|
+
if permissions is None and not opts.urn:
|
|
346
|
+
raise TypeError("Missing required property 'permissions'")
|
|
347
|
+
__props__.__dict__["permissions"] = permissions
|
|
348
|
+
if resource_id is None and not opts.urn:
|
|
349
|
+
raise TypeError("Missing required property 'resource_id'")
|
|
350
|
+
__props__.__dict__["resource_id"] = resource_id
|
|
351
|
+
if resource_type is None and not opts.urn:
|
|
352
|
+
raise TypeError("Missing required property 'resource_type'")
|
|
353
|
+
__props__.__dict__["resource_type"] = resource_type
|
|
354
|
+
super(OrganizationPermission, __self__).__init__(
|
|
355
|
+
'aiven:index/organizationPermission:OrganizationPermission',
|
|
356
|
+
resource_name,
|
|
357
|
+
__props__,
|
|
358
|
+
opts)
|
|
359
|
+
|
|
360
|
+
@staticmethod
|
|
361
|
+
def get(resource_name: str,
|
|
362
|
+
id: pulumi.Input[str],
|
|
363
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
364
|
+
organization_id: Optional[pulumi.Input[str]] = None,
|
|
365
|
+
permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OrganizationPermissionPermissionArgs', 'OrganizationPermissionPermissionArgsDict']]]]] = None,
|
|
366
|
+
resource_id: Optional[pulumi.Input[str]] = None,
|
|
367
|
+
resource_type: Optional[pulumi.Input[str]] = None) -> 'OrganizationPermission':
|
|
368
|
+
"""
|
|
369
|
+
Get an existing OrganizationPermission resource's state with the given name, id, and optional extra
|
|
370
|
+
properties used to qualify the lookup.
|
|
371
|
+
|
|
372
|
+
:param str resource_name: The unique name of the resulting resource.
|
|
373
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
374
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
375
|
+
:param pulumi.Input[str] organization_id: Organization ID.
|
|
376
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['OrganizationPermissionPermissionArgs', 'OrganizationPermissionPermissionArgsDict']]]] permissions: Permissions to grant to principals.
|
|
377
|
+
:param pulumi.Input[str] resource_id: Resource ID.
|
|
378
|
+
:param pulumi.Input[str] resource_type: Resource type. The possible values are `project`, `organization` and `organization_unit`.
|
|
379
|
+
"""
|
|
380
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
381
|
+
|
|
382
|
+
__props__ = _OrganizationPermissionState.__new__(_OrganizationPermissionState)
|
|
383
|
+
|
|
384
|
+
__props__.__dict__["organization_id"] = organization_id
|
|
385
|
+
__props__.__dict__["permissions"] = permissions
|
|
386
|
+
__props__.__dict__["resource_id"] = resource_id
|
|
387
|
+
__props__.__dict__["resource_type"] = resource_type
|
|
388
|
+
return OrganizationPermission(resource_name, opts=opts, __props__=__props__)
|
|
389
|
+
|
|
390
|
+
@property
|
|
391
|
+
@pulumi.getter(name="organizationId")
|
|
392
|
+
def organization_id(self) -> pulumi.Output[str]:
|
|
393
|
+
"""
|
|
394
|
+
Organization ID.
|
|
395
|
+
"""
|
|
396
|
+
return pulumi.get(self, "organization_id")
|
|
397
|
+
|
|
398
|
+
@property
|
|
399
|
+
@pulumi.getter
|
|
400
|
+
def permissions(self) -> pulumi.Output[Sequence['outputs.OrganizationPermissionPermission']]:
|
|
401
|
+
"""
|
|
402
|
+
Permissions to grant to principals.
|
|
403
|
+
"""
|
|
404
|
+
return pulumi.get(self, "permissions")
|
|
405
|
+
|
|
406
|
+
@property
|
|
407
|
+
@pulumi.getter(name="resourceId")
|
|
408
|
+
def resource_id(self) -> pulumi.Output[str]:
|
|
409
|
+
"""
|
|
410
|
+
Resource ID.
|
|
411
|
+
"""
|
|
412
|
+
return pulumi.get(self, "resource_id")
|
|
413
|
+
|
|
414
|
+
@property
|
|
415
|
+
@pulumi.getter(name="resourceType")
|
|
416
|
+
def resource_type(self) -> pulumi.Output[str]:
|
|
417
|
+
"""
|
|
418
|
+
Resource type. The possible values are `project`, `organization` and `organization_unit`.
|
|
419
|
+
"""
|
|
420
|
+
return pulumi.get(self, "resource_type")
|
|
421
|
+
|
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
import copy
|
|
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__ = ['OrganizationUserArgs', 'OrganizationUser']
|
|
@@ -18,8 +23,8 @@ class OrganizationUserArgs:
|
|
|
18
23
|
user_email: pulumi.Input[str]):
|
|
19
24
|
"""
|
|
20
25
|
The set of arguments for constructing a OrganizationUser resource.
|
|
21
|
-
:param pulumi.Input[str] organization_id: The unique organization ID.
|
|
22
|
-
:param pulumi.Input[str] user_email: This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase.
|
|
26
|
+
:param pulumi.Input[str] organization_id: The unique organization ID. Changing this property forces recreation of the resource.
|
|
27
|
+
:param pulumi.Input[str] user_email: This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase. Changing this property forces recreation of the resource.
|
|
23
28
|
"""
|
|
24
29
|
pulumi.set(__self__, "organization_id", organization_id)
|
|
25
30
|
pulumi.set(__self__, "user_email", user_email)
|
|
@@ -28,7 +33,7 @@ class OrganizationUserArgs:
|
|
|
28
33
|
@pulumi.getter(name="organizationId")
|
|
29
34
|
def organization_id(self) -> pulumi.Input[str]:
|
|
30
35
|
"""
|
|
31
|
-
The unique organization ID.
|
|
36
|
+
The unique organization ID. Changing this property forces recreation of the resource.
|
|
32
37
|
"""
|
|
33
38
|
return pulumi.get(self, "organization_id")
|
|
34
39
|
|
|
@@ -40,7 +45,7 @@ class OrganizationUserArgs:
|
|
|
40
45
|
@pulumi.getter(name="userEmail")
|
|
41
46
|
def user_email(self) -> pulumi.Input[str]:
|
|
42
47
|
"""
|
|
43
|
-
This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase.
|
|
48
|
+
This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase. Changing this property forces recreation of the resource.
|
|
44
49
|
"""
|
|
45
50
|
return pulumi.get(self, "user_email")
|
|
46
51
|
|
|
@@ -63,8 +68,8 @@ class _OrganizationUserState:
|
|
|
63
68
|
:param pulumi.Input[bool] accepted: This is a boolean flag that determines whether an invitation was accepted or not by the user. `false` value means that the invitation was sent to the user but not yet accepted. `true` means that the user accepted the invitation and now a member of an organization.
|
|
64
69
|
:param pulumi.Input[str] create_time: Time of creation
|
|
65
70
|
:param pulumi.Input[str] invited_by: The email address of the user who sent an invitation to the user.
|
|
66
|
-
:param pulumi.Input[str] organization_id: The unique organization ID.
|
|
67
|
-
:param pulumi.Input[str] user_email: This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase.
|
|
71
|
+
:param pulumi.Input[str] organization_id: The unique organization ID. Changing this property forces recreation of the resource.
|
|
72
|
+
:param pulumi.Input[str] user_email: This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase. Changing this property forces recreation of the resource.
|
|
68
73
|
:param pulumi.Input[str] user_id: The unique organization user ID
|
|
69
74
|
"""
|
|
70
75
|
if accepted is not None:
|
|
@@ -88,13 +93,11 @@ class _OrganizationUserState:
|
|
|
88
93
|
|
|
89
94
|
@property
|
|
90
95
|
@pulumi.getter
|
|
96
|
+
@_utilities.deprecated("""This field is deprecated and will be removed in the next major release. """)
|
|
91
97
|
def accepted(self) -> Optional[pulumi.Input[bool]]:
|
|
92
98
|
"""
|
|
93
99
|
This is a boolean flag that determines whether an invitation was accepted or not by the user. `false` value means that the invitation was sent to the user but not yet accepted. `true` means that the user accepted the invitation and now a member of an organization.
|
|
94
100
|
"""
|
|
95
|
-
warnings.warn("""This field is deprecated and will be removed in the next major release. """, DeprecationWarning)
|
|
96
|
-
pulumi.log.warn("""accepted is deprecated: This field is deprecated and will be removed in the next major release. """)
|
|
97
|
-
|
|
98
101
|
return pulumi.get(self, "accepted")
|
|
99
102
|
|
|
100
103
|
@accepted.setter
|
|
@@ -115,13 +118,11 @@ class _OrganizationUserState:
|
|
|
115
118
|
|
|
116
119
|
@property
|
|
117
120
|
@pulumi.getter(name="invitedBy")
|
|
121
|
+
@_utilities.deprecated("""This field is deprecated and will be removed in the next major release. """)
|
|
118
122
|
def invited_by(self) -> Optional[pulumi.Input[str]]:
|
|
119
123
|
"""
|
|
120
124
|
The email address of the user who sent an invitation to the user.
|
|
121
125
|
"""
|
|
122
|
-
warnings.warn("""This field is deprecated and will be removed in the next major release. """, DeprecationWarning)
|
|
123
|
-
pulumi.log.warn("""invited_by is deprecated: This field is deprecated and will be removed in the next major release. """)
|
|
124
|
-
|
|
125
126
|
return pulumi.get(self, "invited_by")
|
|
126
127
|
|
|
127
128
|
@invited_by.setter
|
|
@@ -132,7 +133,7 @@ class _OrganizationUserState:
|
|
|
132
133
|
@pulumi.getter(name="organizationId")
|
|
133
134
|
def organization_id(self) -> Optional[pulumi.Input[str]]:
|
|
134
135
|
"""
|
|
135
|
-
The unique organization ID.
|
|
136
|
+
The unique organization ID. Changing this property forces recreation of the resource.
|
|
136
137
|
"""
|
|
137
138
|
return pulumi.get(self, "organization_id")
|
|
138
139
|
|
|
@@ -144,7 +145,7 @@ class _OrganizationUserState:
|
|
|
144
145
|
@pulumi.getter(name="userEmail")
|
|
145
146
|
def user_email(self) -> Optional[pulumi.Input[str]]:
|
|
146
147
|
"""
|
|
147
|
-
This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase.
|
|
148
|
+
This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase. Changing this property forces recreation of the resource.
|
|
148
149
|
"""
|
|
149
150
|
return pulumi.get(self, "user_email")
|
|
150
151
|
|
|
@@ -174,20 +175,11 @@ class OrganizationUser(pulumi.CustomResource):
|
|
|
174
175
|
user_email: Optional[pulumi.Input[str]] = None,
|
|
175
176
|
__props__=None):
|
|
176
177
|
"""
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
The organization user resource allows the creation and management of an Aiven organization user.
|
|
180
|
-
|
|
181
|
-
During the creation of `OrganizationUser`resource, an email invitation will be sent
|
|
182
|
-
to a user using `user_email` address. If the user accepts an invitation, they will become
|
|
183
|
-
a member of the organization. The deletion of `OrganizationUser` will not only
|
|
184
|
-
delete the invitation if one was sent but not yet accepted by the user, it will also
|
|
185
|
-
eliminate the member from the organization if one has accepted an invitation previously.
|
|
186
|
-
|
|
178
|
+
Create a OrganizationUser resource with the given unique name, props, and options.
|
|
187
179
|
:param str resource_name: The name of the resource.
|
|
188
180
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
189
|
-
:param pulumi.Input[str] organization_id: The unique organization ID.
|
|
190
|
-
:param pulumi.Input[str] user_email: This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase.
|
|
181
|
+
:param pulumi.Input[str] organization_id: The unique organization ID. Changing this property forces recreation of the resource.
|
|
182
|
+
:param pulumi.Input[str] user_email: This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase. Changing this property forces recreation of the resource.
|
|
191
183
|
"""
|
|
192
184
|
...
|
|
193
185
|
@overload
|
|
@@ -196,16 +188,7 @@ class OrganizationUser(pulumi.CustomResource):
|
|
|
196
188
|
args: OrganizationUserArgs,
|
|
197
189
|
opts: Optional[pulumi.ResourceOptions] = None):
|
|
198
190
|
"""
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
The organization user resource allows the creation and management of an Aiven organization user.
|
|
202
|
-
|
|
203
|
-
During the creation of `OrganizationUser`resource, an email invitation will be sent
|
|
204
|
-
to a user using `user_email` address. If the user accepts an invitation, they will become
|
|
205
|
-
a member of the organization. The deletion of `OrganizationUser` will not only
|
|
206
|
-
delete the invitation if one was sent but not yet accepted by the user, it will also
|
|
207
|
-
eliminate the member from the organization if one has accepted an invitation previously.
|
|
208
|
-
|
|
191
|
+
Create a OrganizationUser resource with the given unique name, props, and options.
|
|
209
192
|
:param str resource_name: The name of the resource.
|
|
210
193
|
:param OrganizationUserArgs args: The arguments to use to populate this resource's properties.
|
|
211
194
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
@@ -268,8 +251,8 @@ class OrganizationUser(pulumi.CustomResource):
|
|
|
268
251
|
:param pulumi.Input[bool] accepted: This is a boolean flag that determines whether an invitation was accepted or not by the user. `false` value means that the invitation was sent to the user but not yet accepted. `true` means that the user accepted the invitation and now a member of an organization.
|
|
269
252
|
:param pulumi.Input[str] create_time: Time of creation
|
|
270
253
|
:param pulumi.Input[str] invited_by: The email address of the user who sent an invitation to the user.
|
|
271
|
-
:param pulumi.Input[str] organization_id: The unique organization ID.
|
|
272
|
-
:param pulumi.Input[str] user_email: This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase.
|
|
254
|
+
:param pulumi.Input[str] organization_id: The unique organization ID. Changing this property forces recreation of the resource.
|
|
255
|
+
:param pulumi.Input[str] user_email: This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase. Changing this property forces recreation of the resource.
|
|
273
256
|
:param pulumi.Input[str] user_id: The unique organization user ID
|
|
274
257
|
"""
|
|
275
258
|
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
@@ -286,13 +269,11 @@ class OrganizationUser(pulumi.CustomResource):
|
|
|
286
269
|
|
|
287
270
|
@property
|
|
288
271
|
@pulumi.getter
|
|
272
|
+
@_utilities.deprecated("""This field is deprecated and will be removed in the next major release. """)
|
|
289
273
|
def accepted(self) -> pulumi.Output[bool]:
|
|
290
274
|
"""
|
|
291
275
|
This is a boolean flag that determines whether an invitation was accepted or not by the user. `false` value means that the invitation was sent to the user but not yet accepted. `true` means that the user accepted the invitation and now a member of an organization.
|
|
292
276
|
"""
|
|
293
|
-
warnings.warn("""This field is deprecated and will be removed in the next major release. """, DeprecationWarning)
|
|
294
|
-
pulumi.log.warn("""accepted is deprecated: This field is deprecated and will be removed in the next major release. """)
|
|
295
|
-
|
|
296
277
|
return pulumi.get(self, "accepted")
|
|
297
278
|
|
|
298
279
|
@property
|
|
@@ -305,20 +286,18 @@ class OrganizationUser(pulumi.CustomResource):
|
|
|
305
286
|
|
|
306
287
|
@property
|
|
307
288
|
@pulumi.getter(name="invitedBy")
|
|
289
|
+
@_utilities.deprecated("""This field is deprecated and will be removed in the next major release. """)
|
|
308
290
|
def invited_by(self) -> pulumi.Output[str]:
|
|
309
291
|
"""
|
|
310
292
|
The email address of the user who sent an invitation to the user.
|
|
311
293
|
"""
|
|
312
|
-
warnings.warn("""This field is deprecated and will be removed in the next major release. """, DeprecationWarning)
|
|
313
|
-
pulumi.log.warn("""invited_by is deprecated: This field is deprecated and will be removed in the next major release. """)
|
|
314
|
-
|
|
315
294
|
return pulumi.get(self, "invited_by")
|
|
316
295
|
|
|
317
296
|
@property
|
|
318
297
|
@pulumi.getter(name="organizationId")
|
|
319
298
|
def organization_id(self) -> pulumi.Output[str]:
|
|
320
299
|
"""
|
|
321
|
-
The unique organization ID.
|
|
300
|
+
The unique organization ID. Changing this property forces recreation of the resource.
|
|
322
301
|
"""
|
|
323
302
|
return pulumi.get(self, "organization_id")
|
|
324
303
|
|
|
@@ -326,7 +305,7 @@ class OrganizationUser(pulumi.CustomResource):
|
|
|
326
305
|
@pulumi.getter(name="userEmail")
|
|
327
306
|
def user_email(self) -> pulumi.Output[str]:
|
|
328
307
|
"""
|
|
329
|
-
This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase.
|
|
308
|
+
This is a user email address that first will be invited, and after accepting an invitation, they become a member of the organization. Should be lowercase. Changing this property forces recreation of the resource.
|
|
330
309
|
"""
|
|
331
310
|
return pulumi.get(self, "user_email")
|
|
332
311
|
|