pulumi-gcp 8.36.0a1750484065__py3-none-any.whl → 8.37.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.
Files changed (117) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/alloydb/_inputs.py +26 -0
  3. pulumi_gcp/alloydb/outputs.py +34 -1
  4. pulumi_gcp/apihub/__init__.py +2 -0
  5. pulumi_gcp/apihub/_inputs.py +1658 -0
  6. pulumi_gcp/apihub/outputs.py +1374 -0
  7. pulumi_gcp/apihub/plugin.py +1146 -0
  8. pulumi_gcp/apihub/plugin_instance.py +808 -0
  9. pulumi_gcp/bigquery/table.py +16 -12
  10. pulumi_gcp/bigqueryanalyticshub/_inputs.py +56 -6
  11. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +73 -0
  12. pulumi_gcp/bigqueryanalyticshub/listing.py +201 -48
  13. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +28 -0
  14. pulumi_gcp/bigqueryanalyticshub/outputs.py +50 -4
  15. pulumi_gcp/bigtable/table.py +82 -0
  16. pulumi_gcp/cloudidentity/group_membership.py +47 -0
  17. pulumi_gcp/cloudidentity/outputs.py +11 -0
  18. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +64 -8
  19. pulumi_gcp/cloudrunv2/_inputs.py +65 -9
  20. pulumi_gcp/cloudrunv2/job.py +44 -0
  21. pulumi_gcp/cloudrunv2/outputs.py +73 -8
  22. pulumi_gcp/cloudrunv2/service.py +0 -2
  23. pulumi_gcp/cloudrunv2/worker_pool.py +18 -20
  24. pulumi_gcp/compute/__init__.py +1 -0
  25. pulumi_gcp/compute/_inputs.py +787 -18
  26. pulumi_gcp/compute/disk.py +35 -28
  27. pulumi_gcp/compute/firewall_policy_rule.py +207 -0
  28. pulumi_gcp/compute/get_instance_group_manager.py +12 -1
  29. pulumi_gcp/compute/get_region_disk.py +12 -1
  30. pulumi_gcp/compute/instance.py +2 -2
  31. pulumi_gcp/compute/instance_group_manager.py +165 -14
  32. pulumi_gcp/compute/instance_template.py +2 -2
  33. pulumi_gcp/compute/interconnect.py +43 -11
  34. pulumi_gcp/compute/network.py +56 -0
  35. pulumi_gcp/compute/network_firewall_policy.py +68 -0
  36. pulumi_gcp/compute/network_firewall_policy_with_rules.py +61 -0
  37. pulumi_gcp/compute/node_template.py +21 -0
  38. pulumi_gcp/compute/outputs.py +620 -12
  39. pulumi_gcp/compute/region_disk.py +114 -0
  40. pulumi_gcp/compute/region_network_firewall_policy.py +90 -0
  41. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +109 -0
  42. pulumi_gcp/compute/service_attachment.py +76 -8
  43. pulumi_gcp/compute/wire_group.py +751 -0
  44. pulumi_gcp/config/__init__.pyi +2 -0
  45. pulumi_gcp/config/vars.py +4 -0
  46. pulumi_gcp/contactcenterinsights/__init__.py +9 -0
  47. pulumi_gcp/contactcenterinsights/view.py +526 -0
  48. pulumi_gcp/container/_inputs.py +207 -28
  49. pulumi_gcp/container/cluster.py +54 -0
  50. pulumi_gcp/container/get_cluster.py +12 -1
  51. pulumi_gcp/container/get_engine_versions.py +15 -1
  52. pulumi_gcp/container/node_pool.py +14 -0
  53. pulumi_gcp/container/outputs.py +295 -21
  54. pulumi_gcp/dataplex/_inputs.py +431 -6
  55. pulumi_gcp/dataplex/datascan.py +251 -0
  56. pulumi_gcp/dataplex/entry_type.py +2 -2
  57. pulumi_gcp/dataplex/glossary_category.py +8 -8
  58. pulumi_gcp/dataplex/glossary_term.py +8 -8
  59. pulumi_gcp/dataplex/outputs.py +353 -4
  60. pulumi_gcp/dataplex/task.py +16 -16
  61. pulumi_gcp/dataproc/__init__.py +1 -0
  62. pulumi_gcp/dataproc/_inputs.py +486 -0
  63. pulumi_gcp/dataproc/batch.py +10 -10
  64. pulumi_gcp/dataproc/outputs.py +407 -0
  65. pulumi_gcp/dataproc/session_template.py +1084 -0
  66. pulumi_gcp/diagflow/__init__.py +2 -0
  67. pulumi_gcp/diagflow/_inputs.py +479 -0
  68. pulumi_gcp/diagflow/cx_generative_settings.py +625 -0
  69. pulumi_gcp/diagflow/cx_tool.py +2 -2
  70. pulumi_gcp/diagflow/encryption_spec.py +382 -0
  71. pulumi_gcp/diagflow/outputs.py +416 -0
  72. pulumi_gcp/dns/record_set.py +4 -2
  73. pulumi_gcp/firestore/database.py +0 -9
  74. pulumi_gcp/firestore/field.py +6 -6
  75. pulumi_gcp/gkehub/membership_binding.py +6 -6
  76. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  77. pulumi_gcp/gkehub/namespace.py +4 -4
  78. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  79. pulumi_gcp/iam/_inputs.py +36 -0
  80. pulumi_gcp/iam/outputs.py +38 -0
  81. pulumi_gcp/iam/workload_identity_pool_managed_identity.py +88 -2
  82. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  83. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  84. pulumi_gcp/kms/autokey_config.py +28 -0
  85. pulumi_gcp/kms/get_autokey_config.py +12 -1
  86. pulumi_gcp/lustre/get_instance.py +12 -1
  87. pulumi_gcp/lustre/instance.py +143 -86
  88. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  89. pulumi_gcp/managedkafka/connector.py +4 -4
  90. pulumi_gcp/memorystore/get_instance.py +12 -1
  91. pulumi_gcp/memorystore/instance.py +49 -0
  92. pulumi_gcp/monitoring/metric_descriptor.py +55 -57
  93. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  94. pulumi_gcp/notebooks/instance.py +8 -8
  95. pulumi_gcp/orgpolicy/policy.py +2 -2
  96. pulumi_gcp/provider.py +20 -0
  97. pulumi_gcp/pubsub/subscription.py +6 -6
  98. pulumi_gcp/pulumi-plugin.json +1 -1
  99. pulumi_gcp/redis/get_instance.py +12 -1
  100. pulumi_gcp/redis/instance.py +44 -0
  101. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  102. pulumi_gcp/secretmanager/outputs.py +7 -0
  103. pulumi_gcp/secretmanager/regional_secret.py +38 -2
  104. pulumi_gcp/spanner/_inputs.py +24 -1
  105. pulumi_gcp/spanner/outputs.py +17 -1
  106. pulumi_gcp/storage/_inputs.py +43 -3
  107. pulumi_gcp/storage/bucket_object.py +56 -0
  108. pulumi_gcp/storage/get_bucket_object.py +12 -1
  109. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  110. pulumi_gcp/storage/outputs.py +53 -3
  111. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  112. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  113. pulumi_gcp/workbench/instance.py +2 -0
  114. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/METADATA +2 -2
  115. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/RECORD +117 -109
  116. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/WHEEL +0 -0
  117. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/top_level.txt +0 -0
