pulumi-gcp 7.34.0a1722421695__py3-none-any.whl → 7.35.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-gcp might be problematic. Click here for more details.

Files changed (96) hide show
  1. pulumi_gcp/__init__.py +40 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +12 -3
  3. pulumi_gcp/accesscontextmanager/access_policy.py +18 -18
  4. pulumi_gcp/accesscontextmanager/outputs.py +8 -2
  5. pulumi_gcp/alloydb/_inputs.py +174 -0
  6. pulumi_gcp/alloydb/instance.py +54 -0
  7. pulumi_gcp/alloydb/outputs.py +133 -0
  8. pulumi_gcp/apigee/__init__.py +2 -0
  9. pulumi_gcp/apigee/environment_keyvaluemaps.py +370 -0
  10. pulumi_gcp/apigee/environment_keyvaluemaps_entries.py +440 -0
  11. pulumi_gcp/apigee/instance.py +2 -2
  12. pulumi_gcp/apigee/nat_address.py +2 -2
  13. pulumi_gcp/apigee/organization.py +4 -4
  14. pulumi_gcp/apphub/service_project_attachment.py +11 -11
  15. pulumi_gcp/bigquery/_inputs.py +36 -0
  16. pulumi_gcp/bigquery/app_profile.py +54 -0
  17. pulumi_gcp/bigquery/data_transfer_config.py +52 -0
  18. pulumi_gcp/bigquery/outputs.py +38 -0
  19. pulumi_gcp/bigquery/reservation.py +34 -4
  20. pulumi_gcp/bigquery/table.py +65 -21
  21. pulumi_gcp/bigtable/table.py +27 -26
  22. pulumi_gcp/certificateauthority/authority.py +4 -4
  23. pulumi_gcp/cloudfunctions/function.py +47 -0
  24. pulumi_gcp/cloudfunctions/get_function.py +11 -1
  25. pulumi_gcp/cloudfunctionsv2/function.py +2 -2
  26. pulumi_gcp/cloudrun/_inputs.py +24 -21
  27. pulumi_gcp/cloudrun/outputs.py +20 -24
  28. pulumi_gcp/cloudrunv2/_inputs.py +3 -0
  29. pulumi_gcp/cloudrunv2/outputs.py +4 -0
  30. pulumi_gcp/compute/__init__.py +2 -0
  31. pulumi_gcp/compute/_inputs.py +2358 -353
  32. pulumi_gcp/compute/backend_service.py +6 -0
  33. pulumi_gcp/compute/disk.py +75 -0
  34. pulumi_gcp/compute/get_disk.py +11 -1
  35. pulumi_gcp/compute/get_hc_vpn_gateway.py +11 -1
  36. pulumi_gcp/compute/get_instance_template.py +2 -2
  37. pulumi_gcp/compute/get_region_instance_template.py +2 -2
  38. pulumi_gcp/compute/get_snapshot.py +2 -2
  39. pulumi_gcp/compute/ha_vpn_gateway.py +68 -7
  40. pulumi_gcp/compute/outputs.py +1490 -31
  41. pulumi_gcp/compute/public_advertised_prefix.py +30 -2
  42. pulumi_gcp/compute/resize_request.py +782 -0
  43. pulumi_gcp/compute/router_peer.py +437 -0
  44. pulumi_gcp/compute/router_route_policy.py +616 -0
  45. pulumi_gcp/compute/service_attachment.py +7 -14
  46. pulumi_gcp/container/_inputs.py +218 -21
  47. pulumi_gcp/container/node_pool.py +0 -14
  48. pulumi_gcp/container/outputs.py +228 -14
  49. pulumi_gcp/databasemigrationservice/private_connection.py +10 -6
  50. pulumi_gcp/dataloss/_inputs.py +707 -21
  51. pulumi_gcp/dataloss/outputs.py +588 -14
  52. pulumi_gcp/datastore/data_store_index.py +24 -12
  53. pulumi_gcp/datastream/_inputs.py +83 -3
  54. pulumi_gcp/datastream/outputs.py +51 -3
  55. pulumi_gcp/datastream/stream.py +170 -0
  56. pulumi_gcp/firebase/database_instance.py +8 -8
  57. pulumi_gcp/firebase/hosting_site.py +8 -8
  58. pulumi_gcp/firebase/project.py +10 -2
  59. pulumi_gcp/firestore/index.py +10 -10
  60. pulumi_gcp/gkeonprem/_inputs.py +78 -78
  61. pulumi_gcp/gkeonprem/outputs.py +52 -52
  62. pulumi_gcp/iap/client.py +4 -4
  63. pulumi_gcp/integrationconnectors/_inputs.py +30 -30
  64. pulumi_gcp/integrationconnectors/outputs.py +20 -20
  65. pulumi_gcp/kms/key_handle.py +7 -7
  66. pulumi_gcp/migrationcenter/_inputs.py +21 -129
  67. pulumi_gcp/migrationcenter/outputs.py +14 -86
  68. pulumi_gcp/netapp/volume.py +1 -1
  69. pulumi_gcp/networkconnectivity/_inputs.py +3 -6
  70. pulumi_gcp/networkconnectivity/hub.py +129 -49
  71. pulumi_gcp/networkconnectivity/outputs.py +2 -4
  72. pulumi_gcp/networkconnectivity/spoke.py +159 -104
  73. pulumi_gcp/networksecurity/tls_inspection_policy.py +2 -2
  74. pulumi_gcp/organizations/project.py +16 -7
  75. pulumi_gcp/orgpolicy/policy.py +4 -4
  76. pulumi_gcp/projects/get_project_service.py +11 -1
  77. pulumi_gcp/projects/service.py +68 -0
  78. pulumi_gcp/projects/service_identity.py +30 -2
  79. pulumi_gcp/pubsub/subscription.py +6 -6
  80. pulumi_gcp/pulumi-plugin.json +1 -1
  81. pulumi_gcp/securesourcemanager/instance.py +528 -4
  82. pulumi_gcp/securitycenter/__init__.py +1 -0
  83. pulumi_gcp/securitycenter/v2_organization_mute_config.py +673 -0
  84. pulumi_gcp/sql/_inputs.py +35 -15
  85. pulumi_gcp/sql/database_instance.py +2 -2
  86. pulumi_gcp/sql/outputs.py +50 -14
  87. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  88. pulumi_gcp/vmwareengine/get_private_cloud.py +21 -1
  89. pulumi_gcp/vmwareengine/private_cloud.py +121 -2
  90. pulumi_gcp/workbench/_inputs.py +77 -0
  91. pulumi_gcp/workbench/instance.py +18 -4
  92. pulumi_gcp/workbench/outputs.py +67 -1
  93. {pulumi_gcp-7.34.0a1722421695.dist-info → pulumi_gcp-7.35.0.dist-info}/METADATA +1 -1
  94. {pulumi_gcp-7.34.0a1722421695.dist-info → pulumi_gcp-7.35.0.dist-info}/RECORD +96 -91
  95. {pulumi_gcp-7.34.0a1722421695.dist-info → pulumi_gcp-7.35.0.dist-info}/WHEEL +0 -0
  96. {pulumi_gcp-7.34.0a1722421695.dist-info → pulumi_gcp-7.35.0.dist-info}/top_level.txt +0 -0
