pulumi-gcp 7.16.0a1711520590__py3-none-any.whl → 7.16.0a1711535676__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 (38) hide show
  1. pulumi_gcp/__init__.py +8 -0
  2. pulumi_gcp/accesscontextmanager/__init__.py +1 -0
  3. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +345 -0
  4. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +80 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +86 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +4 -2
  7. pulumi_gcp/cloudquota/__init__.py +1 -0
  8. pulumi_gcp/cloudquota/get_s_quota_infos.py +136 -0
  9. pulumi_gcp/cloudquota/outputs.py +270 -0
  10. pulumi_gcp/cloudrunv2/_inputs.py +59 -2
  11. pulumi_gcp/cloudrunv2/outputs.py +107 -4
  12. pulumi_gcp/cloudrunv2/service.py +6 -6
  13. pulumi_gcp/composer/_inputs.py +16 -0
  14. pulumi_gcp/composer/outputs.py +23 -0
  15. pulumi_gcp/compute/_inputs.py +105 -7
  16. pulumi_gcp/compute/outputs.py +140 -9
  17. pulumi_gcp/compute/region_url_map.py +152 -0
  18. pulumi_gcp/dataform/repository.py +4 -74
  19. pulumi_gcp/firebase/android_app.py +41 -40
  20. pulumi_gcp/firestore/index.py +34 -48
  21. pulumi_gcp/monitoring/_inputs.py +2 -0
  22. pulumi_gcp/monitoring/outputs.py +2 -0
  23. pulumi_gcp/networksecurity/firewall_endpoint.py +48 -0
  24. pulumi_gcp/pubsub/_inputs.py +108 -0
  25. pulumi_gcp/pubsub/get_topic.py +11 -1
  26. pulumi_gcp/pubsub/outputs.py +213 -0
  27. pulumi_gcp/pubsub/topic.py +92 -0
  28. pulumi_gcp/storage/_inputs.py +40 -0
  29. pulumi_gcp/storage/bucket.py +54 -0
  30. pulumi_gcp/storage/get_bucket.py +11 -1
  31. pulumi_gcp/storage/outputs.py +81 -0
  32. pulumi_gcp/workstations/_inputs.py +113 -0
  33. pulumi_gcp/workstations/outputs.py +109 -1
  34. pulumi_gcp/workstations/workstation_config.py +106 -0
  35. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.16.0a1711535676.dist-info}/METADATA +1 -1
  36. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.16.0a1711535676.dist-info}/RECORD +38 -36
  37. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.16.0a1711535676.dist-info}/WHEEL +0 -0
  38. {pulumi_gcp-7.16.0a1711520590.dist-info → pulumi_gcp-7.16.0a1711535676.dist-info}/top_level.txt +0 -0
@@ -15,15 +15,17 @@ __all__ = ['AndroidAppArgs', 'AndroidApp']
15
15
  class AndroidAppArgs:
