pulumi-gcp 8.26.0a1744267117__py3-none-any.whl → 8.27.0a1744386150__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 (57) hide show
  1. pulumi_gcp/__init__.py +48 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +117 -0
  3. pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +81 -26
  4. pulumi_gcp/accesscontextmanager/outputs.py +95 -0
  5. pulumi_gcp/apigee/__init__.py +1 -0
  6. pulumi_gcp/apigee/control_plane_access.py +419 -0
  7. pulumi_gcp/clouddeploy/__init__.py +1 -0
  8. pulumi_gcp/clouddeploy/_inputs.py +2876 -1314
  9. pulumi_gcp/clouddeploy/automation.py +64 -2
  10. pulumi_gcp/clouddeploy/deploy_policy.py +1179 -0
  11. pulumi_gcp/clouddeploy/outputs.py +1130 -5
  12. pulumi_gcp/cloudrunv2/service.py +2 -2
  13. pulumi_gcp/compute/_inputs.py +20 -0
  14. pulumi_gcp/compute/outputs.py +25 -0
  15. pulumi_gcp/compute/resource_policy.py +30 -0
  16. pulumi_gcp/datastream/_inputs.py +506 -0
  17. pulumi_gcp/datastream/outputs.py +376 -0
  18. pulumi_gcp/datastream/stream.py +0 -2
  19. pulumi_gcp/firebase/hosting_version.py +34 -14
  20. pulumi_gcp/folder/__init__.py +1 -0
  21. pulumi_gcp/folder/service_identity.py +340 -0
  22. pulumi_gcp/gemini/__init__.py +2 -0
  23. pulumi_gcp/gemini/_inputs.py +176 -0
  24. pulumi_gcp/gemini/code_tools_setting.py +601 -0
  25. pulumi_gcp/gemini/code_tools_setting_binding.py +753 -0
  26. pulumi_gcp/gemini/outputs.py +124 -0
  27. pulumi_gcp/gkeonprem/v_mware_cluster.py +49 -0
  28. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +28 -0
  29. pulumi_gcp/memorystore/_inputs.py +136 -0
  30. pulumi_gcp/memorystore/get_instance.py +12 -1
  31. pulumi_gcp/memorystore/instance.py +54 -0
  32. pulumi_gcp/memorystore/outputs.py +190 -0
  33. pulumi_gcp/netapp/_inputs.py +89 -3
  34. pulumi_gcp/netapp/outputs.py +75 -2
  35. pulumi_gcp/netapp/volume_replication.py +12 -2
  36. pulumi_gcp/networkconnectivity/service_connection_policy.py +4 -2
  37. pulumi_gcp/osconfig/__init__.py +1 -0
  38. pulumi_gcp/osconfig/_inputs.py +5439 -0
  39. pulumi_gcp/osconfig/outputs.py +3978 -0
  40. pulumi_gcp/osconfig/v2_policy_orchestrator_for_organization.py +1047 -0
  41. pulumi_gcp/parametermanager/get_regional_parameter.py +12 -1
  42. pulumi_gcp/parametermanager/get_regional_parameter_version.py +15 -1
  43. pulumi_gcp/parametermanager/outputs.py +11 -0
  44. pulumi_gcp/parametermanager/regional_parameter.py +78 -0
  45. pulumi_gcp/parametermanager/regional_parameter_version.py +66 -0
  46. pulumi_gcp/pulumi-plugin.json +1 -1
  47. pulumi_gcp/spanner/database.py +0 -34
  48. pulumi_gcp/storage/bucket_object.py +28 -0
  49. pulumi_gcp/storage/get_bucket_object.py +12 -1
  50. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  51. pulumi_gcp/workbench/_inputs.py +60 -0
  52. pulumi_gcp/workbench/instance.py +48 -0
  53. pulumi_gcp/workbench/outputs.py +55 -0
  54. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/METADATA +1 -1
  55. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/RECORD +57 -51
  56. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/WHEEL +0 -0
  57. {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,419 @@
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 builtins
6
+ import copy
7
+ import warnings
8
+ import sys
9
+ import pulumi
10
+ import pulumi.runtime
11
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
12
+ if sys.version_info >= (3, 11):
13
+ from typing import NotRequired, TypedDict, TypeAlias
14
+ else:
15
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
16
+ from .. import _utilities
17
+
18
+ __all__ = ['ControlPlaneAccessArgs', 'ControlPlaneAccess']
19
+
20
+ @pulumi.input_type
21
+ class ControlPlaneAccessArgs:
22
+ def __init__(__self__, *,
23
+ analytics_publisher_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
24
+ name: Optional[pulumi.Input[builtins.str]] = None,
25
+ synchronizer_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
26
+ """
27
+ The set of arguments for constructing a ControlPlaneAccess resource.
28
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] analytics_publisher_identities: Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
29
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
30
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
31
+ :param pulumi.Input[builtins.str] name: Name of the Apigee organization.
32
+
33
+
34
+ - - -
35
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] synchronizer_identities: Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
36
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
37
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
38
+ The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
39
+ """
40
+ if analytics_publisher_identities is not None:
41
+ pulumi.set(__self__, "analytics_publisher_identities", analytics_publisher_identities)
42
+ if name is not None:
43
+ pulumi.set(__self__, "name", name)
44
+ if synchronizer_identities is not None:
45
+ pulumi.set(__self__, "synchronizer_identities", synchronizer_identities)
46
+
47
+ @property
48
+ @pulumi.getter(name="analyticsPublisherIdentities")
49
+ def analytics_publisher_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
50
+ """
51
+ Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
52
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
53
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
54
+ """
55
+ return pulumi.get(self, "analytics_publisher_identities")
56
+
57
+ @analytics_publisher_identities.setter
58
+ def analytics_publisher_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
59
+ pulumi.set(self, "analytics_publisher_identities", value)
60
+
61
+ @property
62
+ @pulumi.getter
63
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
64
+ """
65
+ Name of the Apigee organization.
66
+
67
+
68
+ - - -
69
+ """
70
+ return pulumi.get(self, "name")
71
+
72
+ @name.setter
73
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
74
+ pulumi.set(self, "name", value)
75
+
76
+ @property
77
+ @pulumi.getter(name="synchronizerIdentities")
78
+ def synchronizer_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
79
+ """
80
+ Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
81
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
82
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
83
+ The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
84
+ """
85
+ return pulumi.get(self, "synchronizer_identities")
86
+
87
+ @synchronizer_identities.setter
88
+ def synchronizer_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
89
+ pulumi.set(self, "synchronizer_identities", value)
90
+
91
+
92
+ @pulumi.input_type
93
+ class _ControlPlaneAccessState:
94
+ def __init__(__self__, *,
95
+ analytics_publisher_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
96
+ name: Optional[pulumi.Input[builtins.str]] = None,
97
+ synchronizer_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
98
+ """
99
+ Input properties used for looking up and filtering ControlPlaneAccess resources.
100
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] analytics_publisher_identities: Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
101
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
102
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
103
+ :param pulumi.Input[builtins.str] name: Name of the Apigee organization.
104
+
105
+
106
+ - - -
107
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] synchronizer_identities: Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
108
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
109
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
110
+ The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
111
+ """
112
+ if analytics_publisher_identities is not None:
113
+ pulumi.set(__self__, "analytics_publisher_identities", analytics_publisher_identities)
114
+ if name is not None:
115
+ pulumi.set(__self__, "name", name)
116
+ if synchronizer_identities is not None:
117
+ pulumi.set(__self__, "synchronizer_identities", synchronizer_identities)
118
+
119
+ @property
120
+ @pulumi.getter(name="analyticsPublisherIdentities")
121
+ def analytics_publisher_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
122
+ """
123
+ Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
124
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
125
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
126
+ """
127
+ return pulumi.get(self, "analytics_publisher_identities")
128
+
129
+ @analytics_publisher_identities.setter
130
+ def analytics_publisher_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
131
+ pulumi.set(self, "analytics_publisher_identities", value)
132
+
133
+ @property
134
+ @pulumi.getter
135
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
136
+ """
137
+ Name of the Apigee organization.
138
+
139
+
140
+ - - -
141
+ """
142
+ return pulumi.get(self, "name")
143
+
144
+ @name.setter
145
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
146
+ pulumi.set(self, "name", value)
147
+
148
+ @property
149
+ @pulumi.getter(name="synchronizerIdentities")
150
+ def synchronizer_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
151
+ """
152
+ Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
153
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
154
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
155
+ The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
156
+ """
157
+ return pulumi.get(self, "synchronizer_identities")
158
+
159
+ @synchronizer_identities.setter
160
+ def synchronizer_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
161
+ pulumi.set(self, "synchronizer_identities", value)
162
+
163
+
164
+ class ControlPlaneAccess(pulumi.CustomResource):
165
+ @overload
166
+ def __init__(__self__,
167
+ resource_name: str,
168
+ opts: Optional[pulumi.ResourceOptions] = None,
169
+ analytics_publisher_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
170
+ name: Optional[pulumi.Input[builtins.str]] = None,
171
+ synchronizer_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
172
+ __props__=None):
173
+ """
174
+ Authorize the Runtime components to access directly with Apigee Control Plane.
175
+
176
+ To get more information about ControlPlaneAccess, see:
177
+
178
+ * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations/updateControlPlaneAccess)
179
+ * How-to Guides
180
+ * [Enable ControlPlane access](https://cloud.google.com/apigee/docs/hybrid/v1.14/install-enable-control-plane-access)
181
+
182
+ ## Example Usage
183
+
184
+ ### Apigee Control Plane Access Basic Test
185
+
186
+ ```python
187
+ import pulumi
188
+ import pulumi_gcp as gcp
189
+
190
+ project = gcp.organizations.Project("project",
191
+ project_id="my-project",
192
+ name="my-project",
193
+ org_id="123456789",
194
+ billing_account="000000-0000000-0000000-000000",
195
+ deletion_policy="DELETE")
196
+ apigee = gcp.projects.Service("apigee",
197
+ project=project.project_id,
198
+ service="apigee.googleapis.com")
199
+ apigee_org = gcp.apigee.Organization("apigee_org",
200
+ analytics_region="us-central1",
201
+ project_id=project.project_id,
202
+ runtime_type="HYBRID",
203
+ opts = pulumi.ResourceOptions(depends_on=[apigee]))
204
+ service_account = gcp.serviceaccount.Account("service_account",
205
+ account_id="my-account",
206
+ display_name="Service Account")
207
+ synchronizer_iam = gcp.projects.IAMMember("synchronizer-iam",
208
+ project=project.project_id,
209
+ role="roles/apigee.synchronizerManager",
210
+ member=service_account.email.apply(lambda email: f"serviceAccount:{email}"))
211
+ apigee_control_plane_access = gcp.apigee.ControlPlaneAccess("apigee_control_plane_access",
212
+ name=apigee_org.name,
213
+ synchronizer_identities=[service_account.email.apply(lambda email: f"serviceAccount:{email}")],
214
+ analytics_publisher_identities=[service_account.email.apply(lambda email: f"serviceAccount:{email}")])
215
+ ```
216
+
217
+ ## Import
218
+
219
+ ControlPlaneAccess can be imported using any of these accepted formats:
220
+
221
+ * `organizations/{{name}}/controlPlaneAccess`
222
+
223
+ * `{{name}}`
224
+
225
+ When using the `pulumi import` command, ControlPlaneAccess can be imported using one of the formats above. For example:
226
+
227
+ ```sh
228
+ $ pulumi import gcp:apigee/controlPlaneAccess:ControlPlaneAccess default organizations/{{name}}/controlPlaneAccess
229
+ ```
230
+
231
+ ```sh
232
+ $ pulumi import gcp:apigee/controlPlaneAccess:ControlPlaneAccess default {{name}}
233
+ ```
234
+
235
+ :param str resource_name: The name of the resource.
236
+ :param pulumi.ResourceOptions opts: Options for the resource.
237
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] analytics_publisher_identities: Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
238
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
239
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
240
+ :param pulumi.Input[builtins.str] name: Name of the Apigee organization.
241
+
242
+
243
+ - - -
244
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] synchronizer_identities: Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
245
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
246
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
247
+ The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
248
+ """
249
+ ...
250
+ @overload
251
+ def __init__(__self__,
252
+ resource_name: str,
253
+ args: Optional[ControlPlaneAccessArgs] = None,
254
+ opts: Optional[pulumi.ResourceOptions] = None):
255
+ """
256
+ Authorize the Runtime components to access directly with Apigee Control Plane.
257
+
258
+ To get more information about ControlPlaneAccess, see:
259
+
260
+ * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations/updateControlPlaneAccess)
261
+ * How-to Guides
262
+ * [Enable ControlPlane access](https://cloud.google.com/apigee/docs/hybrid/v1.14/install-enable-control-plane-access)
263
+
264
+ ## Example Usage
265
+
266
+ ### Apigee Control Plane Access Basic Test
267
+
268
+ ```python
269
+ import pulumi
270
+ import pulumi_gcp as gcp
271
+
272
+ project = gcp.organizations.Project("project",
273
+ project_id="my-project",
274
+ name="my-project",
275
+ org_id="123456789",
276
+ billing_account="000000-0000000-0000000-000000",
277
+ deletion_policy="DELETE")
278
+ apigee = gcp.projects.Service("apigee",
279
+ project=project.project_id,
280
+ service="apigee.googleapis.com")
281
+ apigee_org = gcp.apigee.Organization("apigee_org",
282
+ analytics_region="us-central1",
283
+ project_id=project.project_id,
284
+ runtime_type="HYBRID",
285
+ opts = pulumi.ResourceOptions(depends_on=[apigee]))
286
+ service_account = gcp.serviceaccount.Account("service_account",
287
+ account_id="my-account",
288
+ display_name="Service Account")
289
+ synchronizer_iam = gcp.projects.IAMMember("synchronizer-iam",
290
+ project=project.project_id,
291
+ role="roles/apigee.synchronizerManager",
292
+ member=service_account.email.apply(lambda email: f"serviceAccount:{email}"))
293
+ apigee_control_plane_access = gcp.apigee.ControlPlaneAccess("apigee_control_plane_access",
294
+ name=apigee_org.name,
295
+ synchronizer_identities=[service_account.email.apply(lambda email: f"serviceAccount:{email}")],
296
+ analytics_publisher_identities=[service_account.email.apply(lambda email: f"serviceAccount:{email}")])
297
+ ```
298
+
299
+ ## Import
300
+
301
+ ControlPlaneAccess can be imported using any of these accepted formats:
302
+
303
+ * `organizations/{{name}}/controlPlaneAccess`
304
+
305
+ * `{{name}}`
306
+
307
+ When using the `pulumi import` command, ControlPlaneAccess can be imported using one of the formats above. For example:
308
+
309
+ ```sh
310
+ $ pulumi import gcp:apigee/controlPlaneAccess:ControlPlaneAccess default organizations/{{name}}/controlPlaneAccess
311
+ ```
312
+
313
+ ```sh
314
+ $ pulumi import gcp:apigee/controlPlaneAccess:ControlPlaneAccess default {{name}}
315
+ ```
316
+
317
+ :param str resource_name: The name of the resource.
318
+ :param ControlPlaneAccessArgs args: The arguments to use to populate this resource's properties.
319
+ :param pulumi.ResourceOptions opts: Options for the resource.
320
+ """
321
+ ...
322
+ def __init__(__self__, resource_name: str, *args, **kwargs):
323
+ resource_args, opts = _utilities.get_resource_args_opts(ControlPlaneAccessArgs, pulumi.ResourceOptions, *args, **kwargs)
324
+ if resource_args is not None:
325
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
326
+ else:
327
+ __self__._internal_init(resource_name, *args, **kwargs)
328
+
329
+ def _internal_init(__self__,
330
+ resource_name: str,
331
+ opts: Optional[pulumi.ResourceOptions] = None,
332
+ analytics_publisher_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
333
+ name: Optional[pulumi.Input[builtins.str]] = None,
334
+ synchronizer_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
335
+ __props__=None):
336
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
337
+ if not isinstance(opts, pulumi.ResourceOptions):
338
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
339
+ if opts.id is None:
340
+ if __props__ is not None:
341
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
342
+ __props__ = ControlPlaneAccessArgs.__new__(ControlPlaneAccessArgs)
343
+
344
+ __props__.__dict__["analytics_publisher_identities"] = analytics_publisher_identities
345
+ __props__.__dict__["name"] = name
346
+ __props__.__dict__["synchronizer_identities"] = synchronizer_identities
347
+ super(ControlPlaneAccess, __self__).__init__(
348
+ 'gcp:apigee/controlPlaneAccess:ControlPlaneAccess',
349
+ resource_name,
350
+ __props__,
351
+ opts)
352
+
353
+ @staticmethod
354
+ def get(resource_name: str,
355
+ id: pulumi.Input[str],
356
+ opts: Optional[pulumi.ResourceOptions] = None,
357
+ analytics_publisher_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
358
+ name: Optional[pulumi.Input[builtins.str]] = None,
359
+ synchronizer_identities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None) -> 'ControlPlaneAccess':
360
+ """
361
+ Get an existing ControlPlaneAccess resource's state with the given name, id, and optional extra
362
+ properties used to qualify the lookup.
363
+
364
+ :param str resource_name: The unique name of the resulting resource.
365
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
366
+ :param pulumi.ResourceOptions opts: Options for the resource.
367
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] analytics_publisher_identities: Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
368
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
369
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
370
+ :param pulumi.Input[builtins.str] name: Name of the Apigee organization.
371
+
372
+
373
+ - - -
374
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] synchronizer_identities: Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
375
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
376
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
377
+ The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
378
+ """
379
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
380
+
381
+ __props__ = _ControlPlaneAccessState.__new__(_ControlPlaneAccessState)
382
+
383
+ __props__.__dict__["analytics_publisher_identities"] = analytics_publisher_identities
384
+ __props__.__dict__["name"] = name
385
+ __props__.__dict__["synchronizer_identities"] = synchronizer_identities
386
+ return ControlPlaneAccess(resource_name, opts=opts, __props__=__props__)
387
+
388
+ @property
389
+ @pulumi.getter(name="analyticsPublisherIdentities")
390
+ def analytics_publisher_identities(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
391
+ """
392
+ Array of service accounts authorized to publish analytics data to the control plane, each specified using the following format: `serviceAccount:service-account-name`.
393
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
394
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
395
+ """
396
+ return pulumi.get(self, "analytics_publisher_identities")
397
+
398
+ @property
399
+ @pulumi.getter
400
+ def name(self) -> pulumi.Output[builtins.str]:
401
+ """
402
+ Name of the Apigee organization.
403
+
404
+
405
+ - - -
406
+ """
407
+ return pulumi.get(self, "name")
408
+
409
+ @property
410
+ @pulumi.getter(name="synchronizerIdentities")
411
+ def synchronizer_identities(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
412
+ """
413
+ Array of service accounts to grant access to control plane resources (for the Synchronizer component), each specified using the following format: `serviceAccount:service-account-name`.
414
+ The `service-account-name` is formatted like an email address. For example: serviceAccount@my_project_id.iam.gserviceaccount.com
415
+ You might specify multiple service accounts, for example, if you have multiple environments and wish to assign a unique service account to each one.
416
+ The service accounts must have **Apigee Synchronizer Manager** role. See also [Create service accounts](https://cloud.google.com/apigee/docs/hybrid/v1.8/sa-about#create-the-service-accounts).
417
+ """
418
+ return pulumi.get(self, "synchronizer_identities")
419
+
@@ -15,6 +15,7 @@ from .delivery_pipeline import *
15
15
  from .delivery_pipeline_iam_binding import *
16
16
  from .delivery_pipeline_iam_member import *
17
17
  from .delivery_pipeline_iam_policy import *
18
+ from .deploy_policy import *
18
19
  from .get_custom_target_type_iam_policy import *
19
20
  from .get_delivery_pipeline_iam_policy import *
20
21
  from .get_target_iam_policy import *