@@ -22,25 +22,28 @@ __all__ = ['HubArgs', 'Hub']
22
22
  class HubArgs:
23
23
  def __init__(__self__, *,
24
24
  description: Optional[pulumi.Input[str]] = None,
25
+ export_psc: Optional[pulumi.Input[bool]] = None,
25
26
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
26
27
  name: Optional[pulumi.Input[str]] = None,
27
28
  project: Optional[pulumi.Input[str]] = None):
28
29
  """
29
30
  The set of arguments for constructing a Hub resource.
30
31
  :param pulumi.Input[str] description: An optional description of the hub.
32
+ :param pulumi.Input[bool] export_psc: Whether Private Service Connect transitivity is enabled for the hub. If true, Private Service Connect endpoints in VPC spokes attached to the hub are made accessible to other VPC spokes attached to the hub. The default value is false.
31
33
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
32
-
33
34
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
34
35
  Please refer to the field `effective_labels` for all of the labels present on the resource.
35
36
  :param pulumi.Input[str] name: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`
36
37
 
37
38
 
38
-
39
39
  - - -
40
- :param pulumi.Input[str] project: The project for the resource
40
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
41
+ If it is not provided, the provider project is used.
41
42
  """
42
43
  if description is not None:
43
44
  pulumi.set(__self__, "description", description)