16
16
  def __init__(__self__, *,
17
17
  display_name: pulumi.Input[str],
18
+ package_name: pulumi.Input[str],
18
19
  api_key_id: Optional[pulumi.Input[str]] = None,
19
20
  deletion_policy: Optional[pulumi.Input[str]] = None,
20
- package_name: Optional[pulumi.Input[str]] = None,
21
21
  project: Optional[pulumi.Input[str]] = None,
22
22
  sha1_hashes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
23
23
  sha256_hashes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
24
24
  """
25
25
  The set of arguments for constructing a AndroidApp resource.
26
26
  :param pulumi.Input[str] display_name: The user-assigned display name of the AndroidApp.
27
+ :param pulumi.Input[str] package_name: The canonical package name of the Android app as would appear in the Google Play
28
+ Developer Console.
27
29
 
28
30
 
29
31
  - - -
@@ -33,20 +35,17 @@ class AndroidAppArgs:
33
35
  :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon
34
36
  'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the
35
37
  AndroidApp. Defaults to 'DELETE'.
36
- :param pulumi.Input[str] package_name: Immutable. The canonical package name of the Android app as would appear in the Google Play
37
- Developer Console.
38
38
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
39
39
  If it is not provided, the provider project is used.
40
40
  :param pulumi.Input[Sequence[pulumi.Input[str]]] sha1_hashes: The SHA1 certificate hashes for the AndroidApp.
41
41
  :param pulumi.Input[Sequence[pulumi.Input[str]]] sha256_hashes: The SHA256 certificate hashes for the AndroidApp.
42
42
  """
43
43
  pulumi.set(__self__, "display_name", display_name)
44
+ pulumi.set(__self__, "package_name", package_name)
44
45
  if api_key_id is not None:
45
46
  pulumi.set(__self__, "api_key_id", api_key_id)
46
47
  if deletion_policy is not None:
47
48
  pulumi.set(__self__, "deletion_policy", deletion_policy)
48
- if package_name is not None:
49
- pulumi.set(__self__, "package_name", package_name)
50
49
  if project is not None:
51
50
  pulumi.set(__self__, "project", project)
52
51
  if sha1_hashes is not None:
@@ -59,9 +58,6 @@ class AndroidAppArgs:
59
58
  def display_name(self) -> pulumi.Input[str]:
60
59
  """
61
60
  The user-assigned display name of the AndroidApp.
62
-
63
-
64
- - - -
65
61
  """
66
62
  return pulumi.get(self, "display_name")
67
63
 
@@ -69,6 +65,22 @@ class AndroidAppArgs:
69
65
  def display_name(self, value: pulumi.Input[str]):
70
66
  pulumi.set(self, "display_name", value)
71
67
 
68
+ @property
69
+ @pulumi.getter(name="packageName")
70
+ def package_name(self) -> pulumi.Input[str]:
71
+ """
72
+ The canonical package name of the Android app as would appear in the Google Play
73
+ Developer Console.
74
+
75
+
76
+ - - -
77
+ """
78
+ return pulumi.get(self, "package_name")
79
+
80
+ @package_name.setter
81
+ def package_name(self, value: pulumi.Input[str]):
82
+ pulumi.set(self, "package_name", value)
83
+
72
84
  @property
73
85
  @pulumi.getter(name="apiKeyId")
74
86
  def api_key_id(self) -> Optional[pulumi.Input[str]]:
@@ -97,19 +109,6 @@ class AndroidAppArgs:
97
109
  def deletion_policy(self, value: Optional[pulumi.Input[str]]):
98
110
  pulumi.set(self, "deletion_policy", value)
99
111
 
100
- @property
101
- @pulumi.getter(name="packageName")
102
- def package_name(self) -> Optional[pulumi.Input[str]]:
103
- """
104
- Immutable. The canonical package name of the Android app as would appear in the Google Play
105
- Developer Console.
106
- """
107
- return pulumi.get(self, "package_name")
108
-
109
- @package_name.setter
110
- def package_name(self, value: Optional[pulumi.Input[str]]):
111
- pulumi.set(self, "package_name", value)
112
-
113
112
  @property
114
113
  @pulumi.getter
115
114
  def project(self) -> Optional[pulumi.Input[str]]:
@@ -172,15 +171,15 @@ class _AndroidAppState:
172
171
  'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the
173
172
  AndroidApp. Defaults to 'DELETE'.
174
173
  :param pulumi.Input[str] display_name: The user-assigned display name of the AndroidApp.
175
-
176
-
177
- - - -
178
174
  :param pulumi.Input[str] etag: This checksum is computed by the server based on the value of other fields, and it may be sent
179
175
  with update requests to ensure the client has an up-to-date value before proceeding.
180
176
  :param pulumi.Input[str] name: The fully qualified resource name of the AndroidApp, for example:
181
177
  projects/projectId/androidApps/appId
182
- :param pulumi.Input[str] package_name: Immutable. The canonical package name of the Android app as would appear in the Google Play
178
+ :param pulumi.Input[str] package_name: The canonical package name of the Android app as would appear in the Google Play
183
179
  Developer Console.
180
+
181
+
182
+ - - -
184
183
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
185
184
  If it is not provided, the provider project is used.
186
185
  :param pulumi.Input[Sequence[pulumi.Input[str]]] sha1_hashes: The SHA1 certificate hashes for the AndroidApp.
@@ -253,9 +252,6 @@ class _AndroidAppState:
253
252
  def display_name(self) -> Optional[pulumi.Input[str]]:
254
253
  """
255
254
  The user-assigned display name of the AndroidApp.
256
-
257
-
258
- - - -
259
255
  """
260
256
  return pulumi.get(self, "display_name")
261
257
 
@@ -293,8 +289,11 @@ class _AndroidAppState:
293
289
  @pulumi.getter(name="packageName")
294
290
  def package_name(self) -> Optional[pulumi.Input[str]]:
295
291
  """
296
- Immutable. The canonical package name of the Android app as would appear in the Google Play
292
+ The canonical package name of the Android app as would appear in the Google Play
297
293
  Developer Console.
294
+
295
+
296
+ - - -
298
297
  """
299
298
  return pulumi.get(self, "package_name")
300
299
 
@@ -445,11 +444,11 @@ class AndroidApp(pulumi.CustomResource):
445
444
  'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the
446
445
  AndroidApp. Defaults to 'DELETE'.
447
446
  :param pulumi.Input[str] display_name: The user-assigned display name of the AndroidApp.
447
+ :param pulumi.Input[str] package_name: The canonical package name of the Android app as would appear in the Google Play
448
+ Developer Console.
448
449
 
449
450
 
450
451
  - - -
451
- :param pulumi.Input[str] package_name: Immutable. The canonical package name of the Android app as would appear in the Google Play
452
- Developer Console.
453
452
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
454
453
  If it is not provided, the provider project is used.
455
454
  :param pulumi.Input[Sequence[pulumi.Input[str]]] sha1_hashes: The SHA1 certificate hashes for the AndroidApp.
@@ -580,6 +579,8 @@ class AndroidApp(pulumi.CustomResource):
580
579
  if display_name is None and not opts.urn:
581
580
  raise TypeError("Missing required property 'display_name'")
582
581
  __props__.__dict__["display_name"] = display_name
582
+ if package_name is None and not opts.urn:
583
+ raise TypeError("Missing required property 'package_name'")
583
584
  __props__.__dict__["package_name"] = package_name
584
585
  __props__.__dict__["project"] = project
585
586
  __props__.__dict__["sha1_hashes"] = sha1_hashes
@@ -623,15 +624,15 @@ class AndroidApp(pulumi.CustomResource):
623
624
  'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the
624
625
  AndroidApp. Defaults to 'DELETE'.
625
626
  :param pulumi.Input[str] display_name: The user-assigned display name of the AndroidApp.
626
-
627
-
628
- - - -
629
627
  :param pulumi.Input[str] etag: This checksum is computed by the server based on the value of other fields, and it may be sent
630
628
  with update requests to ensure the client has an up-to-date value before proceeding.
631
629
  :param pulumi.Input[str] name: The fully qualified resource name of the AndroidApp, for example:
632
630
  projects/projectId/androidApps/appId
633
- :param pulumi.Input[str] package_name: Immutable. The canonical package name of the Android app as would appear in the Google Play
631
+ :param pulumi.Input[str] package_name: The canonical package name of the Android app as would appear in the Google Play
634
632
  Developer Console.
633
+
634
+
635
+ - - -
635
636
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
636
637
  If it is not provided, the provider project is used.
637
638
  :param pulumi.Input[Sequence[pulumi.Input[str]]] sha1_hashes: The SHA1 certificate hashes for the AndroidApp.
@@ -687,9 +688,6 @@ class AndroidApp(pulumi.CustomResource):
687
688
  def display_name(self) -> pulumi.Output[str]:
688
689
  """
689
690
  The user-assigned display name of the AndroidApp.
690
-
691
-
692
- - - -
693
691
  """
694
692
  return pulumi.get(self, "display_name")
695
693
 
@@ -713,10 +711,13 @@ class AndroidApp(pulumi.CustomResource):
713
711
 
714
712
  @property
715
713
  @pulumi.getter(name="packageName")
716
- def package_name(self) -> pulumi.Output[Optional[str]]:
714
+ def package_name(self) -> pulumi.Output[str]:
717
715
  """
718
- Immutable. The canonical package name of the Android app as would appear in the Google Play
716
+ The canonical package name of the Android app as would appear in the Google Play
719
717
  Developer Console.
718
+
719
+
720
+ - - -
720
721
  """
721
722
  return pulumi.get(self, "package_name")
722
723
 
@@ -320,32 +320,18 @@ class Index(pulumi.CustomResource):
320
320
  ```python
321
321
  import pulumi
322
322
  import pulumi_gcp as gcp
323
- import pulumi_time as time
324
-
325
- project = gcp.organizations.Project("project",
326
- project_id="project-id",
327
- name="project-id",
328
- org_id="123456789")
329
- wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s)
330
- firestore = gcp.projects.Service("firestore",
331
- project=project.project_id,
332
- service="firestore.googleapis.com")
323
+
333
324
  database = gcp.firestore.Database("database",
334
- project=project.project_id,
335
- name="(default)",
325
+ project="my-project-name",
326
+ name="database-id",
336
327
  location_id="nam5",
337
- type="FIRESTORE_NATIVE")
338
- # Creating a document also creates its collection
339
- document = gcp.firestore.Document("document",
340
- project=project.project_id,
341
- database=database.name,
342
- collection="somenewcollection",
343
- document_id="",
344
- fields="{\\"something\\":{\\"mapValue\\":{\\"fields\\":{\\"akey\\":{\\"stringValue\\":\\"avalue\\"}}}}}")
328
+ type="FIRESTORE_NATIVE",
329
+ delete_protection_state="DELETE_PROTECTION_DISABLED",
330
+ deletion_policy="DELETE")
345
331
  my_index = gcp.firestore.Index("my-index",
346
- project=project.project_id,
332
+ project="my-project-name",
347
333
  database=database.name,
348
- collection=document.collection,
334
+ collection="atestcollection",
349
335
  fields=[
350
336
  gcp.firestore.IndexFieldArgs(
351
337
  field_path="name",
@@ -365,10 +351,17 @@ class Index(pulumi.CustomResource):
365
351
  import pulumi
366
352
  import pulumi_gcp as gcp
367
353
 
354
+ database = gcp.firestore.Database("database",
355
+ project="my-project-name",
356
+ name="database-id-dm",
357
+ location_id="nam5",
358
+ type="DATASTORE_MODE",
359
+ delete_protection_state="DELETE_PROTECTION_DISABLED",
360
+ deletion_policy="DELETE")
368
361
  my_index = gcp.firestore.Index("my-index",
369
362
  project="my-project-name",
370
- database="(default)",
371
- collection="chatrooms",
363
+ database=database.name,
364
+ collection="atestcollection",
372
365
  query_scope="COLLECTION_RECURSIVE",
373
366
  api_scope="DATASTORE_MODE_API",
374
367
  fields=[
@@ -449,32 +442,18 @@ class Index(pulumi.CustomResource):
449
442
  ```python
450
443
  import pulumi
451
444
  import pulumi_gcp as gcp
452
- import pulumi_time as time
453
-
454
- project = gcp.organizations.Project("project",
455
- project_id="project-id",
456
- name="project-id",
457
- org_id="123456789")
458
- wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s)
459
- firestore = gcp.projects.Service("firestore",
460
- project=project.project_id,
461
- service="firestore.googleapis.com")
445
+
462
446
  database = gcp.firestore.Database("database",
463
- project=project.project_id,
464
- name="(default)",
447
+ project="my-project-name",
448
+ name="database-id",
465
449
  location_id="nam5",
466
- type="FIRESTORE_NATIVE")
467
- # Creating a document also creates its collection
468
- document = gcp.firestore.Document("document",
469
- project=project.project_id,
470
- database=database.name,
471
- collection="somenewcollection",
472
- document_id="",
473
- fields="{\\"something\\":{\\"mapValue\\":{\\"fields\\":{\\"akey\\":{\\"stringValue\\":\\"avalue\\"}}}}}")
450
+ type="FIRESTORE_NATIVE",
451
+ delete_protection_state="DELETE_PROTECTION_DISABLED",
452
+ deletion_policy="DELETE")
474
453
  my_index = gcp.firestore.Index("my-index",
475
- project=project.project_id,
454
+ project="my-project-name",
476
455
  database=database.name,
477
- collection=document.collection,
456
+ collection="atestcollection",
478
457
  fields=[
479
458
  gcp.firestore.IndexFieldArgs(
480
459
  field_path="name",
@@ -494,10 +473,17 @@ class Index(pulumi.CustomResource):
494
473
  import pulumi
495
474
  import pulumi_gcp as gcp
496
475
 
476
+ database = gcp.firestore.Database("database",
477
+ project="my-project-name",
478
+ name="database-id-dm",
479
+ location_id="nam5",
480
+ type="DATASTORE_MODE",
481
+ delete_protection_state="DELETE_PROTECTION_DISABLED",
482
+ deletion_policy="DELETE")
497
483
  my_index = gcp.firestore.Index("my-index",
498
484
  project="my-project-name",
499
- database="(default)",
500
- collection="chatrooms",
485
+ database=database.name,
486
+ collection="atestcollection",
501
487
  query_scope="COLLECTION_RECURSIVE",
502
488
  api_scope="DATASTORE_MODE_API",
503
489
  fields=[
@@ -182,6 +182,7 @@ class AlertPolicyAlertStrategyNotificationRateLimitArgs:
182
182
  period: Optional[pulumi.Input[str]] = None):
183
183
  """
184
184
  :param pulumi.Input[str] period: Not more than one notification per period.
185
+ A duration in seconds with up to nine fractional digits, terminated by 's'. Example "60.5s".
185
186
  """
186
187
  if period is not None:
187
188
  pulumi.set(__self__, "period", period)
@@ -191,6 +192,7 @@ class AlertPolicyAlertStrategyNotificationRateLimitArgs:
191
192
  def period(self) -> Optional[pulumi.Input[str]]:
192
193
  """
193
194
  Not more than one notification per period.
195
+ A duration in seconds with up to nine fractional digits, terminated by 's'. Example "60.5s".
194
196
  """
195
197
  return pulumi.get(self, "period")
196
198
 
@@ -209,6 +209,7 @@ class AlertPolicyAlertStrategyNotificationRateLimit(dict):
209
209
  period: Optional[str] = None):
210
210
  """
211
211
  :param str period: Not more than one notification per period.
212
+ A duration in seconds with up to nine fractional digits, terminated by 's'. Example "60.5s".
212
213
  """
213
214
  if period is not None:
214
215
  pulumi.set(__self__, "period", period)
@@ -218,6 +219,7 @@ class AlertPolicyAlertStrategyNotificationRateLimit(dict):
218
219
  def period(self) -> Optional[str]:
219
220
  """
220
221
  Not more than one notification per period.
222
+ A duration in seconds with up to nine fractional digits, terminated by 's'. Example "60.5s".
221
223
  """
222
224
  return pulumi.get(self, "period")
223
225
 
@@ -14,12 +14,14 @@ __all__ = ['FirewallEndpointArgs', 'FirewallEndpoint']
14
14
  @pulumi.input_type
15
15
  class FirewallEndpointArgs:
16
16
  def __init__(__self__, *,
17
+ billing_project_id: pulumi.Input[str],
17
18
  location: pulumi.Input[str],
18
19
  parent: pulumi.Input[str],
19
20
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
20
21
  name: Optional[pulumi.Input[str]] = None):
21
22
  """
22
23
  The set of arguments for constructing a FirewallEndpoint resource.
24
+ :param pulumi.Input[str] billing_project_id: Project to bill on endpoint uptime usage.
23
25
  :param pulumi.Input[str] location: The location (zone) of the firewall endpoint.
24
26
  :param pulumi.Input[str] parent: The name of the parent this firewall endpoint belongs to.
25
27
  Format: organizations/{organization_id}.
@@ -32,6 +34,7 @@ class FirewallEndpointArgs:
32
34
  Please refer to the field `effective_labels` for all of the labels present on the resource.
33
35
  :param pulumi.Input[str] name: The name of the firewall endpoint resource.
34
36
  """
37
+ pulumi.set(__self__, "billing_project_id", billing_project_id)
35
38
  pulumi.set(__self__, "location", location)
36
39
  pulumi.set(__self__, "parent", parent)
37
40
  if labels is not None:
@@ -39,6 +42,18 @@ class FirewallEndpointArgs:
39
42
  if name is not None:
40
43
  pulumi.set(__self__, "name", name)
41
44
 
45
+ @property
46
+ @pulumi.getter(name="billingProjectId")
47
+ def billing_project_id(self) -> pulumi.Input[str]:
48
+ """
49
+ Project to bill on endpoint uptime usage.
50
+ """
51
+ return pulumi.get(self, "billing_project_id")
52
+
53
+ @billing_project_id.setter
54
+ def billing_project_id(self, value: pulumi.Input[str]):
55
+ pulumi.set(self, "billing_project_id", value)
56
+
42
57
  @property
43
58
  @pulumi.getter
44
59
  def location(self) -> pulumi.Input[str]:
@@ -99,6 +114,7 @@ class FirewallEndpointArgs:
99
114
  class _FirewallEndpointState:
100
115
  def __init__(__self__, *,
101
116
  associated_networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
117
+ billing_project_id: Optional[pulumi.Input[str]] = None,
102
118
  create_time: Optional[pulumi.Input[str]] = None,
103
119
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
104
120
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -116,6 +132,7 @@ class _FirewallEndpointState:
116
132
  This is a projection of the FirewallEndpointAssociations pointing at this
117
133
  endpoint. A network will only appear in this list after traffic routing is
118
134
  fully configured. Format: projects/{project}/global/networks/{name}.
135
+ :param pulumi.Input[str] billing_project_id: Project to bill on endpoint uptime usage.
119
136
  :param pulumi.Input[str] create_time: Time the firewall endpoint was created in UTC.
120
137
  :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.
121
138
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the resource.
@@ -138,6 +155,8 @@ class _FirewallEndpointState:
138
155
  """
139
156
  if associated_networks is not None:
140
157
  pulumi.set(__self__, "associated_networks", associated_networks)
158
+ if billing_project_id is not None:
159
+ pulumi.set(__self__, "billing_project_id", billing_project_id)
141
160
  if create_time is not None:
142
161
  pulumi.set(__self__, "create_time", create_time)
143
162
  if effective_labels is not None:
@@ -176,6 +195,18 @@ class _FirewallEndpointState:
176
195
  def associated_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
177
196
  pulumi.set(self, "associated_networks", value)
178
197
 
198
+ @property
199
+ @pulumi.getter(name="billingProjectId")
200
+ def billing_project_id(self) -> Optional[pulumi.Input[str]]:
201
+ """
202
+ Project to bill on endpoint uptime usage.
203
+ """
204
+ return pulumi.get(self, "billing_project_id")
205
+
206
+ @billing_project_id.setter
207
+ def billing_project_id(self, value: Optional[pulumi.Input[str]]):
208
+ pulumi.set(self, "billing_project_id", value)
209
+
179
210
  @property
180
211
  @pulumi.getter(name="createTime")
181
212
  def create_time(self) -> Optional[pulumi.Input[str]]:
@@ -322,6 +353,7 @@ class FirewallEndpoint(pulumi.CustomResource):
322
353
  def __init__(__self__,
323
354
  resource_name: str,
324
355
  opts: Optional[pulumi.ResourceOptions] = None,
356
+ billing_project_id: Optional[pulumi.Input[str]] = None,
325
357
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
326
358
  location: Optional[pulumi.Input[str]] = None,
327
359
  name: Optional[pulumi.Input[str]] = None,
@@ -361,6 +393,7 @@ class FirewallEndpoint(pulumi.CustomResource):
361
393
 
362
394
  :param str resource_name: The name of the resource.
363
395
  :param pulumi.ResourceOptions opts: Options for the resource.
396
+ :param pulumi.Input[str] billing_project_id: Project to bill on endpoint uptime usage.
364
397
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the resource.
365
398
 
366
399
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
@@ -426,6 +459,7 @@ class FirewallEndpoint(pulumi.CustomResource):
426
459
  def _internal_init(__self__,
427
460
  resource_name: str,
428
461
  opts: Optional[pulumi.ResourceOptions] = None,
462
+ billing_project_id: Optional[pulumi.Input[str]] = None,
429
463
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
430
464
  location: Optional[pulumi.Input[str]] = None,
431
465
  name: Optional[pulumi.Input[str]] = None,
@@ -439,6 +473,9 @@ class FirewallEndpoint(pulumi.CustomResource):
439
473
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
440
474
  __props__ = FirewallEndpointArgs.__new__(FirewallEndpointArgs)
441
475
 
476
+ if billing_project_id is None and not opts.urn:
477
+ raise TypeError("Missing required property 'billing_project_id'")
478
+ __props__.__dict__["billing_project_id"] = billing_project_id
442
479
  __props__.__dict__["labels"] = labels
443
480
  if location is None and not opts.urn:
444
481
  raise TypeError("Missing required property 'location'")
@@ -468,6 +505,7 @@ class FirewallEndpoint(pulumi.CustomResource):
468
505
  id: pulumi.Input[str],
469
506
  opts: Optional[pulumi.ResourceOptions] = None,
470
507
  associated_networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
508
+ billing_project_id: Optional[pulumi.Input[str]] = None,
471
509
  create_time: Optional[pulumi.Input[str]] = None,
472
510
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
473
511
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
@@ -490,6 +528,7 @@ class FirewallEndpoint(pulumi.CustomResource):
490
528
  This is a projection of the FirewallEndpointAssociations pointing at this
491
529
  endpoint. A network will only appear in this list after traffic routing is
492
530
  fully configured. Format: projects/{project}/global/networks/{name}.
531
+ :param pulumi.Input[str] billing_project_id: Project to bill on endpoint uptime usage.
493
532
  :param pulumi.Input[str] create_time: Time the firewall endpoint was created in UTC.
494
533
  :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.
495
534
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A map of key/value label pairs to assign to the resource.
@@ -515,6 +554,7 @@ class FirewallEndpoint(pulumi.CustomResource):
515
554
  __props__ = _FirewallEndpointState.__new__(_FirewallEndpointState)
516
555
 
517
556
  __props__.__dict__["associated_networks"] = associated_networks
557
+ __props__.__dict__["billing_project_id"] = billing_project_id
518
558
  __props__.__dict__["create_time"] = create_time
519
559
  __props__.__dict__["effective_labels"] = effective_labels
520
560
  __props__.__dict__["labels"] = labels
@@ -539,6 +579,14 @@ class FirewallEndpoint(pulumi.CustomResource):
539
579
  """
540
580
  return pulumi.get(self, "associated_networks")
541
581
 
582
+ @property
583
+ @pulumi.getter(name="billingProjectId")
584
+ def billing_project_id(self) -> pulumi.Output[str]:
585
+ """
586
+ Project to bill on endpoint uptime usage.
587
+ """
588
+ return pulumi.get(self, "billing_project_id")
589
+
542
590
  @property
543
591
  @pulumi.getter(name="createTime")
544
592
  def create_time(self) -> pulumi.Output[str]:
@@ -30,6 +30,8 @@ __all__ = [
30
30
  'SubscriptionRetryPolicyArgs',
31
31
  'TopicIAMBindingConditionArgs',
32
32
  'TopicIAMMemberConditionArgs',
33
+ 'TopicIngestionDataSourceSettingsArgs',
34
+ 'TopicIngestionDataSourceSettingsAwsKinesisArgs',
33
35
  'TopicMessageStoragePolicyArgs',
34
36
  'TopicSchemaSettingsArgs',
35
37
  ]
@@ -1025,6 +1027,112 @@ class TopicIAMMemberConditionArgs:
1025
1027
  pulumi.set(self, "description", value)
1026
1028
 
1027
1029
 
1030
+ @pulumi.input_type
1031
+ class TopicIngestionDataSourceSettingsArgs:
1032
+ def __init__(__self__, *,
1033
+ aws_kinesis: Optional[pulumi.Input['TopicIngestionDataSourceSettingsAwsKinesisArgs']] = None):
1034
+ """
1035
+ :param pulumi.Input['TopicIngestionDataSourceSettingsAwsKinesisArgs'] aws_kinesis: Settings for ingestion from Amazon Kinesis Data Streams.
1036
+ Structure is documented below.
1037
+ """
1038
+ if aws_kinesis is not None:
1039
+ pulumi.set(__self__, "aws_kinesis", aws_kinesis)
1040
+
1041
+ @property
1042
+ @pulumi.getter(name="awsKinesis")
1043
+ def aws_kinesis(self) -> Optional[pulumi.Input['TopicIngestionDataSourceSettingsAwsKinesisArgs']]:
1044
+ """
1045
+ Settings for ingestion from Amazon Kinesis Data Streams.
1046
+ Structure is documented below.
1047
+ """
1048
+ return pulumi.get(self, "aws_kinesis")
1049
+
1050
+ @aws_kinesis.setter
1051
+ def aws_kinesis(self, value: Optional[pulumi.Input['TopicIngestionDataSourceSettingsAwsKinesisArgs']]):
1052
+ pulumi.set(self, "aws_kinesis", value)
1053
+
1054
+
1055
+ @pulumi.input_type
1056
+ class TopicIngestionDataSourceSettingsAwsKinesisArgs:
1057
+ def __init__(__self__, *,
1058
+ aws_role_arn: pulumi.Input[str],
1059
+ consumer_arn: pulumi.Input[str],
1060
+ gcp_service_account: pulumi.Input[str],
1061
+ stream_arn: pulumi.Input[str]):
1062
+ """
1063
+ :param pulumi.Input[str] aws_role_arn: AWS role ARN to be used for Federated Identity authentication with
1064
+ Kinesis. Check the Pub/Sub docs for how to set up this role and the
1065
+ required permissions that need to be attached to it.
1066
+ :param pulumi.Input[str] consumer_arn: The Kinesis consumer ARN to used for ingestion in
1067
+ Enhanced Fan-Out mode. The consumer must be already
1068
+ created and ready to be used.
1069
+ :param pulumi.Input[str] gcp_service_account: The GCP service account to be used for Federated Identity authentication
1070
+ with Kinesis (via a `AssumeRoleWithWebIdentity` call for the provided
1071
+ role). The `awsRoleArn` must be set up with `accounts.google.com:sub`
1072
+ equals to this service account number.
1073
+ :param pulumi.Input[str] stream_arn: The Kinesis stream ARN to ingest data from.
1074
+ """
1075
+ pulumi.set(__self__, "aws_role_arn", aws_role_arn)
1076
+ pulumi.set(__self__, "consumer_arn", consumer_arn)
1077
+ pulumi.set(__self__, "gcp_service_account", gcp_service_account)
1078
+ pulumi.set(__self__, "stream_arn", stream_arn)
1079
+
1080
+ @property
1081
+ @pulumi.getter(name="awsRoleArn")
1082
+ def aws_role_arn(self) -> pulumi.Input[str]:
1083
+ """
1084
+ AWS role ARN to be used for Federated Identity authentication with
1085
+ Kinesis. Check the Pub/Sub docs for how to set up this role and the
1086
+ required permissions that need to be attached to it.
1087
+ """
1088
+ return pulumi.get(self, "aws_role_arn")
1089
+
1090
+ @aws_role_arn.setter
1091
+ def aws_role_arn(self, value: pulumi.Input[str]):
1092
+ pulumi.set(self, "aws_role_arn", value)
1093
+
1094
+ @property
1095
+ @pulumi.getter(name="consumerArn")
1096
+ def consumer_arn(self) -> pulumi.Input[str]:
1097
+ """
1098
+ The Kinesis consumer ARN to used for ingestion in
1099
+ Enhanced Fan-Out mode. The consumer must be already
1100
+ created and ready to be used.
1101
+ """
1102
+ return pulumi.get(self, "consumer_arn")
1103
+
1104
+ @consumer_arn.setter
1105
+ def consumer_arn(self, value: pulumi.Input[str]):
1106
+ pulumi.set(self, "consumer_arn", value)
1107
+
1108
+ @property
1109
+ @pulumi.getter(name="gcpServiceAccount")
1110
+ def gcp_service_account(self) -> pulumi.Input[str]:
1111
+ """
1112
+ The GCP service account to be used for Federated Identity authentication
1113
+ with Kinesis (via a `AssumeRoleWithWebIdentity` call for the provided
1114
+ role). The `awsRoleArn` must be set up with `accounts.google.com:sub`
1115
+ equals to this service account number.
1116
+ """
1117
+ return pulumi.get(self, "gcp_service_account")
1118
+
1119
+ @gcp_service_account.setter
1120
+ def gcp_service_account(self, value: pulumi.Input[str]):
1121
+ pulumi.set(self, "gcp_service_account", value)
1122
+
1123
+ @property
1124
+ @pulumi.getter(name="streamArn")
1125
+ def stream_arn(self) -> pulumi.Input[str]:
1126
+ """
1127
+ The Kinesis stream ARN to ingest data from.
1128
+ """
1129
+ return pulumi.get(self, "stream_arn")
1130
+
1131
+ @stream_arn.setter
1132
+ def stream_arn(self, value: pulumi.Input[str]):
1133
+ pulumi.set(self, "stream_arn", value)
1134
+
1135
+
1028
1136
  @pulumi.input_type
1029
1137
  class TopicMessageStoragePolicyArgs:
1030
1138
  def __init__(__self__, *,