@@ -112,6 +112,7 @@ class _ListingSubscriptionState:
112
112
  linked_resources: Optional[pulumi.Input[Sequence[pulumi.Input['ListingSubscriptionLinkedResourceArgs']]]] = None,
113
113
  listing_id: Optional[pulumi.Input[builtins.str]] = None,
114
114
  location: Optional[pulumi.Input[builtins.str]] = None,
115
+ log_linked_dataset_query_user_email: Optional[pulumi.Input[builtins.bool]] = None,
115
116
  name: Optional[pulumi.Input[builtins.str]] = None,
116
117
  organization_display_name: Optional[pulumi.Input[builtins.str]] = None,
117
118
  organization_id: Optional[pulumi.Input[builtins.str]] = None,
@@ -134,6 +135,7 @@ class _ListingSubscriptionState:
134
135
  Structure is documented below.
135
136
  :param pulumi.Input[builtins.str] listing_id: The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
136
137
  :param pulumi.Input[builtins.str] location: The name of the location of the data exchange. Distinct from the location of the destination data set.
138
+ :param pulumi.Input[builtins.bool] log_linked_dataset_query_user_email: Output only. By default, false. If true, the Subscriber agreed to the email sharing mandate that is enabled for Listing.
137
139
  :param pulumi.Input[builtins.str] name: The resource name of the subscription. e.g. "projects/myproject/locations/US/subscriptions/123"
138
140
  :param pulumi.Input[builtins.str] organization_display_name: Display name of the project of this subscription.
139
141
  :param pulumi.Input[builtins.str] organization_id: Organization of the project this subscription belongs to.
@@ -158,6 +160,8 @@ class _ListingSubscriptionState:
158
160
  pulumi.set(__self__, "listing_id", listing_id)
159
161
  if location is not None:
160
162
  pulumi.set(__self__, "location", location)
163
+ if log_linked_dataset_query_user_email is not None:
164
+ pulumi.set(__self__, "log_linked_dataset_query_user_email", log_linked_dataset_query_user_email)
161
165
  if name is not None:
162
166
  pulumi.set(__self__, "name", name)
163
167
  if organization_display_name is not None:
@@ -275,6 +279,18 @@ class _ListingSubscriptionState:
275
279
  def location(self, value: Optional[pulumi.Input[builtins.str]]):
276
280
  pulumi.set(self, "location", value)
277
281
 
282
+ @property
283
+ @pulumi.getter(name="logLinkedDatasetQueryUserEmail")
284
+ def log_linked_dataset_query_user_email(self) -> Optional[pulumi.Input[builtins.bool]]:
285
+ """
286
+ Output only. By default, false. If true, the Subscriber agreed to the email sharing mandate that is enabled for Listing.
287
+ """
288
+ return pulumi.get(self, "log_linked_dataset_query_user_email")
289
+
290
+ @log_linked_dataset_query_user_email.setter
291
+ def log_linked_dataset_query_user_email(self, value: Optional[pulumi.Input[builtins.bool]]):
292
+ pulumi.set(self, "log_linked_dataset_query_user_email", value)
293
+
278
294
  @property
279
295
  @pulumi.getter
