pulumi-gcp 8.7.0a1729200523__py3-none-any.whl → 8.7.0a1730196225__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. pulumi_gcp/__init__.py +70 -0
  2. pulumi_gcp/accesscontextmanager/service_perimeter.py +2 -0
  3. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +4 -0
  4. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +4 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +4 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +4 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeters.py +2 -0
  8. pulumi_gcp/apigee/__init__.py +2 -0
  9. pulumi_gcp/apigee/_inputs.py +108 -0
  10. pulumi_gcp/apigee/app_group.py +811 -0
  11. pulumi_gcp/apigee/developer.py +757 -0
  12. pulumi_gcp/apigee/outputs.py +64 -0
  13. pulumi_gcp/artifactregistry/get_docker_image.py +40 -0
  14. pulumi_gcp/bigquery/connection.py +12 -12
  15. pulumi_gcp/bigquery/job.py +6 -6
  16. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  17. pulumi_gcp/cloudrunv2/service.py +92 -0
  18. pulumi_gcp/compute/_inputs.py +214 -116
  19. pulumi_gcp/compute/backend_service.py +76 -0
  20. pulumi_gcp/compute/get_backend_service.py +12 -1
  21. pulumi_gcp/compute/get_instance.py +29 -1
  22. pulumi_gcp/compute/get_instance_template.py +29 -1
  23. pulumi_gcp/compute/get_region_instance_group_manager.py +0 -18
  24. pulumi_gcp/compute/get_region_instance_template.py +29 -1
  25. pulumi_gcp/compute/instance.py +89 -0
  26. pulumi_gcp/compute/instance_from_machine_image.py +82 -0
  27. pulumi_gcp/compute/instance_from_template.py +82 -0
  28. pulumi_gcp/compute/instance_template.py +75 -0
  29. pulumi_gcp/compute/network_firewall_policy_association.py +76 -50
  30. pulumi_gcp/compute/network_firewall_policy_rule.py +149 -103
  31. pulumi_gcp/compute/outputs.py +170 -80
  32. pulumi_gcp/compute/region_backend_service.py +94 -0
  33. pulumi_gcp/compute/region_instance_template.py +75 -0
  34. pulumi_gcp/compute/region_network_endpoint_group.py +6 -4
  35. pulumi_gcp/compute/region_network_firewall_policy_association.py +104 -54
  36. pulumi_gcp/compute/region_network_firewall_policy_rule.py +160 -107
  37. pulumi_gcp/config/__init__.pyi +4 -0
  38. pulumi_gcp/config/vars.py +8 -0
  39. pulumi_gcp/container/attached_cluster.py +9 -6
  40. pulumi_gcp/container/outputs.py +2 -2
  41. pulumi_gcp/datastream/stream.py +2 -2
  42. pulumi_gcp/diagflow/_inputs.py +472 -2
  43. pulumi_gcp/diagflow/cx_agent.py +64 -4
  44. pulumi_gcp/diagflow/cx_flow.py +30 -0
  45. pulumi_gcp/diagflow/outputs.py +378 -2
  46. pulumi_gcp/gkehub/feature.py +2 -4
  47. pulumi_gcp/iam/workload_identity_pool_provider.py +56 -0
  48. pulumi_gcp/looker/instance.py +104 -2
  49. pulumi_gcp/monitoring/_inputs.py +23 -0
  50. pulumi_gcp/monitoring/get_secret_version.py +22 -3
  51. pulumi_gcp/monitoring/outputs.py +16 -0
  52. pulumi_gcp/networkconnectivity/__init__.py +1 -0
  53. pulumi_gcp/networkconnectivity/_inputs.py +148 -0
  54. pulumi_gcp/networkconnectivity/group.py +764 -0
  55. pulumi_gcp/networkconnectivity/outputs.py +125 -0
  56. pulumi_gcp/networkconnectivity/spoke.py +144 -0
  57. pulumi_gcp/networksecurity/server_tls_policy.py +2 -2
  58. pulumi_gcp/oracledatabase/__init__.py +20 -0
  59. pulumi_gcp/oracledatabase/_inputs.py +4745 -0
  60. pulumi_gcp/oracledatabase/autonomous_database.py +983 -0
  61. pulumi_gcp/oracledatabase/cloud_exadata_infrastructure.py +842 -0
  62. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +1086 -0
  63. pulumi_gcp/oracledatabase/get_autonomous_database.py +290 -0
  64. pulumi_gcp/oracledatabase/get_autonomous_databases.py +150 -0
  65. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructure.py +257 -0
  66. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructures.py +150 -0
  67. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +290 -0
  68. pulumi_gcp/oracledatabase/get_cloud_vm_clusters.py +150 -0
  69. pulumi_gcp/oracledatabase/get_db_nodes.py +245 -0
  70. pulumi_gcp/oracledatabase/get_db_servers.py +245 -0
  71. pulumi_gcp/oracledatabase/outputs.py +9304 -0
  72. pulumi_gcp/organizations/folder.py +7 -7
  73. pulumi_gcp/organizations/project.py +7 -7
  74. pulumi_gcp/orgpolicy/_inputs.py +3 -3
  75. pulumi_gcp/orgpolicy/outputs.py +2 -2
  76. pulumi_gcp/privilegedaccessmanager/get_entitlement.py +46 -2
  77. pulumi_gcp/provider.py +40 -0
  78. pulumi_gcp/pulumi-plugin.json +1 -1
  79. pulumi_gcp/secretmanager/get_regional_secret_version.py +24 -5
  80. pulumi_gcp/secretmanager/get_regional_secret_version_access.py +24 -5
  81. pulumi_gcp/secretmanager/get_secret_version.py +22 -3
  82. pulumi_gcp/secretmanager/get_secret_version_access.py +22 -3
  83. pulumi_gcp/secretmanager/regional_secret.py +2 -2
  84. pulumi_gcp/siteverification/get_token.py +0 -16
  85. pulumi_gcp/siteverification/owner.py +0 -16
  86. pulumi_gcp/spanner/_inputs.py +29 -5
  87. pulumi_gcp/spanner/outputs.py +20 -3
  88. pulumi_gcp/sql/_inputs.py +6 -6
  89. pulumi_gcp/sql/outputs.py +4 -4
  90. pulumi_gcp/sql/user.py +28 -21
  91. pulumi_gcp/storage/_inputs.py +36 -0
  92. pulumi_gcp/storage/bucket.py +47 -0
  93. pulumi_gcp/storage/get_bucket.py +12 -1
  94. pulumi_gcp/storage/outputs.py +40 -0
  95. pulumi_gcp/transcoder/__init__.py +11 -0
  96. pulumi_gcp/transcoder/_inputs.py +3991 -0
  97. pulumi_gcp/transcoder/job.py +2134 -0
  98. pulumi_gcp/transcoder/job_template.py +1524 -0
  99. pulumi_gcp/transcoder/outputs.py +2918 -0
  100. pulumi_gcp/vertex/ai_deployment_resource_pool.py +2 -2
  101. pulumi_gcp/vmwareengine/_inputs.py +440 -0
  102. pulumi_gcp/vmwareengine/cluster.py +100 -2
  103. pulumi_gcp/vmwareengine/get_cluster.py +12 -1
  104. pulumi_gcp/vmwareengine/outputs.py +615 -0
  105. pulumi_gcp/workstations/_inputs.py +54 -0
  106. pulumi_gcp/workstations/outputs.py +32 -0
  107. pulumi_gcp/workstations/workstation_config.py +205 -0
  108. {pulumi_gcp-8.7.0a1729200523.dist-info → pulumi_gcp-8.7.0a1730196225.dist-info}/METADATA +1 -1
  109. {pulumi_gcp-8.7.0a1729200523.dist-info → pulumi_gcp-8.7.0a1730196225.dist-info}/RECORD +111 -89
  110. {pulumi_gcp-8.7.0a1729200523.dist-info → pulumi_gcp-8.7.0a1730196225.dist-info}/WHEEL +1 -1
  111. {pulumi_gcp-8.7.0a1729200523.dist-info → pulumi_gcp-8.7.0a1730196225.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,757 @@
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__ = ['DeveloperArgs', 'Developer']
20
+
21
+ @pulumi.input_type
22
+ class DeveloperArgs:
23
+ def __init__(__self__, *,
24
+ email: pulumi.Input[str],
25
+ first_name: pulumi.Input[str],
26
+ last_name: pulumi.Input[str],
27
+ org_id: pulumi.Input[str],
28
+ user_name: pulumi.Input[str],
29
+ attributes: Optional[pulumi.Input[Sequence[pulumi.Input['DeveloperAttributeArgs']]]] = None):
30
+ """
31
+ The set of arguments for constructing a Developer resource.
32
+ :param pulumi.Input[str] email: Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only..
33
+ :param pulumi.Input[str] first_name: First name of the developer.
34
+ :param pulumi.Input[str] last_name: Last name of the developer.
35
+ :param pulumi.Input[str] org_id: The Apigee Organization associated with the Apigee instance,
36
+ in the format `organizations/{{org_name}}`.
37
+
38
+
39
+ - - -
40
+ :param pulumi.Input[str] user_name: User name of the developer. Not used by Apigee hybrid.
41
+ :param pulumi.Input[Sequence[pulumi.Input['DeveloperAttributeArgs']]] attributes: Developer attributes (name/value pairs). The custom attribute limit is 18.
42
+ Structure is documented below.
43
+ """
44
+ pulumi.set(__self__, "email", email)
45
+ pulumi.set(__self__, "first_name", first_name)
46
+ pulumi.set(__self__, "last_name", last_name)
47
+ pulumi.set(__self__, "org_id", org_id)
48
+ pulumi.set(__self__, "user_name", user_name)
49
+ if attributes is not None:
50
+ pulumi.set(__self__, "attributes", attributes)
51
+
52
+ @property
53
+ @pulumi.getter
54
+ def email(self) -> pulumi.Input[str]:
55
+ """
56
+ Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only..
57
+ """
58
+ return pulumi.get(self, "email")
59
+
60
+ @email.setter
61
+ def email(self, value: pulumi.Input[str]):
62
+ pulumi.set(self, "email", value)
63
+
64
+ @property
65
+ @pulumi.getter(name="firstName")
66
+ def first_name(self) -> pulumi.Input[str]:
67
+ """
68
+ First name of the developer.
69
+ """
70
+ return pulumi.get(self, "first_name")
71
+
72
+ @first_name.setter
73
+ def first_name(self, value: pulumi.Input[str]):
74
+ pulumi.set(self, "first_name", value)
75
+
76
+ @property
77
+ @pulumi.getter(name="lastName")
78
+ def last_name(self) -> pulumi.Input[str]:
79
+ """
80
+ Last name of the developer.
81
+ """
82
+ return pulumi.get(self, "last_name")
83
+
84
+ @last_name.setter
85
+ def last_name(self, value: pulumi.Input[str]):
86
+ pulumi.set(self, "last_name", value)
87
+
88
+ @property
89
+ @pulumi.getter(name="orgId")
90
+ def org_id(self) -> pulumi.Input[str]:
91
+ """
92
+ The Apigee Organization associated with the Apigee instance,
93
+ in the format `organizations/{{org_name}}`.
94
+
95
+
96
+ - - -
97
+ """
98
+ return pulumi.get(self, "org_id")
99
+
100
+ @org_id.setter
101
+ def org_id(self, value: pulumi.Input[str]):
102
+ pulumi.set(self, "org_id", value)
103
+
104
+ @property
105
+ @pulumi.getter(name="userName")
106
+ def user_name(self) -> pulumi.Input[str]:
107
+ """
108
+ User name of the developer. Not used by Apigee hybrid.
109
+ """
110
+ return pulumi.get(self, "user_name")
111
+
112
+ @user_name.setter
113
+ def user_name(self, value: pulumi.Input[str]):
114
+ pulumi.set(self, "user_name", value)
115
+
116
+ @property
117
+ @pulumi.getter
118
+ def attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeveloperAttributeArgs']]]]:
119
+ """
120
+ Developer attributes (name/value pairs). The custom attribute limit is 18.
121
+ Structure is documented below.
122
+ """
123
+ return pulumi.get(self, "attributes")
124
+
125
+ @attributes.setter
126
+ def attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeveloperAttributeArgs']]]]):
127
+ pulumi.set(self, "attributes", value)
128
+
129
+
130
+ @pulumi.input_type
131
+ class _DeveloperState:
132
+ def __init__(__self__, *,
133
+ attributes: Optional[pulumi.Input[Sequence[pulumi.Input['DeveloperAttributeArgs']]]] = None,
134
+ created_at: Optional[pulumi.Input[str]] = None,
135
+ email: Optional[pulumi.Input[str]] = None,
136
+ first_name: Optional[pulumi.Input[str]] = None,
137
+ last_modified_at: Optional[pulumi.Input[str]] = None,
138
+ last_name: Optional[pulumi.Input[str]] = None,
139
+ org_id: Optional[pulumi.Input[str]] = None,
140
+ organizatio_name: Optional[pulumi.Input[str]] = None,
141
+ status: Optional[pulumi.Input[str]] = None,
142
+ user_name: Optional[pulumi.Input[str]] = None):
143
+ """
144
+ Input properties used for looking up and filtering Developer resources.
145
+ :param pulumi.Input[Sequence[pulumi.Input['DeveloperAttributeArgs']]] attributes: Developer attributes (name/value pairs). The custom attribute limit is 18.
146
+ Structure is documented below.
147
+ :param pulumi.Input[str] created_at: Time at which the developer was created in milliseconds since epoch.
148
+ :param pulumi.Input[str] email: Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only..
149
+ :param pulumi.Input[str] first_name: First name of the developer.
150
+ :param pulumi.Input[str] last_modified_at: Time at which the developer was last modified in milliseconds since epoch.
151
+ :param pulumi.Input[str] last_name: Last name of the developer.
152
+ :param pulumi.Input[str] org_id: The Apigee Organization associated with the Apigee instance,
153
+ in the format `organizations/{{org_name}}`.
154
+
155
+
156
+ - - -
157
+ :param pulumi.Input[str] organizatio_name: Name of the Apigee organization in which the developer resides.
158
+ :param pulumi.Input[str] status: Status of the developer. Valid values are active and inactive.
159
+ :param pulumi.Input[str] user_name: User name of the developer. Not used by Apigee hybrid.
160
+ """
161
+ if attributes is not None:
162
+ pulumi.set(__self__, "attributes", attributes)
163
+ if created_at is not None:
164
+ pulumi.set(__self__, "created_at", created_at)
165
+ if email is not None:
166
+ pulumi.set(__self__, "email", email)
167
+ if first_name is not None:
168
+ pulumi.set(__self__, "first_name", first_name)
169
+ if last_modified_at is not None:
170
+ pulumi.set(__self__, "last_modified_at", last_modified_at)
171
+ if last_name is not None:
172
+ pulumi.set(__self__, "last_name", last_name)
173
+ if org_id is not None:
174
+ pulumi.set(__self__, "org_id", org_id)
175
+ if organizatio_name is not None:
176
+ pulumi.set(__self__, "organizatio_name", organizatio_name)
177
+ if status is not None:
178
+ pulumi.set(__self__, "status", status)
179
+ if user_name is not None:
180
+ pulumi.set(__self__, "user_name", user_name)
181
+
182
+ @property
183
+ @pulumi.getter
184
+ def attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeveloperAttributeArgs']]]]:
185
+ """
186
+ Developer attributes (name/value pairs). The custom attribute limit is 18.
187
+ Structure is documented below.
188
+ """
189
+ return pulumi.get(self, "attributes")
190
+
191
+ @attributes.setter
192
+ def attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeveloperAttributeArgs']]]]):
193
+ pulumi.set(self, "attributes", value)
194
+
195
+ @property
196
+ @pulumi.getter(name="createdAt")
197
+ def created_at(self) -> Optional[pulumi.Input[str]]:
198
+ """
199
+ Time at which the developer was created in milliseconds since epoch.
200
+ """
201
+ return pulumi.get(self, "created_at")
202
+
203
+ @created_at.setter
204
+ def created_at(self, value: Optional[pulumi.Input[str]]):
205
+ pulumi.set(self, "created_at", value)
206
+
207
+ @property
208
+ @pulumi.getter
209
+ def email(self) -> Optional[pulumi.Input[str]]:
210
+ """
211
+ Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only..
212
+ """
213
+ return pulumi.get(self, "email")
214
+
215
+ @email.setter
216
+ def email(self, value: Optional[pulumi.Input[str]]):
217
+ pulumi.set(self, "email", value)
218
+
219
+ @property
220
+ @pulumi.getter(name="firstName")
221
+ def first_name(self) -> Optional[pulumi.Input[str]]:
222
+ """
223
+ First name of the developer.
224
+ """
225
+ return pulumi.get(self, "first_name")
226
+
227
+ @first_name.setter
228
+ def first_name(self, value: Optional[pulumi.Input[str]]):
229
+ pulumi.set(self, "first_name", value)
230
+
231
+ @property
232
+ @pulumi.getter(name="lastModifiedAt")
233
+ def last_modified_at(self) -> Optional[pulumi.Input[str]]:
234
+ """
235
+ Time at which the developer was last modified in milliseconds since epoch.
236
+ """
237
+ return pulumi.get(self, "last_modified_at")
238
+
239
+ @last_modified_at.setter
240
+ def last_modified_at(self, value: Optional[pulumi.Input[str]]):
241
+ pulumi.set(self, "last_modified_at", value)
242
+
243
+ @property
244
+ @pulumi.getter(name="lastName")
245
+ def last_name(self) -> Optional[pulumi.Input[str]]:
246
+ """
247
+ Last name of the developer.
248
+ """
249
+ return pulumi.get(self, "last_name")
250
+
251
+ @last_name.setter
252
+ def last_name(self, value: Optional[pulumi.Input[str]]):
253
+ pulumi.set(self, "last_name", value)
254
+
255
+ @property
256
+ @pulumi.getter(name="orgId")
257
+ def org_id(self) -> Optional[pulumi.Input[str]]:
258
+ """
259
+ The Apigee Organization associated with the Apigee instance,
260
+ in the format `organizations/{{org_name}}`.
261
+
262
+
263
+ - - -
264
+ """
265
+ return pulumi.get(self, "org_id")
266
+
267
+ @org_id.setter
268
+ def org_id(self, value: Optional[pulumi.Input[str]]):
269
+ pulumi.set(self, "org_id", value)
270
+
271
+ @property
272
+ @pulumi.getter(name="organizatioName")
273
+ def organizatio_name(self) -> Optional[pulumi.Input[str]]:
274
+ """
275
+ Name of the Apigee organization in which the developer resides.
276
+ """
277
+ return pulumi.get(self, "organizatio_name")
278
+
279
+ @organizatio_name.setter
280
+ def organizatio_name(self, value: Optional[pulumi.Input[str]]):
281
+ pulumi.set(self, "organizatio_name", value)
282
+
283
+ @property
284
+ @pulumi.getter
285
+ def status(self) -> Optional[pulumi.Input[str]]:
286
+ """
287
+ Status of the developer. Valid values are active and inactive.
288
+ """
289
+ return pulumi.get(self, "status")
290
+
291
+ @status.setter
292
+ def status(self, value: Optional[pulumi.Input[str]]):
293
+ pulumi.set(self, "status", value)
294
+
295
+ @property
296
+ @pulumi.getter(name="userName")
297
+ def user_name(self) -> Optional[pulumi.Input[str]]:
298
+ """
299
+ User name of the developer. Not used by Apigee hybrid.
300
+ """
301
+ return pulumi.get(self, "user_name")
302
+
303
+ @user_name.setter
304
+ def user_name(self, value: Optional[pulumi.Input[str]]):
305
+ pulumi.set(self, "user_name", value)
306
+
307
+
308
+ class Developer(pulumi.CustomResource):
309
+ @overload
310
+ def __init__(__self__,
311
+ resource_name: str,
312
+ opts: Optional[pulumi.ResourceOptions] = None,
313
+ attributes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeveloperAttributeArgs', 'DeveloperAttributeArgsDict']]]]] = None,
314
+ email: Optional[pulumi.Input[str]] = None,
315
+ first_name: Optional[pulumi.Input[str]] = None,
316
+ last_name: Optional[pulumi.Input[str]] = None,
317
+ org_id: Optional[pulumi.Input[str]] = None,
318
+ user_name: Optional[pulumi.Input[str]] = None,
319
+ __props__=None):
320
+ """
321
+ A `Developer` is an API consumer that can have apps registered in Apigee.
322
+
323
+ To get more information about Developer, see:
324
+
325
+ * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.developers)
326
+ * How-to Guides
327
+ * [Creating a developer](https://cloud.google.com/apigee/docs/api-platform/publish/adding-developers-your-api-product)
328
+
329
+ ## Example Usage
330
+
331
+ ### Apigee Developer Basic
332
+
333
+ ```python
334
+ import pulumi
335
+ import pulumi_gcp as gcp
336
+
337
+ current = gcp.organizations.get_client_config()
338
+ apigee_network = gcp.compute.Network("apigee_network", name="apigee-network")
339
+ apigee_range = gcp.compute.GlobalAddress("apigee_range",
340
+ name="apigee-range",
341
+ purpose="VPC_PEERING",
342
+ address_type="INTERNAL",
343
+ prefix_length=16,
344
+ network=apigee_network.id)
345
+ apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
346
+ network=apigee_network.id,
347
+ service="servicenetworking.googleapis.com",
348
+ reserved_peering_ranges=[apigee_range.name])
349
+ apigee_org = gcp.apigee.Organization("apigee_org",
350
+ analytics_region="us-central1",
351
+ project_id=current.project,
352
+ authorized_network=apigee_network.id,
353
+ opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
354
+ apigee_instance = gcp.apigee.Instance("apigee_instance",
355
+ name="my-instance",
356
+ location="us-central1",
357
+ org_id=apigee_org.id,
358
+ peering_cidr_range="SLASH_22")
359
+ apigee_developer = gcp.apigee.Developer("apigee_developer",
360
+ email="john.doe@acme.com",
361
+ first_name="John",
362
+ last_name="Doe",
363
+ user_name="john.doe",
364
+ org_id=apigee_org.id,
365
+ opts = pulumi.ResourceOptions(depends_on=[apigee_instance]))
366
+ ```
367
+ ### Apigee Developer With Attributes
368
+
369
+ ```python
370
+ import pulumi
371
+ import pulumi_gcp as gcp
372
+
373
+ current = gcp.organizations.get_client_config()
374
+ apigee_network = gcp.compute.Network("apigee_network", name="apigee-network")
375
+ apigee_range = gcp.compute.GlobalAddress("apigee_range",
376
+ name="apigee-range",
377
+ purpose="VPC_PEERING",
378
+ address_type="INTERNAL",
379
+ prefix_length=16,
380
+ network=apigee_network.id)
381
+ apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
382
+ network=apigee_network.id,
383
+ service="servicenetworking.googleapis.com",
384
+ reserved_peering_ranges=[apigee_range.name])
385
+ apigee_org = gcp.apigee.Organization("apigee_org",
386
+ analytics_region="us-central1",
387
+ project_id=current.project,
388
+ authorized_network=apigee_network.id,
389
+ opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
390
+ apigee_instance = gcp.apigee.Instance("apigee_instance",
391
+ name="my-instance",
392
+ location="us-central1",
393
+ org_id=apigee_org.id,
394
+ peering_cidr_range="SLASH_22")
395
+ apigee_developer = gcp.apigee.Developer("apigee_developer",
396
+ email="john.doe@acme.com",
397
+ first_name="John",
398
+ last_name="Doe",
399
+ user_name="john.doe",
400
+ attributes=[
401
+ {
402
+ "name": "business_unit",
403
+ "value": "HR",
404
+ },
405
+ {
406
+ "name": "department",
407
+ "value": "payroll",
408
+ },
409
+ ],
410
+ org_id=apigee_org.id,
411
+ opts = pulumi.ResourceOptions(depends_on=[apigee_instance]))
412
+ ```
413
+
414
+ ## Import
415
+
416
+ Developer can be imported using any of these accepted formats:
417
+
418
+ * `{{org_id}}/developers/{{email}}`
419
+
420
+ * `{{org_id}}/{{email}}`
421
+
422
+ When using the `pulumi import` command, Developer can be imported using one of the formats above. For example:
423
+
424
+ ```sh
425
+ $ pulumi import gcp:apigee/developer:Developer default {{org_id}}/developers/{{email}}
426
+ ```
427
+
428
+ ```sh
429
+ $ pulumi import gcp:apigee/developer:Developer default {{org_id}}/{{email}}
430
+ ```
431
+
432
+ :param str resource_name: The name of the resource.
433
+ :param pulumi.ResourceOptions opts: Options for the resource.
434
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DeveloperAttributeArgs', 'DeveloperAttributeArgsDict']]]] attributes: Developer attributes (name/value pairs). The custom attribute limit is 18.
435
+ Structure is documented below.
436
+ :param pulumi.Input[str] email: Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only..
437
+ :param pulumi.Input[str] first_name: First name of the developer.
438
+ :param pulumi.Input[str] last_name: Last name of the developer.
439
+ :param pulumi.Input[str] org_id: The Apigee Organization associated with the Apigee instance,
440
+ in the format `organizations/{{org_name}}`.
441
+
442
+
443
+ - - -
444
+ :param pulumi.Input[str] user_name: User name of the developer. Not used by Apigee hybrid.
445
+ """
446
+ ...
447
+ @overload
448
+ def __init__(__self__,
449
+ resource_name: str,
450
+ args: DeveloperArgs,
451
+ opts: Optional[pulumi.ResourceOptions] = None):
452
+ """
453
+ A `Developer` is an API consumer that can have apps registered in Apigee.
454
+
455
+ To get more information about Developer, see:
456
+
457
+ * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.developers)
458
+ * How-to Guides
459
+ * [Creating a developer](https://cloud.google.com/apigee/docs/api-platform/publish/adding-developers-your-api-product)
460
+
461
+ ## Example Usage
462
+
463
+ ### Apigee Developer Basic
464
+
465
+ ```python
466
+ import pulumi
467
+ import pulumi_gcp as gcp
468
+
469
+ current = gcp.organizations.get_client_config()
470
+ apigee_network = gcp.compute.Network("apigee_network", name="apigee-network")
471
+ apigee_range = gcp.compute.GlobalAddress("apigee_range",
472
+ name="apigee-range",
473
+ purpose="VPC_PEERING",
474
+ address_type="INTERNAL",
475
+ prefix_length=16,
476
+ network=apigee_network.id)
477
+ apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
478
+ network=apigee_network.id,
479
+ service="servicenetworking.googleapis.com",
480
+ reserved_peering_ranges=[apigee_range.name])
481
+ apigee_org = gcp.apigee.Organization("apigee_org",
482
+ analytics_region="us-central1",
483
+ project_id=current.project,
484
+ authorized_network=apigee_network.id,
485
+ opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
486
+ apigee_instance = gcp.apigee.Instance("apigee_instance",
487
+ name="my-instance",
488
+ location="us-central1",
489
+ org_id=apigee_org.id,
490
+ peering_cidr_range="SLASH_22")
491
+ apigee_developer = gcp.apigee.Developer("apigee_developer",
492
+ email="john.doe@acme.com",
493
+ first_name="John",
494
+ last_name="Doe",
495
+ user_name="john.doe",
496
+ org_id=apigee_org.id,
497
+ opts = pulumi.ResourceOptions(depends_on=[apigee_instance]))
498
+ ```
499
+ ### Apigee Developer With Attributes
500
+
501
+ ```python
502
+ import pulumi
503
+ import pulumi_gcp as gcp
504
+
505
+ current = gcp.organizations.get_client_config()
506
+ apigee_network = gcp.compute.Network("apigee_network", name="apigee-network")
507
+ apigee_range = gcp.compute.GlobalAddress("apigee_range",
508
+ name="apigee-range",
509
+ purpose="VPC_PEERING",
510
+ address_type="INTERNAL",
511
+ prefix_length=16,
512
+ network=apigee_network.id)
513
+ apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
514
+ network=apigee_network.id,
515
+ service="servicenetworking.googleapis.com",
516
+ reserved_peering_ranges=[apigee_range.name])
517
+ apigee_org = gcp.apigee.Organization("apigee_org",
518
+ analytics_region="us-central1",
519
+ project_id=current.project,
520
+ authorized_network=apigee_network.id,
521
+ opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
522
+ apigee_instance = gcp.apigee.Instance("apigee_instance",
523
+ name="my-instance",
524
+ location="us-central1",
525
+ org_id=apigee_org.id,
526
+ peering_cidr_range="SLASH_22")
527
+ apigee_developer = gcp.apigee.Developer("apigee_developer",
528
+ email="john.doe@acme.com",
529
+ first_name="John",
530
+ last_name="Doe",
531
+ user_name="john.doe",
532
+ attributes=[
533
+ {
534
+ "name": "business_unit",
535
+ "value": "HR",
536
+ },
537
+ {
538
+ "name": "department",
539
+ "value": "payroll",
540
+ },
541
+ ],
542
+ org_id=apigee_org.id,
543
+ opts = pulumi.ResourceOptions(depends_on=[apigee_instance]))
544
+ ```
545
+
546
+ ## Import
547
+
548
+ Developer can be imported using any of these accepted formats:
549
+
550
+ * `{{org_id}}/developers/{{email}}`
551
+
552
+ * `{{org_id}}/{{email}}`
553
+
554
+ When using the `pulumi import` command, Developer can be imported using one of the formats above. For example:
555
+
556
+ ```sh
557
+ $ pulumi import gcp:apigee/developer:Developer default {{org_id}}/developers/{{email}}
558
+ ```
559
+
560
+ ```sh
561
+ $ pulumi import gcp:apigee/developer:Developer default {{org_id}}/{{email}}
562
+ ```
563
+
564
+ :param str resource_name: The name of the resource.
565
+ :param DeveloperArgs args: The arguments to use to populate this resource's properties.
566
+ :param pulumi.ResourceOptions opts: Options for the resource.
567
+ """
568
+ ...
569
+ def __init__(__self__, resource_name: str, *args, **kwargs):
570
+ resource_args, opts = _utilities.get_resource_args_opts(DeveloperArgs, pulumi.ResourceOptions, *args, **kwargs)
571
+ if resource_args is not None:
572
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
573
+ else:
574
+ __self__._internal_init(resource_name, *args, **kwargs)
575
+
576
+ def _internal_init(__self__,
577
+ resource_name: str,
578
+ opts: Optional[pulumi.ResourceOptions] = None,
579
+ attributes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeveloperAttributeArgs', 'DeveloperAttributeArgsDict']]]]] = None,
580
+ email: Optional[pulumi.Input[str]] = None,
581
+ first_name: Optional[pulumi.Input[str]] = None,
582
+ last_name: Optional[pulumi.Input[str]] = None,
583
+ org_id: Optional[pulumi.Input[str]] = None,
584
+ user_name: Optional[pulumi.Input[str]] = None,
585
+ __props__=None):
586
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
587
+ if not isinstance(opts, pulumi.ResourceOptions):
588
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
589
+ if opts.id is None:
590
+ if __props__ is not None:
591
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
592
+ __props__ = DeveloperArgs.__new__(DeveloperArgs)
593
+
594
+ __props__.__dict__["attributes"] = attributes
595
+ if email is None and not opts.urn:
596
+ raise TypeError("Missing required property 'email'")
597
+ __props__.__dict__["email"] = email
598
+ if first_name is None and not opts.urn:
599
+ raise TypeError("Missing required property 'first_name'")
600
+ __props__.__dict__["first_name"] = first_name
601
+ if last_name is None and not opts.urn:
602
+ raise TypeError("Missing required property 'last_name'")
603
+ __props__.__dict__["last_name"] = last_name
604
+ if org_id is None and not opts.urn:
605
+ raise TypeError("Missing required property 'org_id'")
606
+ __props__.__dict__["org_id"] = org_id
607
+ if user_name is None and not opts.urn:
608
+ raise TypeError("Missing required property 'user_name'")
609
+ __props__.__dict__["user_name"] = user_name
610
+ __props__.__dict__["created_at"] = None
611
+ __props__.__dict__["last_modified_at"] = None
612
+ __props__.__dict__["organizatio_name"] = None
613
+ __props__.__dict__["status"] = None
614
+ super(Developer, __self__).__init__(
615
+ 'gcp:apigee/developer:Developer',
616
+ resource_name,
617
+ __props__,
618
+ opts)
619
+
620
+ @staticmethod
621
+ def get(resource_name: str,
622
+ id: pulumi.Input[str],
623
+ opts: Optional[pulumi.ResourceOptions] = None,
624
+ attributes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeveloperAttributeArgs', 'DeveloperAttributeArgsDict']]]]] = None,
625
+ created_at: Optional[pulumi.Input[str]] = None,
626
+ email: Optional[pulumi.Input[str]] = None,
627
+ first_name: Optional[pulumi.Input[str]] = None,
628
+ last_modified_at: Optional[pulumi.Input[str]] = None,
629
+ last_name: Optional[pulumi.Input[str]] = None,
630
+ org_id: Optional[pulumi.Input[str]] = None,
631
+ organizatio_name: Optional[pulumi.Input[str]] = None,
632
+ status: Optional[pulumi.Input[str]] = None,
633
+ user_name: Optional[pulumi.Input[str]] = None) -> 'Developer':
634
+ """
635
+ Get an existing Developer resource's state with the given name, id, and optional extra
636
+ properties used to qualify the lookup.
637
+
638
+ :param str resource_name: The unique name of the resulting resource.
639
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
640
+ :param pulumi.ResourceOptions opts: Options for the resource.
641
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DeveloperAttributeArgs', 'DeveloperAttributeArgsDict']]]] attributes: Developer attributes (name/value pairs). The custom attribute limit is 18.
642
+ Structure is documented below.
643
+ :param pulumi.Input[str] created_at: Time at which the developer was created in milliseconds since epoch.
644
+ :param pulumi.Input[str] email: Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only..
645
+ :param pulumi.Input[str] first_name: First name of the developer.
646
+ :param pulumi.Input[str] last_modified_at: Time at which the developer was last modified in milliseconds since epoch.
647
+ :param pulumi.Input[str] last_name: Last name of the developer.
648
+ :param pulumi.Input[str] org_id: The Apigee Organization associated with the Apigee instance,
649
+ in the format `organizations/{{org_name}}`.
650
+
651
+
652
+ - - -
653
+ :param pulumi.Input[str] organizatio_name: Name of the Apigee organization in which the developer resides.
654
+ :param pulumi.Input[str] status: Status of the developer. Valid values are active and inactive.
655
+ :param pulumi.Input[str] user_name: User name of the developer. Not used by Apigee hybrid.
656
+ """
657
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
658
+
659
+ __props__ = _DeveloperState.__new__(_DeveloperState)
660
+
661
+ __props__.__dict__["attributes"] = attributes
662
+ __props__.__dict__["created_at"] = created_at
663
+ __props__.__dict__["email"] = email
664
+ __props__.__dict__["first_name"] = first_name
665
+ __props__.__dict__["last_modified_at"] = last_modified_at
666
+ __props__.__dict__["last_name"] = last_name
667
+ __props__.__dict__["org_id"] = org_id
668
+ __props__.__dict__["organizatio_name"] = organizatio_name
669
+ __props__.__dict__["status"] = status
670
+ __props__.__dict__["user_name"] = user_name
671
+ return Developer(resource_name, opts=opts, __props__=__props__)
672
+
673
+ @property
674
+ @pulumi.getter
675
+ def attributes(self) -> pulumi.Output[Optional[Sequence['outputs.DeveloperAttribute']]]:
676
+ """
677
+ Developer attributes (name/value pairs). The custom attribute limit is 18.
678
+ Structure is documented below.
679
+ """
680
+ return pulumi.get(self, "attributes")
681
+
682
+ @property
683
+ @pulumi.getter(name="createdAt")
684
+ def created_at(self) -> pulumi.Output[str]:
685
+ """
686
+ Time at which the developer was created in milliseconds since epoch.
687
+ """
688
+ return pulumi.get(self, "created_at")
689
+
690
+ @property
691
+ @pulumi.getter
692
+ def email(self) -> pulumi.Output[str]:
693
+ """
694
+ Email address of the developer. This value is used to uniquely identify the developer in Apigee hybrid. Note that the email address has to be in lowercase only..
695
+ """
696
+ return pulumi.get(self, "email")
697
+
698
+ @property
699
+ @pulumi.getter(name="firstName")
700
+ def first_name(self) -> pulumi.Output[str]:
701
+ """
702
+ First name of the developer.
703
+ """
704
+ return pulumi.get(self, "first_name")
705
+
706
+ @property
707
+ @pulumi.getter(name="lastModifiedAt")
708
+ def last_modified_at(self) -> pulumi.Output[str]:
709
+ """
710
+ Time at which the developer was last modified in milliseconds since epoch.
711
+ """
712
+ return pulumi.get(self, "last_modified_at")
713
+
714
+ @property
715
+ @pulumi.getter(name="lastName")
716
+ def last_name(self) -> pulumi.Output[str]:
717
+ """
718
+ Last name of the developer.
719
+ """
720
+ return pulumi.get(self, "last_name")
721
+
722
+ @property
723
+ @pulumi.getter(name="orgId")
724
+ def org_id(self) -> pulumi.Output[str]:
725
+ """
726
+ The Apigee Organization associated with the Apigee instance,
727
+ in the format `organizations/{{org_name}}`.
728
+
729
+
730
+ - - -
731
+ """
732
+ return pulumi.get(self, "org_id")
733
+
734
+ @property
735
+ @pulumi.getter(name="organizatioName")
736
+ def organizatio_name(self) -> pulumi.Output[str]:
737
+ """
738
+ Name of the Apigee organization in which the developer resides.
739
+ """
740
+ return pulumi.get(self, "organizatio_name")
741
+
742
+ @property
743
+ @pulumi.getter
744
+ def status(self) -> pulumi.Output[str]:
745
+ """
746
+ Status of the developer. Valid values are active and inactive.
747
+ """
748
+ return pulumi.get(self, "status")
749
+
750
+ @property
751
+ @pulumi.getter(name="userName")
752
+ def user_name(self) -> pulumi.Output[str]:
753
+ """
754
+ User name of the developer. Not used by Apigee hybrid.
755
+ """
756
+ return pulumi.get(self, "user_name")
757
+