45
+ if export_psc is not None:
46
+ pulumi.set(__self__, "export_psc", export_psc)
44
47
  if labels is not None:
45
48
  pulumi.set(__self__, "labels", labels)
46
49
  if name is not None:
@@ -60,12 +63,23 @@ class HubArgs:
60
63
  def description(self, value: Optional[pulumi.Input[str]]):
61
64
  pulumi.set(self, "description", value)
62
65
 
66
+ @property
67
+ @pulumi.getter(name="exportPsc")
68
+ def export_psc(self) -> Optional[pulumi.Input[bool]]:
69
+ """
70
+ Whether Private Service Connect transitivity is enabled for the hub. If true, Private Service Connect endpoints in VPC spokes attached to the hub are made accessible to other VPC spokes attached to the hub. The default value is false.
71
+ """
72
+ return pulumi.get(self, "export_psc")
73
+
74
+ @export_psc.setter
75
+ def export_psc(self, value: Optional[pulumi.Input[bool]]):
76
+ pulumi.set(self, "export_psc", value)
77
+
63
78
  @property
64
79
  @pulumi.getter
65
80
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
66
81
  """
67
82
  Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
68
-
69
83
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
70
84
  Please refer to the field `effective_labels` for all of the labels present on the resource.
71
85
  """
@@ -82,7 +96,6 @@ class HubArgs:
82
96
  Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`
83
97
 
84
98
 
85
-
86
99
  - - -
87
100
  """
88
101
  return pulumi.get(self, "name")
@@ -95,7 +108,8 @@ class HubArgs:
95
108
  @pulumi.getter
96
109
  def project(self) -> Optional[pulumi.Input[str]]:
97
110
  """
98
- The project for the resource
111
+ The ID of the project in which the resource belongs.
112
+ If it is not provided, the provider project is used.
99
113
  """
100
114
  return pulumi.get(self, "project")
101
115
 
@@ -109,11 +123,12 @@ class _HubState:
109
123
  def __init__(__self__, *,
110
124
  create_time: Optional[pulumi.Input[str]] = None,
111
125
  description: Optional[pulumi.Input[str]] = None,
112
- effective_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
126
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
127
+ export_psc: Optional[pulumi.Input[bool]] = None,
113
128
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
114
129
  name: Optional[pulumi.Input[str]] = None,
115
130
  project: Optional[pulumi.Input[str]] = None,
116
- pulumi_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
131
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
117
132
  routing_vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['HubRoutingVpcArgs']]]] = None,
118
133
  state: Optional[pulumi.Input[str]] = None,
119
134
  unique_id: Optional[pulumi.Input[str]] = None,
@@ -122,20 +137,22 @@ class _HubState:
122
137
  Input properties used for looking up and filtering Hub resources.
123
138
  :param pulumi.Input[str] create_time: Output only. The time the hub was created.
124
139
  :param pulumi.Input[str] description: An optional description of the hub.
125
- :param pulumi.Input[Mapping[str, Any]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
140
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
141
+ :param pulumi.Input[bool] export_psc: Whether Private Service Connect transitivity is enabled for the hub. If true, Private Service Connect endpoints in VPC spokes attached to the hub are made accessible to other VPC spokes attached to the hub. The default value is false.
126
142
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
127
-
128
143
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
129
144
  Please refer to the field `effective_labels` for all of the labels present on the resource.
130
145
  :param pulumi.Input[str] name: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`
131
146
 
132
147
 
133
-
134
148
  - - -