280
296
  def name(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -601,6 +617,7 @@ class ListingSubscription(pulumi.CustomResource):
601
617
  __props__.__dict__["last_modify_time"] = None
602
618
  __props__.__dict__["linked_dataset_maps"] = None
603
619
  __props__.__dict__["linked_resources"] = None
620
+ __props__.__dict__["log_linked_dataset_query_user_email"] = None
604
621
  __props__.__dict__["name"] = None
605
622
  __props__.__dict__["organization_display_name"] = None
606
623
  __props__.__dict__["organization_id"] = None
@@ -626,6 +643,7 @@ class ListingSubscription(pulumi.CustomResource):
626
643
  linked_resources: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ListingSubscriptionLinkedResourceArgs', 'ListingSubscriptionLinkedResourceArgsDict']]]]] = None,
627
644
  listing_id: Optional[pulumi.Input[builtins.str]] = None,
628
645
  location: Optional[pulumi.Input[builtins.str]] = None,
646
+ log_linked_dataset_query_user_email: Optional[pulumi.Input[builtins.bool]] = None,
629
647
  name: Optional[pulumi.Input[builtins.str]] = None,
630
648
  organization_display_name: Optional[pulumi.Input[builtins.str]] = None,
631
649
  organization_id: Optional[pulumi.Input[builtins.str]] = None,
@@ -653,6 +671,7 @@ class ListingSubscription(pulumi.CustomResource):
653
671
  Structure is documented below.
654
672
  :param pulumi.Input[builtins.str] listing_id: The ID of the listing. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
655
673
  :param pulumi.Input[builtins.str] location: The name of the location of the data exchange. Distinct from the location of the destination data set.
674
+ :param pulumi.Input[builtins.bool] log_linked_dataset_query_user_email: Output only. By default, false. If true, the Subscriber agreed to the email sharing mandate that is enabled for Listing.
656
675
  :param pulumi.Input[builtins.str] name: The resource name of the subscription. e.g. "projects/myproject/locations/US/subscriptions/123"
657
676
  :param pulumi.Input[builtins.str] organization_display_name: Display name of the project of this subscription.
658
677
  :param pulumi.Input[builtins.str] organization_id: Organization of the project this subscription belongs to.
@@ -673,6 +692,7 @@ class ListingSubscription(pulumi.CustomResource):
673
692
  __props__.__dict__["linked_resources"] = linked_resources
674
693
  __props__.__dict__["listing_id"] = listing_id
675
694
  __props__.__dict__["location"] = location
695
+ __props__.__dict__["log_linked_dataset_query_user_email"] = log_linked_dataset_query_user_email
676
696
  __props__.__dict__["name"] = name
677
697
  __props__.__dict__["organization_display_name"] = organization_display_name
678
698
  __props__.__dict__["organization_id"] = organization_id
@@ -751,6 +771,14 @@ class ListingSubscription(pulumi.CustomResource):
751
771
  """
752
772
  return pulumi.get(self, "location")
753
773
 
774
+ @property
775
+ @pulumi.getter(name="logLinkedDatasetQueryUserEmail")
776
+ def log_linked_dataset_query_user_email(self) -> pulumi.Output[builtins.bool]:
777
+ """
778
+ Output only. By default, false. If true, the Subscriber agreed to the email sharing mandate that is enabled for Listing.
779
+ """
780
+ return pulumi.get(self, "log_linked_dataset_query_user_email")
781
+
754
782
  @property
755
783
  @pulumi.getter
756
784
  def name(self) -> pulumi.Output[builtins.str]:
@@ -28,6 +28,7 @@ __all__ = [
28
28
  'ListingIamBindingCondition',
29
29
  'ListingIamMemberCondition',
30
30
  'ListingPublisher',
31
+ 'ListingPubsubTopic',
31
32
  'ListingRestrictedExportConfig',
32
33
  'ListingSubscriptionDestinationDataset',
33
34
  'ListingSubscriptionDestinationDatasetDatasetReference',
@@ -206,8 +207,6 @@ class ListingBigqueryDatasetSelectedResource(dict):
206
207
  table: Optional[builtins.str] = None):
207
208
  """
208
209
  :param builtins.str table: Format: For table: projects/{projectId}/datasets/{datasetId}/tables/{tableId} Example:"projects/test_project/datasets/test_dataset/tables/test_table"
209
-
210
- - - -
211
210
  """
212
211
  if table is not None:
213
212
  pulumi.set(__self__, "table", table)
@@ -217,8 +216,6 @@ class ListingBigqueryDatasetSelectedResource(dict):
217
216
  def table(self) -> Optional[builtins.str]:
218
217
  """
219
218
  Format: For table: projects/{projectId}/datasets/{datasetId}/tables/{tableId} Example:"projects/test_project/datasets/test_dataset/tables/test_table"
220
-
221
- - - -
222
219
  """
223
220
  return pulumi.get(self, "table")
224
221
 
@@ -371,6 +368,55 @@ class ListingPublisher(dict):
371
368
  return pulumi.get(self, "primary_contact")
372
369
 
373
370
 
371
+ @pulumi.output_type
372
+ class ListingPubsubTopic(dict):
373
+ @staticmethod
374
+ def __key_warning(key: str):
375
+ suggest = None
376
+ if key == "dataAffinityRegions":
377
+ suggest = "data_affinity_regions"
378
+
379
+ if suggest:
380
+ pulumi.log.warn(f"Key '{key}' not found in ListingPubsubTopic. Access the value via the '{suggest}' property getter instead.")
381
+
382
+ def __getitem__(self, key: str) -> Any:
383
+ ListingPubsubTopic.__key_warning(key)
384
+ return super().__getitem__(key)
385
+
386
+ def get(self, key: str, default = None) -> Any:
387
+ ListingPubsubTopic.__key_warning(key)
388
+ return super().get(key, default)
389
+
390
+ def __init__(__self__, *,
391
+ topic: builtins.str,
392
+ data_affinity_regions: Optional[Sequence[builtins.str]] = None):
393
+ """
394
+ :param builtins.str topic: Resource name of the Pub/Sub topic source for this listing. e.g. projects/myproject/topics/topicId
395
+ :param Sequence[builtins.str] data_affinity_regions: Region hint on where the data might be published. Data affinity regions are modifiable.
396
+ See https://cloud.google.com/about/locations for full listing of possible Cloud regions.
397
+ """
398
+ pulumi.set(__self__, "topic", topic)
399
+ if data_affinity_regions is not None:
400
+ pulumi.set(__self__, "data_affinity_regions", data_affinity_regions)
401
+
402
+ @property
403
+ @pulumi.getter
404
+ def topic(self) -> builtins.str:
405
+ """
406
+ Resource name of the Pub/Sub topic source for this listing. e.g. projects/myproject/topics/topicId
407
+ """
408
+ return pulumi.get(self, "topic")
409
+
410
+ @property
411
+ @pulumi.getter(name="dataAffinityRegions")
412
+ def data_affinity_regions(self) -> Optional[Sequence[builtins.str]]:
413
+ """
414
+ Region hint on where the data might be published. Data affinity regions are modifiable.
415
+ See https://cloud.google.com/about/locations for full listing of possible Cloud regions.
416
+ """
417
+ return pulumi.get(self, "data_affinity_regions")
418
+
419
+
374
420
  @pulumi.output_type
375
421
  class ListingRestrictedExportConfig(dict):
376
422
  @staticmethod
@@ -29,6 +29,7 @@ class TableArgs:
29
29
  deletion_protection: Optional[pulumi.Input[builtins.str]] = None,
30
30
  name: Optional[pulumi.Input[builtins.str]] = None,
31
31
  project: Optional[pulumi.Input[builtins.str]] = None,
32
+ row_key_schema: Optional[pulumi.Input[builtins.str]] = None,
32
33
  split_keys: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
33
34
  """
34
35
  The set of arguments for constructing a Table resource.
@@ -42,6 +43,12 @@ class TableArgs:
42
43
  :param pulumi.Input[builtins.str] name: The name of the table. Must be 1-50 characters and must only contain hyphens, underscores, periods, letters and numbers.
43
44
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs. If it
44
45
  is not provided, the provider project is used.
46
+ :param pulumi.Input[builtins.str] row_key_schema: Defines the row key schema of a table. To create or update a table with a row key schema, specify this argument. Note
47
+ that in-place update is not supported, and any in-place modification to the schema will lead to failure. To update a
48
+ schema, please clear it (by omitting the field), and update the resource again with a new schema.\\n The schema must be a
49
+ valid JSON encoded string representing a Type's struct protobuf message. Note that for bytes sequence (like
50
+ delimited_bytes.delimiter) the delimiter must be base64 encoded. For example, if you want to set a delimiter to a single
51
+ byte character "#", it should be set to "Iw==", which is the base64 encoding of the byte sequence "#".
45
52
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] split_keys: A list of predefined keys to split the table on.
46
53
  !> **Warning:** Modifying the `split_keys` of an existing table will cause the provider
