pulumi-gcp 7.8.0a1706829616__py3-none-any.whl → 7.8.0a1706905467__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- pulumi_gcp/__init__.py +30 -0
- pulumi_gcp/artifactregistry/repository.py +26 -28
- pulumi_gcp/cloudrun/_inputs.py +87 -4
- pulumi_gcp/cloudrun/outputs.py +152 -4
- pulumi_gcp/composer/_inputs.py +63 -0
- pulumi_gcp/composer/outputs.py +136 -0
- pulumi_gcp/compute/_inputs.py +8 -18
- pulumi_gcp/compute/backend_service.py +28 -0
- pulumi_gcp/compute/outputs.py +10 -20
- pulumi_gcp/compute/region_backend_service.py +30 -0
- pulumi_gcp/config/__init__.pyi +4 -0
- pulumi_gcp/config/vars.py +8 -0
- pulumi_gcp/discoveryengine/__init__.py +8 -0
- pulumi_gcp/discoveryengine/data_store.py +734 -0
- pulumi_gcp/eventarc/_inputs.py +2 -2
- pulumi_gcp/eventarc/outputs.py +2 -2
- pulumi_gcp/firebase/_inputs.py +4 -2
- pulumi_gcp/firebase/extensions_instance.py +6 -8
- pulumi_gcp/firebase/outputs.py +4 -2
- pulumi_gcp/firestore/backup_schedule.py +36 -12
- pulumi_gcp/firestore/database.py +0 -8
- pulumi_gcp/firestore/document.py +0 -68
- pulumi_gcp/firestore/field.py +22 -102
- pulumi_gcp/firestore/index.py +4 -42
- pulumi_gcp/gkehub/feature.py +2 -2
- pulumi_gcp/provider.py +40 -0
- pulumi_gcp/pubsub/_inputs.py +26 -4
- pulumi_gcp/pubsub/outputs.py +45 -8
- pulumi_gcp/pubsub/subscription.py +82 -0
- pulumi_gcp/securityposture/__init__.py +11 -0
- pulumi_gcp/securityposture/_inputs.py +1364 -0
- pulumi_gcp/securityposture/outputs.py +1372 -0
- pulumi_gcp/securityposture/posture.py +828 -0
- pulumi_gcp/securityposture/posture_deployment.py +872 -0
- pulumi_gcp/vertex/_inputs.py +156 -0
- pulumi_gcp/vertex/ai_feature_online_store_featureview.py +259 -3
- pulumi_gcp/vertex/outputs.py +170 -0
- pulumi_gcp/workflows/workflow.py +75 -7
- pulumi_gcp/workstations/_inputs.py +38 -0
- pulumi_gcp/workstations/outputs.py +30 -0
- pulumi_gcp/workstations/workstation_config.py +54 -0
- {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/RECORD +45 -38
- {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/top_level.txt +0 -0
pulumi_gcp/provider.py
CHANGED
@@ -83,6 +83,7 @@ class ProviderArgs:
|
|
83
83
|
dialogflow_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
84
84
|
dialogflow_cx_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
85
85
|
disable_google_partner_name: Optional[pulumi.Input[bool]] = None,
|
86
|
+
discovery_engine_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
86
87
|
dns_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
87
88
|
document_ai_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
88
89
|
document_ai_warehouse_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
@@ -150,6 +151,7 @@ class ProviderArgs:
|
|
150
151
|
secure_source_manager_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
151
152
|
security_center_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
152
153
|
security_scanner_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
154
|
+
securityposture_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
153
155
|
service_directory_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
154
156
|
service_management_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
155
157
|
service_networking_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
@@ -312,6 +314,8 @@ class ProviderArgs:
|
|
312
314
|
pulumi.set(__self__, "dialogflow_cx_custom_endpoint", dialogflow_cx_custom_endpoint)
|
313
315
|
if disable_google_partner_name is not None:
|
314
316
|
pulumi.set(__self__, "disable_google_partner_name", disable_google_partner_name)
|
317
|
+
if discovery_engine_custom_endpoint is not None:
|
318
|
+
pulumi.set(__self__, "discovery_engine_custom_endpoint", discovery_engine_custom_endpoint)
|
315
319
|
if dns_custom_endpoint is not None:
|
316
320
|
pulumi.set(__self__, "dns_custom_endpoint", dns_custom_endpoint)
|
317
321
|
if document_ai_custom_endpoint is not None:
|
@@ -450,6 +454,8 @@ class ProviderArgs:
|
|
450
454
|
pulumi.set(__self__, "security_center_custom_endpoint", security_center_custom_endpoint)
|
451
455
|
if security_scanner_custom_endpoint is not None:
|
452
456
|
pulumi.set(__self__, "security_scanner_custom_endpoint", security_scanner_custom_endpoint)
|
457
|
+
if securityposture_custom_endpoint is not None:
|
458
|
+
pulumi.set(__self__, "securityposture_custom_endpoint", securityposture_custom_endpoint)
|
453
459
|
if service_directory_custom_endpoint is not None:
|
454
460
|
pulumi.set(__self__, "service_directory_custom_endpoint", service_directory_custom_endpoint)
|
455
461
|
if service_management_custom_endpoint is not None:
|
@@ -1111,6 +1117,15 @@ class ProviderArgs:
|
|
1111
1117
|
def disable_google_partner_name(self, value: Optional[pulumi.Input[bool]]):
|
1112
1118
|
pulumi.set(self, "disable_google_partner_name", value)
|
1113
1119
|
|
1120
|
+
@property
|
1121
|
+
@pulumi.getter(name="discoveryEngineCustomEndpoint")
|
1122
|
+
def discovery_engine_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
|
1123
|
+
return pulumi.get(self, "discovery_engine_custom_endpoint")
|
1124
|
+
|
1125
|
+
@discovery_engine_custom_endpoint.setter
|
1126
|
+
def discovery_engine_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
|
1127
|
+
pulumi.set(self, "discovery_engine_custom_endpoint", value)
|
1128
|
+
|
1114
1129
|
@property
|
1115
1130
|
@pulumi.getter(name="dnsCustomEndpoint")
|
1116
1131
|
def dns_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
|
@@ -1714,6 +1729,15 @@ class ProviderArgs:
|
|
1714
1729
|
def security_scanner_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
|
1715
1730
|
pulumi.set(self, "security_scanner_custom_endpoint", value)
|
1716
1731
|
|
1732
|
+
@property
|
1733
|
+
@pulumi.getter(name="securitypostureCustomEndpoint")
|
1734
|
+
def securityposture_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
|
1735
|
+
return pulumi.get(self, "securityposture_custom_endpoint")
|
1736
|
+
|
1737
|
+
@securityposture_custom_endpoint.setter
|
1738
|
+
def securityposture_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
|
1739
|
+
pulumi.set(self, "securityposture_custom_endpoint", value)
|
1740
|
+
|
1717
1741
|
@property
|
1718
1742
|
@pulumi.getter(name="serviceDirectoryCustomEndpoint")
|
1719
1743
|
def service_directory_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
|
@@ -1995,6 +2019,7 @@ class Provider(pulumi.ProviderResource):
|
|
1995
2019
|
dialogflow_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
1996
2020
|
dialogflow_cx_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
1997
2021
|
disable_google_partner_name: Optional[pulumi.Input[bool]] = None,
|
2022
|
+
discovery_engine_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
1998
2023
|
dns_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
1999
2024
|
document_ai_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2000
2025
|
document_ai_warehouse_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
@@ -2062,6 +2087,7 @@ class Provider(pulumi.ProviderResource):
|
|
2062
2087
|
secure_source_manager_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2063
2088
|
security_center_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2064
2089
|
security_scanner_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2090
|
+
securityposture_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2065
2091
|
service_directory_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2066
2092
|
service_management_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2067
2093
|
service_networking_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
@@ -2190,6 +2216,7 @@ class Provider(pulumi.ProviderResource):
|
|
2190
2216
|
dialogflow_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2191
2217
|
dialogflow_cx_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2192
2218
|
disable_google_partner_name: Optional[pulumi.Input[bool]] = None,
|
2219
|
+
discovery_engine_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2193
2220
|
dns_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2194
2221
|
document_ai_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2195
2222
|
document_ai_warehouse_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
@@ -2257,6 +2284,7 @@ class Provider(pulumi.ProviderResource):
|
|
2257
2284
|
secure_source_manager_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2258
2285
|
security_center_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2259
2286
|
security_scanner_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2287
|
+
securityposture_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2260
2288
|
service_directory_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2261
2289
|
service_management_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
2262
2290
|
service_networking_custom_endpoint: Optional[pulumi.Input[str]] = None,
|
@@ -2357,6 +2385,7 @@ class Provider(pulumi.ProviderResource):
|
|
2357
2385
|
__props__.__dict__["dialogflow_custom_endpoint"] = dialogflow_custom_endpoint
|
2358
2386
|
__props__.__dict__["dialogflow_cx_custom_endpoint"] = dialogflow_cx_custom_endpoint
|
2359
2387
|
__props__.__dict__["disable_google_partner_name"] = pulumi.Output.from_input(disable_google_partner_name).apply(pulumi.runtime.to_json) if disable_google_partner_name is not None else None
|
2388
|
+
__props__.__dict__["discovery_engine_custom_endpoint"] = discovery_engine_custom_endpoint
|
2360
2389
|
__props__.__dict__["dns_custom_endpoint"] = dns_custom_endpoint
|
2361
2390
|
__props__.__dict__["document_ai_custom_endpoint"] = document_ai_custom_endpoint
|
2362
2391
|
__props__.__dict__["document_ai_warehouse_custom_endpoint"] = document_ai_warehouse_custom_endpoint
|
@@ -2428,6 +2457,7 @@ class Provider(pulumi.ProviderResource):
|
|
2428
2457
|
__props__.__dict__["secure_source_manager_custom_endpoint"] = secure_source_manager_custom_endpoint
|
2429
2458
|
__props__.__dict__["security_center_custom_endpoint"] = security_center_custom_endpoint
|
2430
2459
|
__props__.__dict__["security_scanner_custom_endpoint"] = security_scanner_custom_endpoint
|
2460
|
+
__props__.__dict__["securityposture_custom_endpoint"] = securityposture_custom_endpoint
|
2431
2461
|
__props__.__dict__["service_directory_custom_endpoint"] = service_directory_custom_endpoint
|
2432
2462
|
__props__.__dict__["service_management_custom_endpoint"] = service_management_custom_endpoint
|
2433
2463
|
__props__.__dict__["service_networking_custom_endpoint"] = service_networking_custom_endpoint
|
@@ -2784,6 +2814,11 @@ class Provider(pulumi.ProviderResource):
|
|
2784
2814
|
def dialogflow_cx_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
|
2785
2815
|
return pulumi.get(self, "dialogflow_cx_custom_endpoint")
|
2786
2816
|
|
2817
|
+
@property
|
2818
|
+
@pulumi.getter(name="discoveryEngineCustomEndpoint")
|
2819
|
+
def discovery_engine_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
|
2820
|
+
return pulumi.get(self, "discovery_engine_custom_endpoint")
|
2821
|
+
|
2787
2822
|
@property
|
2788
2823
|
@pulumi.getter(name="dnsCustomEndpoint")
|
2789
2824
|
def dns_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
|
@@ -3109,6 +3144,11 @@ class Provider(pulumi.ProviderResource):
|
|
3109
3144
|
def security_scanner_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
|
3110
3145
|
return pulumi.get(self, "security_scanner_custom_endpoint")
|
3111
3146
|
|
3147
|
+
@property
|
3148
|
+
@pulumi.getter(name="securitypostureCustomEndpoint")
|
3149
|
+
def securityposture_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
|
3150
|
+
return pulumi.get(self, "securityposture_custom_endpoint")
|
3151
|
+
|
3112
3152
|
@property
|
3113
3153
|
@pulumi.getter(name="serviceDirectoryCustomEndpoint")
|
3114
3154
|
def service_directory_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
|
pulumi_gcp/pubsub/_inputs.py
CHANGED
@@ -289,19 +289,26 @@ class SubscriptionBigqueryConfigArgs:
|
|
289
289
|
def __init__(__self__, *,
|
290
290
|
table: pulumi.Input[str],
|
291
291
|
drop_unknown_fields: Optional[pulumi.Input[bool]] = None,
|
292
|
+
use_table_schema: Optional[pulumi.Input[bool]] = None,
|
292
293
|
use_topic_schema: Optional[pulumi.Input[bool]] = None,
|
293
294
|
write_metadata: Optional[pulumi.Input[bool]] = None):
|
294
295
|
"""
|
295
296
|
:param pulumi.Input[str] table: The name of the table to which to write data, of the form {projectId}:{datasetId}.{tableId}
|
296
|
-
:param pulumi.Input[bool] drop_unknown_fields: When true and
|
297
|
-
|
297
|
+
:param pulumi.Input[bool] drop_unknown_fields: When true and use_topic_schema or use_table_schema is true, any fields that are a part of the topic schema or message schema that
|
298
|
+
are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync
|
299
|
+
and any messages with extra fields are not written and remain in the subscription's backlog.
|
300
|
+
:param pulumi.Input[bool] use_table_schema: When true, use the BigQuery table's schema as the columns to write to in BigQuery. Messages
|
301
|
+
must be published in JSON format. Only one of use_topic_schema and use_table_schema can be set.
|
298
302
|
:param pulumi.Input[bool] use_topic_schema: When true, use the topic's schema as the columns to write to in BigQuery, if it exists.
|
303
|
+
Only one of use_topic_schema and use_table_schema can be set.
|
299
304
|
:param pulumi.Input[bool] write_metadata: When true, write the subscription name, messageId, publishTime, attributes, and orderingKey to additional columns in the table.
|
300
305
|
The subscription name, messageId, and publishTime fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.
|
301
306
|
"""
|
302
307
|
pulumi.set(__self__, "table", table)
|
303
308
|
if drop_unknown_fields is not None:
|
304
309
|
pulumi.set(__self__, "drop_unknown_fields", drop_unknown_fields)
|
310
|
+
if use_table_schema is not None:
|
311
|
+
pulumi.set(__self__, "use_table_schema", use_table_schema)
|
305
312
|
if use_topic_schema is not None:
|
306
313
|
pulumi.set(__self__, "use_topic_schema", use_topic_schema)
|
307
314
|
if write_metadata is not None:
|
@@ -323,8 +330,9 @@ class SubscriptionBigqueryConfigArgs:
|
|
323
330
|
@pulumi.getter(name="dropUnknownFields")
|
324
331
|
def drop_unknown_fields(self) -> Optional[pulumi.Input[bool]]:
|
325
332
|
"""
|
326
|
-
When true and
|
327
|
-
|
333
|
+
When true and use_topic_schema or use_table_schema is true, any fields that are a part of the topic schema or message schema that
|
334
|
+
are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync
|
335
|
+
and any messages with extra fields are not written and remain in the subscription's backlog.
|
328
336
|
"""
|
329
337
|
return pulumi.get(self, "drop_unknown_fields")
|
330
338
|
|
@@ -332,11 +340,25 @@ class SubscriptionBigqueryConfigArgs:
|
|
332
340
|
def drop_unknown_fields(self, value: Optional[pulumi.Input[bool]]):
|
333
341
|
pulumi.set(self, "drop_unknown_fields", value)
|
334
342
|
|
343
|
+
@property
|
344
|
+
@pulumi.getter(name="useTableSchema")
|
345
|
+
def use_table_schema(self) -> Optional[pulumi.Input[bool]]:
|
346
|
+
"""
|
347
|
+
When true, use the BigQuery table's schema as the columns to write to in BigQuery. Messages
|
348
|
+
must be published in JSON format. Only one of use_topic_schema and use_table_schema can be set.
|
349
|
+
"""
|
350
|
+
return pulumi.get(self, "use_table_schema")
|
351
|
+
|
352
|
+
@use_table_schema.setter
|
353
|
+
def use_table_schema(self, value: Optional[pulumi.Input[bool]]):
|
354
|
+
pulumi.set(self, "use_table_schema", value)
|
355
|
+
|
335
356
|
@property
|
336
357
|
@pulumi.getter(name="useTopicSchema")
|
337
358
|
def use_topic_schema(self) -> Optional[pulumi.Input[bool]]:
|
338
359
|
"""
|
339
360
|
When true, use the topic's schema as the columns to write to in BigQuery, if it exists.
|
361
|
+
Only one of use_topic_schema and use_table_schema can be set.
|
340
362
|
"""
|
341
363
|
return pulumi.get(self, "use_topic_schema")
|
342
364
|
|
pulumi_gcp/pubsub/outputs.py
CHANGED
@@ -317,6 +317,8 @@ class SubscriptionBigqueryConfig(dict):
|
|
317
317
|
suggest = None
|
318
318
|
if key == "dropUnknownFields":
|
319
319
|
suggest = "drop_unknown_fields"
|
320
|
+
elif key == "useTableSchema":
|
321
|
+
suggest = "use_table_schema"
|
320
322
|
elif key == "useTopicSchema":
|
321
323
|
suggest = "use_topic_schema"
|
322
324
|
elif key == "writeMetadata":
|
@@ -336,19 +338,26 @@ class SubscriptionBigqueryConfig(dict):
|
|
336
338
|
def __init__(__self__, *,
|
337
339
|
table: str,
|
338
340
|
drop_unknown_fields: Optional[bool] = None,
|
341
|
+
use_table_schema: Optional[bool] = None,
|
339
342
|
use_topic_schema: Optional[bool] = None,
|
340
343
|
write_metadata: Optional[bool] = None):
|
341
344
|
"""
|
342
345
|
:param str table: The name of the table to which to write data, of the form {projectId}:{datasetId}.{tableId}
|
343
|
-
:param bool drop_unknown_fields: When true and
|
344
|
-
|
346
|
+
:param bool drop_unknown_fields: When true and use_topic_schema or use_table_schema is true, any fields that are a part of the topic schema or message schema that
|
347
|
+
are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync
|
348
|
+
and any messages with extra fields are not written and remain in the subscription's backlog.
|
349
|
+
:param bool use_table_schema: When true, use the BigQuery table's schema as the columns to write to in BigQuery. Messages
|
350
|
+
must be published in JSON format. Only one of use_topic_schema and use_table_schema can be set.
|
345
351
|
:param bool use_topic_schema: When true, use the topic's schema as the columns to write to in BigQuery, if it exists.
|
352
|
+
Only one of use_topic_schema and use_table_schema can be set.
|
346
353
|
:param bool write_metadata: When true, write the subscription name, messageId, publishTime, attributes, and orderingKey to additional columns in the table.
|
347
354
|
The subscription name, messageId, and publishTime fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.
|
348
355
|
"""
|
349
356
|
pulumi.set(__self__, "table", table)
|
350
357
|
if drop_unknown_fields is not None:
|
351
358
|
pulumi.set(__self__, "drop_unknown_fields", drop_unknown_fields)
|
359
|
+
if use_table_schema is not None:
|
360
|
+
pulumi.set(__self__, "use_table_schema", use_table_schema)
|
352
361
|
if use_topic_schema is not None:
|
353
362
|
pulumi.set(__self__, "use_topic_schema", use_topic_schema)
|
354
363
|
if write_metadata is not None:
|
@@ -366,16 +375,27 @@ class SubscriptionBigqueryConfig(dict):
|
|
366
375
|
@pulumi.getter(name="dropUnknownFields")
|
367
376
|
def drop_unknown_fields(self) -> Optional[bool]:
|
368
377
|
"""
|
369
|
-
When true and
|
370
|
-
|
378
|
+
When true and use_topic_schema or use_table_schema is true, any fields that are a part of the topic schema or message schema that
|
379
|
+
are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync
|
380
|
+
and any messages with extra fields are not written and remain in the subscription's backlog.
|
371
381
|
"""
|
372
382
|
return pulumi.get(self, "drop_unknown_fields")
|
373
383
|
|
384
|
+
@property
|
385
|
+
@pulumi.getter(name="useTableSchema")
|
386
|
+
def use_table_schema(self) -> Optional[bool]:
|
387
|
+
"""
|
388
|
+
When true, use the BigQuery table's schema as the columns to write to in BigQuery. Messages
|
389
|
+
must be published in JSON format. Only one of use_topic_schema and use_table_schema can be set.
|
390
|
+
"""
|
391
|
+
return pulumi.get(self, "use_table_schema")
|
392
|
+
|
374
393
|
@property
|
375
394
|
@pulumi.getter(name="useTopicSchema")
|
376
395
|
def use_topic_schema(self) -> Optional[bool]:
|
377
396
|
"""
|
378
397
|
When true, use the topic's schema as the columns to write to in BigQuery, if it exists.
|
398
|
+
Only one of use_topic_schema and use_table_schema can be set.
|
379
399
|
"""
|
380
400
|
return pulumi.get(self, "use_topic_schema")
|
381
401
|
|
@@ -1131,18 +1151,24 @@ class GetSubscriptionBigqueryConfigResult(dict):
|
|
1131
1151
|
def __init__(__self__, *,
|
1132
1152
|
drop_unknown_fields: bool,
|
1133
1153
|
table: str,
|
1154
|
+
use_table_schema: bool,
|
1134
1155
|
use_topic_schema: bool,
|
1135
1156
|
write_metadata: bool):
|
1136
1157
|
"""
|
1137
|
-
:param bool drop_unknown_fields: When true and
|
1138
|
-
|
1158
|
+
:param bool drop_unknown_fields: When true and use_topic_schema or use_table_schema is true, any fields that are a part of the topic schema or message schema that
|
1159
|
+
are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync
|
1160
|
+
and any messages with extra fields are not written and remain in the subscription's backlog.
|
1139
1161
|
:param str table: The name of the table to which to write data, of the form {projectId}:{datasetId}.{tableId}
|
1162
|
+
:param bool use_table_schema: When true, use the BigQuery table's schema as the columns to write to in BigQuery. Messages
|
1163
|
+
must be published in JSON format. Only one of use_topic_schema and use_table_schema can be set.
|
1140
1164
|
:param bool use_topic_schema: When true, use the topic's schema as the columns to write to in BigQuery, if it exists.
|
1165
|
+
Only one of use_topic_schema and use_table_schema can be set.
|
1141
1166
|
:param bool write_metadata: When true, write the subscription name, messageId, publishTime, attributes, and orderingKey to additional columns in the table.
|
1142
1167
|
The subscription name, messageId, and publishTime fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.
|
1143
1168
|
"""
|
1144
1169
|
pulumi.set(__self__, "drop_unknown_fields", drop_unknown_fields)
|
1145
1170
|
pulumi.set(__self__, "table", table)
|
1171
|
+
pulumi.set(__self__, "use_table_schema", use_table_schema)
|
1146
1172
|
pulumi.set(__self__, "use_topic_schema", use_topic_schema)
|
1147
1173
|
pulumi.set(__self__, "write_metadata", write_metadata)
|
1148
1174
|
|
@@ -1150,8 +1176,9 @@ class GetSubscriptionBigqueryConfigResult(dict):
|
|
1150
1176
|
@pulumi.getter(name="dropUnknownFields")
|
1151
1177
|
def drop_unknown_fields(self) -> bool:
|
1152
1178
|
"""
|
1153
|
-
When true and
|
1154
|
-
|
1179
|
+
When true and use_topic_schema or use_table_schema is true, any fields that are a part of the topic schema or message schema that
|
1180
|
+
are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync
|
1181
|
+
and any messages with extra fields are not written and remain in the subscription's backlog.
|
1155
1182
|
"""
|
1156
1183
|
return pulumi.get(self, "drop_unknown_fields")
|
1157
1184
|
|
@@ -1163,11 +1190,21 @@ class GetSubscriptionBigqueryConfigResult(dict):
|
|
1163
1190
|
"""
|
1164
1191
|
return pulumi.get(self, "table")
|
1165
1192
|
|
1193
|
+
@property
|
1194
|
+
@pulumi.getter(name="useTableSchema")
|
1195
|
+
def use_table_schema(self) -> bool:
|
1196
|
+
"""
|
1197
|
+
When true, use the BigQuery table's schema as the columns to write to in BigQuery. Messages
|
1198
|
+
must be published in JSON format. Only one of use_topic_schema and use_table_schema can be set.
|
1199
|
+
"""
|
1200
|
+
return pulumi.get(self, "use_table_schema")
|
1201
|
+
|
1166
1202
|
@property
|
1167
1203
|
@pulumi.getter(name="useTopicSchema")
|
1168
1204
|
def use_topic_schema(self) -> bool:
|
1169
1205
|
"""
|
1170
1206
|
When true, use the topic's schema as the columns to write to in BigQuery, if it exists.
|
1207
|
+
Only one of use_topic_schema and use_table_schema can be set.
|
1171
1208
|
"""
|
1172
1209
|
return pulumi.get(self, "use_topic_schema")
|
1173
1210
|
|
@@ -984,6 +984,47 @@ class Subscription(pulumi.CustomResource):
|
|
984
984
|
editor,
|
985
985
|
]))
|
986
986
|
```
|
987
|
+
### Pubsub Subscription Push Bq Table Schema
|
988
|
+
|
989
|
+
```python
|
990
|
+
import pulumi
|
991
|
+
import pulumi_gcp as gcp
|
992
|
+
|
993
|
+
example_topic = gcp.pubsub.Topic("exampleTopic")
|
994
|
+
project = gcp.organizations.get_project()
|
995
|
+
viewer = gcp.projects.IAMMember("viewer",
|
996
|
+
project=project.project_id,
|
997
|
+
role="roles/bigquery.metadataViewer",
|
998
|
+
member=f"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com")
|
999
|
+
editor = gcp.projects.IAMMember("editor",
|
1000
|
+
project=project.project_id,
|
1001
|
+
role="roles/bigquery.dataEditor",
|
1002
|
+
member=f"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com")
|
1003
|
+
test_dataset = gcp.bigquery.Dataset("testDataset", dataset_id="example_dataset")
|
1004
|
+
test_table = gcp.bigquery.Table("testTable",
|
1005
|
+
deletion_protection=False,
|
1006
|
+
table_id="example_table",
|
1007
|
+
dataset_id=test_dataset.dataset_id,
|
1008
|
+
schema=\"\"\"[
|
1009
|
+
{
|
1010
|
+
"name": "data",
|
1011
|
+
"type": "STRING",
|
1012
|
+
"mode": "NULLABLE",
|
1013
|
+
"description": "The data"
|
1014
|
+
}
|
1015
|
+
]
|
1016
|
+
\"\"\")
|
1017
|
+
example_subscription = gcp.pubsub.Subscription("exampleSubscription",
|
1018
|
+
topic=example_topic.id,
|
1019
|
+
bigquery_config=gcp.pubsub.SubscriptionBigqueryConfigArgs(
|
1020
|
+
table=pulumi.Output.all(test_table.project, test_table.dataset_id, test_table.table_id).apply(lambda project, dataset_id, table_id: f"{project}.{dataset_id}.{table_id}"),
|
1021
|
+
use_table_schema=True,
|
1022
|
+
),
|
1023
|
+
opts=pulumi.ResourceOptions(depends_on=[
|
1024
|
+
viewer,
|
1025
|
+
editor,
|
1026
|
+
]))
|
1027
|
+
```
|
987
1028
|
|
988
1029
|
## Import
|
989
1030
|
|
@@ -1207,6 +1248,47 @@ class Subscription(pulumi.CustomResource):
|
|
1207
1248
|
editor,
|
1208
1249
|
]))
|
1209
1250
|
```
|
1251
|
+
### Pubsub Subscription Push Bq Table Schema
|
1252
|
+
|
1253
|
+
```python
|
1254
|
+
import pulumi
|
1255
|
+
import pulumi_gcp as gcp
|
1256
|
+
|
1257
|
+
example_topic = gcp.pubsub.Topic("exampleTopic")
|
1258
|
+
project = gcp.organizations.get_project()
|
1259
|
+
viewer = gcp.projects.IAMMember("viewer",
|
1260
|
+
project=project.project_id,
|
1261
|
+
role="roles/bigquery.metadataViewer",
|
1262
|
+
member=f"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com")
|
1263
|
+
editor = gcp.projects.IAMMember("editor",
|
1264
|
+
project=project.project_id,
|
1265
|
+
role="roles/bigquery.dataEditor",
|
1266
|
+
member=f"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com")
|
1267
|
+
test_dataset = gcp.bigquery.Dataset("testDataset", dataset_id="example_dataset")
|
1268
|
+
test_table = gcp.bigquery.Table("testTable",
|
1269
|
+
deletion_protection=False,
|
1270
|
+
table_id="example_table",
|
1271
|
+
dataset_id=test_dataset.dataset_id,
|
1272
|
+
schema=\"\"\"[
|
1273
|
+
{
|
1274
|
+
"name": "data",
|
1275
|
+
"type": "STRING",
|
1276
|
+
"mode": "NULLABLE",
|
1277
|
+
"description": "The data"
|
1278
|
+
}
|
1279
|
+
]
|
1280
|
+
\"\"\")
|
1281
|
+
example_subscription = gcp.pubsub.Subscription("exampleSubscription",
|
1282
|
+
topic=example_topic.id,
|
1283
|
+
bigquery_config=gcp.pubsub.SubscriptionBigqueryConfigArgs(
|
1284
|
+
table=pulumi.Output.all(test_table.project, test_table.dataset_id, test_table.table_id).apply(lambda project, dataset_id, table_id: f"{project}.{dataset_id}.{table_id}"),
|
1285
|
+
use_table_schema=True,
|
1286
|
+
),
|
1287
|
+
opts=pulumi.ResourceOptions(depends_on=[
|
1288
|
+
viewer,
|
1289
|
+
editor,
|
1290
|
+
]))
|
1291
|
+
```
|
1210
1292
|
|
1211
1293
|
## Import
|
1212
1294
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
from .. import _utilities
|
6
|
+
import typing
|
7
|
+
# Export this package's modules as members:
|
8
|
+
from .posture import *
|
9
|
+
from .posture_deployment import *
|
10
|
+
from ._inputs import *
|
11
|
+
from . import outputs
|