135
- :param pulumi.Input[str] project: The project for the resource
136
- :param pulumi.Input[Mapping[str, Any]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider.
149
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
150
+ If it is not provided, the provider project is used.
151
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
152
+ and default labels configured on the provider.
137
153
  :param pulumi.Input[Sequence[pulumi.Input['HubRoutingVpcArgs']]] routing_vpcs: The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
138
- :param pulumi.Input[str] state: Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
154
+ Structure is documented below.
155
+ :param pulumi.Input[str] state: Output only. The current lifecycle state of this hub.
139
156
  :param pulumi.Input[str] unique_id: Output only. The Google-generated UUID for the hub. This value is unique across all hub resources. If a hub is deleted and another with the same name is created, the new hub is assigned a different unique_id.
140
157
  :param pulumi.Input[str] update_time: Output only. The time the hub was last updated.
141
158
  """
@@ -145,6 +162,8 @@ class _HubState:
145
162
  pulumi.set(__self__, "description", description)
146
163
  if effective_labels is not None:
147
164
  pulumi.set(__self__, "effective_labels", effective_labels)
165
+ if export_psc is not None:
166
+ pulumi.set(__self__, "export_psc", export_psc)
148
167
  if labels is not None:
149
168
  pulumi.set(__self__, "labels", labels)
150
169
  if name is not None:
@@ -188,22 +207,33 @@ class _HubState:
188
207
 
189
208
  @property
190
209
  @pulumi.getter(name="effectiveLabels")
191
- def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
210
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
192
211
  """
193
212
  All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
194
213
  """
195
214
  return pulumi.get(self, "effective_labels")
196
215
 
197
216
  @effective_labels.setter
198
- def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
217
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
199
218
  pulumi.set(self, "effective_labels", value)
200
219
 
220
+ @property
221
+ @pulumi.getter(name="exportPsc")
222
+ def export_psc(self) -> Optional[pulumi.Input[bool]]:
223
+ """
224
+ Whether Private Service Connect transitivity is enabled for the hub. If true, Private Service Connect endpoints in VPC spokes attached to the hub are made accessible to other VPC spokes attached to the hub. The default value is false.
225
+ """
226
+ return pulumi.get(self, "export_psc")
227
+
228
+ @export_psc.setter
229
+ def export_psc(self, value: Optional[pulumi.Input[bool]]):
230
+ pulumi.set(self, "export_psc", value)
231
+
201
232
  @property
202
233
  @pulumi.getter
203
234
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
204
235
  """
205
236
  Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
206
-
207
237
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
208
238
  Please refer to the field `effective_labels` for all of the labels present on the resource.
209
239
  """
@@ -220,7 +250,6 @@ class _HubState:
220
250
  Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`
221
251
 
222
252
 
223
-
224
253
  - - -
225
254
  """
226
255
  return pulumi.get(self, "name")
@@ -233,7 +262,8 @@ class _HubState:
233
262
  @pulumi.getter
234
263
  def project(self) -> Optional[pulumi.Input[str]]:
235
264
  """
236
- The project for the resource
265
+ The ID of the project in which the resource belongs.
266
+ If it is not provided, the provider project is used.
237
267
  """
238
268
  return pulumi.get(self, "project")
239
269
 
@@ -243,14 +273,15 @@ class _HubState:
243
273
 
244
274
  @property
245
275
  @pulumi.getter(name="pulumiLabels")
246
- def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
276
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
247
277
  """
248
- The combination of labels configured directly on the resource and default labels configured on the provider.
278
+ The combination of labels configured directly on the resource
279
+ and default labels configured on the provider.
249
280
  """
250
281
  return pulumi.get(self, "pulumi_labels")
251
282
 
252
283
  @pulumi_labels.setter
253
- def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
284
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
254
285
  pulumi.set(self, "pulumi_labels", value)
255
286
 
256
287
  @property
@@ -258,6 +289,7 @@ class _HubState:
258
289
  def routing_vpcs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['HubRoutingVpcArgs']]]]:
259
290
  """
260
291
  The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
292
+ Structure is documented below.
261
293
  """
262
294
  return pulumi.get(self, "routing_vpcs")
263
295
 
@@ -269,7 +301,7 @@ class _HubState:
269
301
  @pulumi.getter
270
302
  def state(self) -> Optional[pulumi.Input[str]]:
271
303
  """
272
- Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
304
+ Output only. The current lifecycle state of this hub.
273
305
  """
274
306
  return pulumi.get(self, "state")
275
307
 
@@ -308,6 +340,7 @@ class Hub(pulumi.CustomResource):
308
340
  resource_name: str,