47
54
  to delete/recreate the entire `bigtable.Table` resource.
@@ -59,6 +66,8 @@ class TableArgs:
59
66
  pulumi.set(__self__, "name", name)
60
67
  if project is not None:
61
68
  pulumi.set(__self__, "project", project)
69
+ if row_key_schema is not None:
70
+ pulumi.set(__self__, "row_key_schema", row_key_schema)
62
71
  if split_keys is not None:
63
72
  pulumi.set(__self__, "split_keys", split_keys)
64
73
 
@@ -149,6 +158,23 @@ class TableArgs:
149
158
  def project(self, value: Optional[pulumi.Input[builtins.str]]):
150
159
  pulumi.set(self, "project", value)
151
160
 
161
+ @property
162
+ @pulumi.getter(name="rowKeySchema")
163
+ def row_key_schema(self) -> Optional[pulumi.Input[builtins.str]]:
164
+ """
165
+ Defines the row key schema of a table. To create or update a table with a row key schema, specify this argument. Note
166
+ that in-place update is not supported, and any in-place modification to the schema will lead to failure. To update a
167
+ schema, please clear it (by omitting the field), and update the resource again with a new schema.\\n The schema must be a
168
+ valid JSON encoded string representing a Type's struct protobuf message. Note that for bytes sequence (like
169
+ delimited_bytes.delimiter) the delimiter must be base64 encoded. For example, if you want to set a delimiter to a single
170
+ byte character "#", it should be set to "Iw==", which is the base64 encoding of the byte sequence "#".
171
+ """
172
+ return pulumi.get(self, "row_key_schema")
173
+
174
+ @row_key_schema.setter
175
+ def row_key_schema(self, value: Optional[pulumi.Input[builtins.str]]):
176
+ pulumi.set(self, "row_key_schema", value)
177
+
152
178
  @property
153
179
  @pulumi.getter(name="splitKeys")
154
180
  def split_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
@@ -174,6 +200,7 @@ class _TableState:
174
200
  instance_name: Optional[pulumi.Input[builtins.str]] = None,
175
201
  name: Optional[pulumi.Input[builtins.str]] = None,
176
202
  project: Optional[pulumi.Input[builtins.str]] = None,
203
+ row_key_schema: Optional[pulumi.Input[builtins.str]] = None,
177
204
  split_keys: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
178
205
  """
179
206
  Input properties used for looking up and filtering Table resources.
@@ -187,6 +214,12 @@ class _TableState:
187
214
  :param pulumi.Input[builtins.str] name: The name of the table. Must be 1-50 characters and must only contain hyphens, underscores, periods, letters and numbers.
188
215
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs. If it
189
216
  is not provided, the provider project is used.
217
+ :param pulumi.Input[builtins.str] row_key_schema: Defines the row key schema of a table. To create or update a table with a row key schema, specify this argument. Note
218
+ that in-place update is not supported, and any in-place modification to the schema will lead to failure. To update a
219
+ schema, please clear it (by omitting the field), and update the resource again with a new schema.\\n The schema must be a
220
+ valid JSON encoded string representing a Type's struct protobuf message. Note that for bytes sequence (like
221
+ delimited_bytes.delimiter) the delimiter must be base64 encoded. For example, if you want to set a delimiter to a single
222
+ byte character "#", it should be set to "Iw==", which is the base64 encoding of the byte sequence "#".
190
223
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] split_keys: A list of predefined keys to split the table on.
191
224
  !> **Warning:** Modifying the `split_keys` of an existing table will cause the provider
192
225
  to delete/recreate the entire `bigtable.Table` resource.
@@ -205,6 +238,8 @@ class _TableState:
205
238
  pulumi.set(__self__, "name", name)
206
239
  if project is not None:
207
240
  pulumi.set(__self__, "project", project)
241
+ if row_key_schema is not None:
242
+ pulumi.set(__self__, "row_key_schema", row_key_schema)
208
243
  if split_keys is not None:
209
244
  pulumi.set(__self__, "split_keys", split_keys)
210
245
 
@@ -295,6 +330,23 @@ class _TableState:
295
330
  def project(self, value: Optional[pulumi.Input[builtins.str]]):
296
331
  pulumi.set(self, "project", value)
297
332
 
333
+ @property
334
+ @pulumi.getter(name="rowKeySchema")
335
+ def row_key_schema(self) -> Optional[pulumi.Input[builtins.str]]:
336
+ """
337
+ Defines the row key schema of a table. To create or update a table with a row key schema, specify this argument. Note
338
+ that in-place update is not supported, and any in-place modification to the schema will lead to failure. To update a
339
+ schema, please clear it (by omitting the field), and update the resource again with a new schema.\\n The schema must be a
340
+ valid JSON encoded string representing a Type's struct protobuf message. Note that for bytes sequence (like
341
+ delimited_bytes.delimiter) the delimiter must be base64 encoded. For example, if you want to set a delimiter to a single
342
+ byte character "#", it should be set to "Iw==", which is the base64 encoding of the byte sequence "#".
343
+ """
344
+ return pulumi.get(self, "row_key_schema")
345
+
346
+ @row_key_schema.setter
347
+ def row_key_schema(self, value: Optional[pulumi.Input[builtins.str]]):
348
+ pulumi.set(self, "row_key_schema", value)
349
+
298
350
  @property
299
351
  @pulumi.getter(name="splitKeys")
300
352
  def split_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
@@ -323,6 +375,7 @@ class Table(pulumi.CustomResource):
323
375
  instance_name: Optional[pulumi.Input[builtins.str]] = None,
324
376
  name: Optional[pulumi.Input[builtins.str]] = None,
325
377
  project: Optional[pulumi.Input[builtins.str]] = None,
378
+ row_key_schema: Optional[pulumi.Input[builtins.str]] = None,
326
379
  split_keys: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
327
380
  __props__=None):
328
381
  """
@@ -422,6 +475,12 @@ class Table(pulumi.CustomResource):
422
475
  :param pulumi.Input[builtins.str] name: The name of the table. Must be 1-50 characters and must only contain hyphens, underscores, periods, letters and numbers.
423
476
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs. If it
424
477
  is not provided, the provider project is used.
478
+ :param pulumi.Input[builtins.str] row_key_schema: Defines the row key schema of a table. To create or update a table with a row key schema, specify this argument. Note
479
+ that in-place update is not supported, and any in-place modification to the schema will lead to failure. To update a
480
+ schema, please clear it (by omitting the field), and update the resource again with a new schema.\\n The schema must be a
481
+ valid JSON encoded string representing a Type's struct protobuf message. Note that for bytes sequence (like
482
+ delimited_bytes.delimiter) the delimiter must be base64 encoded. For example, if you want to set a delimiter to a single
483
+ byte character "#", it should be set to "Iw==", which is the base64 encoding of the byte sequence "#".
425
484
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] split_keys: A list of predefined keys to split the table on.
426
485
  !> **Warning:** Modifying the `split_keys` of an existing table will cause the provider
427
486
  to delete/recreate the entire `bigtable.Table` resource.
@@ -539,6 +598,7 @@ class Table(pulumi.CustomResource):
539
598
  instance_name: Optional[pulumi.Input[builtins.str]] = None,
540
599
  name: Optional[pulumi.Input[builtins.str]] = None,
541
600
  project: Optional[pulumi.Input[builtins.str]] = None,
601
+ row_key_schema: Optional[pulumi.Input[builtins.str]] = None,
542
602
  split_keys: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
543
603
  __props__=None):
544
604
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -558,6 +618,7 @@ class Table(pulumi.CustomResource):
558
618
  __props__.__dict__["instance_name"] = instance_name
559
619
  __props__.__dict__["name"] = name
560
620
  __props__.__dict__["project"] = project
621
+ __props__.__dict__["row_key_schema"] = row_key_schema
561
622
  __props__.__dict__["split_keys"] = split_keys
562
623
  super(Table, __self__).__init__(
563
624
  'gcp:bigtable/table:Table',
@@ -576,6 +637,7 @@ class Table(pulumi.CustomResource):
576
637
  instance_name: Optional[pulumi.Input[builtins.str]] = None,
577
638
  name: Optional[pulumi.Input[builtins.str]] = None,
578
639
  project: Optional[pulumi.Input[builtins.str]] = None,
640
+ row_key_schema: Optional[pulumi.Input[builtins.str]] = None,
579
641
  split_keys: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None) -> 'Table':