309
341
  opts: Optional[pulumi.ResourceOptions] = None,
310
342
  description: Optional[pulumi.Input[str]] = None,
343
+ export_psc: Optional[pulumi.Input[bool]] = None,
311
344
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
312
345
  name: Optional[pulumi.Input[str]] = None,
313
346
  project: Optional[pulumi.Input[str]] = None,
@@ -315,22 +348,38 @@ class Hub(pulumi.CustomResource):
315
348
  """
316
349
  The NetworkConnectivity Hub resource
317
350
 
351
+ To get more information about Hub, see:
352
+
353
+ * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.global.hubs)
354
+ * How-to Guides
355
+ * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview)
356
+
318
357
  ## Example Usage
319
358
 
320
- ### Basic_hub
321
- A basic test of a networkconnectivity hub
359
+ ### Network Connectivity Hub Basic
360
+
322
361
  ```python
323
362
  import pulumi
324
363
  import pulumi_gcp as gcp
325
364
 
326
365
  primary = gcp.networkconnectivity.Hub("primary",
327
- name="hub",
366
+ name="basic",
328
367
  description="A sample hub",
329
- project="my-project-name",
330
368
  labels={
331
369
  "label-one": "value-one",
332
370
  })
333
371
  ```
372
+ ### Network Connectivity Hub With Export Psc
373
+
374
+ ```python
375
+ import pulumi
376
+ import pulumi_gcp as gcp
377
+
378
+ primary = gcp.networkconnectivity.Hub("primary",
379
+ name="basic",
380
+ description="A sample hub with Private Service Connect transitivity is enabled",
381
+ export_psc=True)
382
+ ```
334
383
 
335
384
  ## Import
336
385
 
@@ -359,16 +408,16 @@ class Hub(pulumi.CustomResource):
359
408
  :param str resource_name: The name of the resource.
360
409
  :param pulumi.ResourceOptions opts: Options for the resource.
361
410
  :param pulumi.Input[str] description: An optional description of the hub.
411
+ :param pulumi.Input[bool] export_psc: Whether Private Service Connect transitivity is enabled for the hub. If true, Private Service Connect endpoints in VPC spokes attached to the hub are made accessible to other VPC spokes attached to the hub. The default value is false.
362
412
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
363
-
364
413
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
365
414
  Please refer to the field `effective_labels` for all of the labels present on the resource.
366
415
  :param pulumi.Input[str] name: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`
367
416
 
368
417
 
369
-
370
418
  - - -
371
- :param pulumi.Input[str] project: The project for the resource
419
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
420
+ If it is not provided, the provider project is used.
372
421
  """
373
422
  ...
374
423
  @overload
@@ -379,22 +428,38 @@ class Hub(pulumi.CustomResource):
379
428
  """
380
429
  The NetworkConnectivity Hub resource
381
430
 
431
+ To get more information about Hub, see:
432
+
433
+ * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.global.hubs)
434
+ * How-to Guides
435
+ * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview)
436
+
382
437
  ## Example Usage
383
438
 
384
- ### Basic_hub
385
- A basic test of a networkconnectivity hub
439
+ ### Network Connectivity Hub Basic
440
+
386
441
  ```python
387
442
  import pulumi
388
443
  import pulumi_gcp as gcp
389
444
 
390
445
  primary = gcp.networkconnectivity.Hub("primary",
391
- name="hub",
446
+ name="basic",
392
447
  description="A sample hub",
393
- project="my-project-name",
394
448
  labels={
395
449
  "label-one": "value-one",
396
450
  })
397
451
  ```
452
+ ### Network Connectivity Hub With Export Psc
453
+
454
+ ```python
455
+ import pulumi
456
+ import pulumi_gcp as gcp
457
+
458
+ primary = gcp.networkconnectivity.Hub("primary",
459
+ name="basic",
460
+ description="A sample hub with Private Service Connect transitivity is enabled",
461
+ export_psc=True)
462
+ ```
398
463
 
399
464
  ## Import
400
465
 
@@ -436,6 +501,7 @@ class Hub(pulumi.CustomResource):
436
501
  resource_name: str,
437
502
  opts: Optional[pulumi.ResourceOptions] = None,
438
503
  description: Optional[pulumi.Input[str]] = None,
504
+ export_psc: Optional[pulumi.Input[bool]] = None,
439
505
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
440
506
  name: Optional[pulumi.Input[str]] = None,
441
507
  project: Optional[pulumi.Input[str]] = None,
@@ -449,6 +515,7 @@ class Hub(pulumi.CustomResource):
449
515
  __props__ = HubArgs.__new__(HubArgs)
450
516
 
451
517
  __props__.__dict__["description"] = description
518
+ __props__.__dict__["export_psc"] = export_psc
452
519
  __props__.__dict__["labels"] = labels
453
520
  __props__.__dict__["name"] = name
454
521
  __props__.__dict__["project"] = project
@@ -473,11 +540,12 @@ class Hub(pulumi.CustomResource):
473
540
  opts: Optional[pulumi.ResourceOptions] = None,
474
541
  create_time: Optional[pulumi.Input[str]] = None,
475
542
  description: Optional[pulumi.Input[str]] = None,
476
- effective_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
543
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
544
+ export_psc: Optional[pulumi.Input[bool]] = None,
477
545
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
478
546
  name: Optional[pulumi.Input[str]] = None,
479
547
  project: Optional[pulumi.Input[str]] = None,
480
- pulumi_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
548
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
481
549
  routing_vpcs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['HubRoutingVpcArgs', 'HubRoutingVpcArgsDict']]]]] = None,
482
550
  state: Optional[pulumi.Input[str]] = None,
483
551
  unique_id: Optional[pulumi.Input[str]] = None,
@@ -491,20 +559,22 @@ class Hub(pulumi.CustomResource):
491
559
  :param pulumi.ResourceOptions opts: Options for the resource.
492
560
  :param pulumi.Input[str] create_time: Output only. The time the hub was created.
493
561
  :param pulumi.Input[str] description: An optional description of the hub.
494
- :param pulumi.Input[Mapping[str, Any]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
562
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
563
+ :param pulumi.Input[bool] export_psc: Whether Private Service Connect transitivity is enabled for the hub. If true, Private Service Connect endpoints in VPC spokes attached to the hub are made accessible to other VPC spokes attached to the hub. The default value is false.
495
564
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
496
-
497
565
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
498
566
  Please refer to the field `effective_labels` for all of the labels present on the resource.
499
567
  :param pulumi.Input[str] name: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`
500
568
 
501
569
 
502
-
503
570
  - - -
504
- :param pulumi.Input[str] project: The project for the resource
505
- :param pulumi.Input[Mapping[str, Any]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider.
571
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
572
+ If it is not provided, the provider project is used.
573
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
574
+ and default labels configured on the provider.
506
575
  :param pulumi.Input[Sequence[pulumi.Input[Union['HubRoutingVpcArgs', 'HubRoutingVpcArgsDict']]]] routing_vpcs: The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
507
- :param pulumi.Input[str] state: Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
576
+ Structure is documented below.
577
+ :param pulumi.Input[str] state: Output only. The current lifecycle state of this hub.
508
578
  :param pulumi.Input[str] unique_id: Output only. The Google-generated UUID for the hub. This value is unique across all hub resources. If a hub is deleted and another with the same name is created, the new hub is assigned a different unique_id.
509
579
  :param pulumi.Input[str] update_time: Output only. The time the hub was last updated.
510
580
  """
@@ -515,6 +585,7 @@ class Hub(pulumi.CustomResource):
515
585
  __props__.__dict__["create_time"] = create_time
516
586
  __props__.__dict__["description"] = description
517
587
  __props__.__dict__["effective_labels"] = effective_labels
588
+ __props__.__dict__["export_psc"] = export_psc
518
589
  __props__.__dict__["labels"] = labels
519
590
  __props__.__dict__["name"] = name
520
591
  __props__.__dict__["project"] = project
@@ -543,18 +614,25 @@ class Hub(pulumi.CustomResource):
543
614
 
544
615
  @property
545
616
  @pulumi.getter(name="effectiveLabels")
546
- def effective_labels(self) -> pulumi.Output[Mapping[str, Any]]:
617
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
547
618
  """
548
619
  All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
549
620
  """
550
621
  return pulumi.get(self, "effective_labels")
551
622
 
623
+ @property
624
+ @pulumi.getter(name="exportPsc")
625
+ def export_psc(self) -> pulumi.Output[bool]:
626
+ """
627
+ Whether Private Service Connect transitivity is enabled for the hub. If true, Private Service Connect endpoints in VPC spokes attached to the hub are made accessible to other VPC spokes attached to the hub. The default value is false.
628
+ """
629
+ return pulumi.get(self, "export_psc")
630
+
552
631
  @property
553
632
  @pulumi.getter
554
633
  def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
555
634
  """
556
635
  Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
557
-
558
636
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
559
637
  Please refer to the field `effective_labels` for all of the labels present on the resource.
560
638
  """
@@ -567,7 +645,6 @@ class Hub(pulumi.CustomResource):
567
645
  Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`
568
646
 
569
647
 
570
-
571
648
  - - -
572
649
  """
573
650
  return pulumi.get(self, "name")
@@ -576,15 +653,17 @@ class Hub(pulumi.CustomResource):
576
653
  @pulumi.getter
577
654
  def project(self) -> pulumi.Output[str]:
578
655
  """
579
- The project for the resource
656
+ The ID of the project in which the resource belongs.
657
+ If it is not provided, the provider project is used.
580
658
  """
581
659
  return pulumi.get(self, "project")
582
660
 
583
661
  @property
584
662
  @pulumi.getter(name="pulumiLabels")
585
- def pulumi_labels(self) -> pulumi.Output[Mapping[str, Any]]:
663
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
586
664
  """
587
- The combination of labels configured directly on the resource and default labels configured on the provider.
665
+ The combination of labels configured directly on the resource
666
+ and default labels configured on the provider.
588
667
  """
589
668
  return pulumi.get(self, "pulumi_labels")
590
669
 
@@ -593,6 +672,7 @@ class Hub(pulumi.CustomResource):
593
672
  def routing_vpcs(self) -> pulumi.Output[Sequence['outputs.HubRoutingVpc']]:
594
673
  """
595
674
  The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
675
+ Structure is documented below.
596
676
  """
597
677
  return pulumi.get(self, "routing_vpcs")
598
678
 
@@ -600,7 +680,7 @@ class Hub(pulumi.CustomResource):
600
680
  @pulumi.getter
601
681
  def state(self) -> pulumi.Output[str]:
602
682
  """
603
- Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
683
+ Output only. The current lifecycle state of this hub.
604
684
  """
605
685
  return pulumi.get(self, "state")
606
686
 
@@ -578,6 +578,7 @@ class SpokeLinkedRouterApplianceInstances(dict):
578
578
  site_to_site_data_transfer: bool):
579
579
  """
580
580
  :param Sequence['SpokeLinkedRouterApplianceInstancesInstanceArgs'] instances: The list of router appliance instances
581
+ Structure is documented below.
581
582
  :param bool site_to_site_data_transfer: A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations.
582
583
  """
583
584
  pulumi.set(__self__, "instances", instances)
@@ -588,6 +589,7 @@ class SpokeLinkedRouterApplianceInstances(dict):
588
589
  def instances(self) -> Sequence['outputs.SpokeLinkedRouterApplianceInstancesInstance']:
589
590
  """
590
591
  The list of router appliance instances
592
+ Structure is documented below.
591
593
  """
592
594
  return pulumi.get(self, "instances")
593
595
 
@@ -627,8 +629,6 @@ class SpokeLinkedRouterApplianceInstancesInstance(dict):
627
629
  """
628
630
  :param str ip_address: The IP address on the VM to use for peering.
629
631
  :param str virtual_machine: The URI of the virtual machine resource
630
-
631
- - - -
632
632
  """
633
633
  if ip_address is not None:
634
634
  pulumi.set(__self__, "ip_address", ip_address)
@@ -648,8 +648,6 @@ class SpokeLinkedRouterApplianceInstancesInstance(dict):
648
648
  def virtual_machine(self) -> Optional[str]:
649
649
  """
650
650
  The URI of the virtual machine resource
651
-
652
- - - -
653
651
  """
654
652
  return pulumi.get(self, "virtual_machine")
655
653