580
642
  """
581
643
  Get an existing Table resource's state with the given name, id, and optional extra
@@ -594,6 +656,12 @@ class Table(pulumi.CustomResource):
594
656
  :param pulumi.Input[builtins.str] name: The name of the table. Must be 1-50 characters and must only contain hyphens, underscores, periods, letters and numbers.
595
657
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs. If it
596
658
  is not provided, the provider project is used.
659
+ :param pulumi.Input[builtins.str] row_key_schema: Defines the row key schema of a table. To create or update a table with a row key schema, specify this argument. Note
660
+ that in-place update is not supported, and any in-place modification to the schema will lead to failure. To update a
661
+ schema, please clear it (by omitting the field), and update the resource again with a new schema.\\n The schema must be a
662
+ valid JSON encoded string representing a Type's struct protobuf message. Note that for bytes sequence (like
663
+ delimited_bytes.delimiter) the delimiter must be base64 encoded. For example, if you want to set a delimiter to a single
664
+ byte character "#", it should be set to "Iw==", which is the base64 encoding of the byte sequence "#".
597
665
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] split_keys: A list of predefined keys to split the table on.
598
666
  !> **Warning:** Modifying the `split_keys` of an existing table will cause the provider
599
667
  to delete/recreate the entire `bigtable.Table` resource.
@@ -609,6 +677,7 @@ class Table(pulumi.CustomResource):
609
677
  __props__.__dict__["instance_name"] = instance_name
610
678
  __props__.__dict__["name"] = name
611
679
  __props__.__dict__["project"] = project
680
+ __props__.__dict__["row_key_schema"] = row_key_schema
612
681
  __props__.__dict__["split_keys"] = split_keys
613
682
  return Table(resource_name, opts=opts, __props__=__props__)
614
683
 
@@ -671,6 +740,19 @@ class Table(pulumi.CustomResource):
671
740
  """
672
741
  return pulumi.get(self, "project")
673
742
 
743
+ @property
744
+ @pulumi.getter(name="rowKeySchema")
745
+ def row_key_schema(self) -> pulumi.Output[Optional[builtins.str]]:
746
+ """
747
+ Defines the row key schema of a table. To create or update a table with a row key schema, specify this argument. Note
748
+ that in-place update is not supported, and any in-place modification to the schema will lead to failure. To update a
749
+ schema, please clear it (by omitting the field), and update the resource again with a new schema.\\n The schema must be a
750
+ valid JSON encoded string representing a Type's struct protobuf message. Note that for bytes sequence (like
751
+ delimited_bytes.delimiter) the delimiter must be base64 encoded. For example, if you want to set a delimiter to a single
752
+ byte character "#", it should be set to "Iw==", which is the base64 encoding of the byte sequence "#".
753
+ """
754
+ return pulumi.get(self, "row_key_schema")
755
+
674
756
  @property
675
757
  @pulumi.getter(name="splitKeys")
676
758
  def split_keys(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
@@ -24,6 +24,7 @@ class GroupMembershipArgs:
24
24
  def __init__(__self__, *,
25
25
  group: pulumi.Input[builtins.str],
26
26
  roles: pulumi.Input[Sequence[pulumi.Input['GroupMembershipRoleArgs']]],
27
+ create_ignore_already_exists: Optional[pulumi.Input[builtins.bool]] = None,
27
28
  member_key: Optional[pulumi.Input['GroupMembershipMemberKeyArgs']] = None,
28
29
  preferred_member_key: Optional[pulumi.Input['GroupMembershipPreferredMemberKeyArgs']] = None):
29
30
  """
@@ -32,11 +33,14 @@ class GroupMembershipArgs:
32
33
  :param pulumi.Input[Sequence[pulumi.Input['GroupMembershipRoleArgs']]] roles: The MembershipRoles that apply to the Membership.
33
34
  Must not contain duplicate MembershipRoles with the same name.
34
35
  Structure is documented below.
36
+ :param pulumi.Input[builtins.bool] create_ignore_already_exists: If set to true, skip group member creation if a membership with the same name already exists. Defaults to false.
35
37
  :param pulumi.Input['GroupMembershipMemberKeyArgs'] member_key: EntityKey of the member.
36
38
  :param pulumi.Input['GroupMembershipPreferredMemberKeyArgs'] preferred_member_key: EntityKey of the member.
37
39
  """
38
40
  pulumi.set(__self__, "group", group)
39
41
  pulumi.set(__self__, "roles", roles)
42
+ if create_ignore_already_exists is not None:
43
+ pulumi.set(__self__, "create_ignore_already_exists", create_ignore_already_exists)
40
44
  if member_key is not None:
41
45
  pulumi.set(__self__, "member_key", member_key)
42
46
  if preferred_member_key is not None:
@@ -68,6 +72,18 @@ class GroupMembershipArgs:
68
72
  def roles(self, value: pulumi.Input[Sequence[pulumi.Input['GroupMembershipRoleArgs']]]):
69
73
  pulumi.set(self, "roles", value)
70
74
 
75
+ @property
76
+ @pulumi.getter(name="createIgnoreAlreadyExists")
77
+ def create_ignore_already_exists(self) -> Optional[pulumi.Input[builtins.bool]]:
78
+ """
79
+ If set to true, skip group member creation if a membership with the same name already exists. Defaults to false.
80
+ """
81
+ return pulumi.get(self, "create_ignore_already_exists")
82
+
83
+ @create_ignore_already_exists.setter
84
+ def create_ignore_already_exists(self, value: Optional[pulumi.Input[builtins.bool]]):
85
+ pulumi.set(self, "create_ignore_already_exists", value)
86
+
71
87
  @property
72
88
  @pulumi.getter(name="memberKey")
73
89
  def member_key(self) -> Optional[pulumi.Input['GroupMembershipMemberKeyArgs']]:
@@ -96,6 +112,7 @@ class GroupMembershipArgs:
96
112
  @pulumi.input_type
97
113
  class _GroupMembershipState:
98
114
  def __init__(__self__, *,
115
+ create_ignore_already_exists: Optional[pulumi.Input[builtins.bool]] = None,
99
116
  create_time: Optional[pulumi.Input[builtins.str]] = None,
100
117
  group: Optional[pulumi.Input[builtins.str]] = None,
101
118
  member_key: Optional[pulumi.Input['GroupMembershipMemberKeyArgs']] = None,
@@ -106,6 +123,7 @@ class _GroupMembershipState:
106
123
  update_time: Optional[pulumi.Input[builtins.str]] = None):
107
124
  """
108
125
  Input properties used for looking up and filtering GroupMembership resources.
126
+ :param pulumi.Input[builtins.bool] create_ignore_already_exists: If set to true, skip group member creation if a membership with the same name already exists. Defaults to false.
109
127
  :param pulumi.Input[builtins.str] create_time: The time when the Membership was created.
110
128
  :param pulumi.Input[builtins.str] group: The name of the Group to create this membership in.
111
129
  :param pulumi.Input['GroupMembershipMemberKeyArgs'] member_key: EntityKey of the member.
@@ -117,6 +135,8 @@ class _GroupMembershipState:
117
135
  :param pulumi.Input[builtins.str] type: The type of the membership.
118
136
  :param pulumi.Input[builtins.str] update_time: The time when the Membership was last updated.
119
137
  """
138
+ if create_ignore_already_exists is not None:
139
+ pulumi.set(__self__, "create_ignore_already_exists", create_ignore_already_exists)
120
140
  if create_time is not None:
121
141
  pulumi.set(__self__, "create_time", create_time)
122
142
  if group is not None:
@@ -134,6 +154,18 @@ class _GroupMembershipState:
134
154
  if update_time is not None:
135
155
  pulumi.set(__self__, "update_time", update_time)
136
156
 
157
+ @property
158
+ @pulumi.getter(name="createIgnoreAlreadyExists")
159
+ def create_ignore_already_exists(self) -> Optional[pulumi.Input[builtins.bool]]:
160
+ """
161
+ If set to true, skip group member creation if a membership with the same name already exists. Defaults to false.
162
+ """
163
+ return pulumi.get(self, "create_ignore_already_exists")
164
+
165
+ @create_ignore_already_exists.setter
166
+ def create_ignore_already_exists(self, value: Optional[pulumi.Input[builtins.bool]]):
167
+ pulumi.set(self, "create_ignore_already_exists", value)
168
+
137
169
  @property
138
170
  @pulumi.getter(name="createTime")
139
171
  def create_time(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -239,6 +271,7 @@ class GroupMembership(pulumi.CustomResource):
239
271
  def __init__(__self__,
240
272
  resource_name: str,
241
273
  opts: Optional[pulumi.ResourceOptions] = None,
274
+ create_ignore_already_exists: Optional[pulumi.Input[builtins.bool]] = None,
242
275
  group: Optional[pulumi.Input[builtins.str]] = None,
243
276
  member_key: Optional[pulumi.Input[Union['GroupMembershipMemberKeyArgs', 'GroupMembershipMemberKeyArgsDict']]] = None,
244
277
  preferred_member_key: Optional[pulumi.Input[Union['GroupMembershipPreferredMemberKeyArgs', 'GroupMembershipPreferredMemberKeyArgsDict']]] = None,
@@ -338,6 +371,7 @@ class GroupMembership(pulumi.CustomResource):
338
371
 
339
372
  :param str resource_name: The name of the resource.
340
373
  :param pulumi.ResourceOptions opts: Options for the resource.
374
+ :param pulumi.Input[builtins.bool] create_ignore_already_exists: If set to true, skip group member creation if a membership with the same name already exists. Defaults to false.
341
375
  :param pulumi.Input[builtins.str] group: The name of the Group to create this membership in.
342
376
  :param pulumi.Input[Union['GroupMembershipMemberKeyArgs', 'GroupMembershipMemberKeyArgsDict']] member_key: EntityKey of the member.
343
377
  :param pulumi.Input[Union['GroupMembershipPreferredMemberKeyArgs', 'GroupMembershipPreferredMemberKeyArgsDict']] preferred_member_key: EntityKey of the member.
@@ -458,6 +492,7 @@ class GroupMembership(pulumi.CustomResource):
458
492
  def _internal_init(__self__,
459
493
  resource_name: str,
460
494
  opts: Optional[pulumi.ResourceOptions] = None,
495
+ create_ignore_already_exists: Optional[pulumi.Input[builtins.bool]] = None,
461
496
  group: Optional[pulumi.Input[builtins.str]] = None,
462
497
  member_key: Optional[pulumi.Input[Union['GroupMembershipMemberKeyArgs', 'GroupMembershipMemberKeyArgsDict']]] = None,
463
498
  preferred_member_key: Optional[pulumi.Input[Union['GroupMembershipPreferredMemberKeyArgs', 'GroupMembershipPreferredMemberKeyArgsDict']]] = None,
@@ -471,6 +506,7 @@ class GroupMembership(pulumi.CustomResource):
471
506
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
472
507
  __props__ = GroupMembershipArgs.__new__(GroupMembershipArgs)
473
508
 
509
+ __props__.__dict__["create_ignore_already_exists"] = create_ignore_already_exists
474
510
  if group is None and not opts.urn:
475
511
  raise TypeError("Missing required property 'group'")
476
512
  __props__.__dict__["group"] = group
@@ -493,6 +529,7 @@ class GroupMembership(pulumi.CustomResource):
493
529
  def get(resource_name: str,
494
530
  id: pulumi.Input[str],
495
531
  opts: Optional[pulumi.ResourceOptions] = None,
532
+ create_ignore_already_exists: Optional[pulumi.Input[builtins.bool]] = None,
496
533
  create_time: Optional[pulumi.Input[builtins.str]] = None,
497
534
  group: Optional[pulumi.Input[builtins.str]] = None,
498
535
  member_key: Optional[pulumi.Input[Union['GroupMembershipMemberKeyArgs', 'GroupMembershipMemberKeyArgsDict']]] = None,
@@ -508,6 +545,7 @@ class GroupMembership(pulumi.CustomResource):
508
545
  :param str resource_name: The unique name of the resulting resource.
509
546
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
510
547
  :param pulumi.ResourceOptions opts: Options for the resource.
548
+ :param pulumi.Input[builtins.bool] create_ignore_already_exists: If set to true, skip group member creation if a membership with the same name already exists. Defaults to false.
511
549
  :param pulumi.Input[builtins.str] create_time: The time when the Membership was created.
512
550
  :param pulumi.Input[builtins.str] group: The name of the Group to create this membership in.
513
551
  :param pulumi.Input[Union['GroupMembershipMemberKeyArgs', 'GroupMembershipMemberKeyArgsDict']] member_key: EntityKey of the member.
@@ -523,6 +561,7 @@ class GroupMembership(pulumi.CustomResource):
523
561
 
524
562
  __props__ = _GroupMembershipState.__new__(_GroupMembershipState)
525
563
 
564
+ __props__.__dict__["create_ignore_already_exists"] = create_ignore_already_exists
526
565
  __props__.__dict__["create_time"] = create_time
527
566
  __props__.__dict__["group"] = group
528
567
  __props__.__dict__["member_key"] = member_key
@@ -533,6 +572,14 @@ class GroupMembership(pulumi.CustomResource):
533
572
  __props__.__dict__["update_time"] = update_time
534
573
  return GroupMembership(resource_name, opts=opts, __props__=__props__)
535
574
 
575
+ @property
576
+ @pulumi.getter(name="createIgnoreAlreadyExists")
577
+ def create_ignore_already_exists(self) -> pulumi.Output[Optional[builtins.bool]]:
578
+ """
579
+ If set to true, skip group member creation if a membership with the same name already exists. Defaults to false.
580
+ """
581
+ return pulumi.get(self, "create_ignore_already_exists")
582
+
536
583
  @property
537
584
  @pulumi.getter(name="createTime")
538
585
  def create_time(self) -> pulumi.Output[builtins.str]:
@@ -393,6 +393,7 @@ class GetGroupLookupGroupKeyResult(dict):
393
393
  @pulumi.output_type
394
394
  class GetGroupMembershipsMembershipResult(dict):
395
395
  def __init__(__self__, *,
396
+ create_ignore_already_exists: builtins.bool,
396
397
  create_time: builtins.str,
397
398
  group: builtins.str,
398
399
  member_keys: Sequence['outputs.GetGroupMembershipsMembershipMemberKeyResult'],
@@ -402,6 +403,7 @@ class GetGroupMembershipsMembershipResult(dict):
402
403
  type: builtins.str,
403
404
  update_time: builtins.str):
404
405
  """
406
+ :param builtins.bool create_ignore_already_exists: If set to true, skip group member creation if a membership with the same name already exists. Defaults to false.
405
407
  :param builtins.str create_time: The time when the Membership was created.
406
408
  :param builtins.str group: The parent Group resource under which to lookup the Membership names. Must be of the form groups/{group_id}.
407
409
  :param Sequence['GetGroupMembershipsMembershipMemberKeyArgs'] member_keys: EntityKey of the member. Structure is documented below.
@@ -411,6 +413,7 @@ class GetGroupMembershipsMembershipResult(dict):
411
413
  :param builtins.str type: The type of the membership.
412
414
  :param builtins.str update_time: The time when the Membership was last updated.
413
415
  """
416
+ pulumi.set(__self__, "create_ignore_already_exists", create_ignore_already_exists)
414
417
  pulumi.set(__self__, "create_time", create_time)
415
418
  pulumi.set(__self__, "group", group)
416
419
  pulumi.set(__self__, "member_keys", member_keys)
@@ -420,6 +423,14 @@ class GetGroupMembershipsMembershipResult(dict):
420
423
  pulumi.set(__self__, "type", type)
421
424
  pulumi.set(__self__, "update_time", update_time)
422
425
 
426
+ @property
427
+ @pulumi.getter(name="createIgnoreAlreadyExists")
428
+ def create_ignore_already_exists(self) -> builtins.bool:
429
+ """
430
+ If set to true, skip group member creation if a membership with the same name already exists. Defaults to false.
431
+ """
432
+ return pulumi.get(self, "create_ignore_already_exists")
433
+
423
434
  @property
424
435
  @pulumi.getter(name="createTime")
425
436
  def create_time(self) -> builtins.str: