pulumi-gcp 8.0.0rc0__py3-none-any.whl → 8.1.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.
- pulumi_gcp/__init__.py +24 -0
- pulumi_gcp/alloydb/_inputs.py +94 -0
- pulumi_gcp/alloydb/cluster.py +94 -1
- pulumi_gcp/alloydb/outputs.py +79 -0
- pulumi_gcp/assuredworkloads/workload.py +135 -16
- pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
- pulumi_gcp/backupdisasterrecovery/backup_vault.py +1203 -0
- pulumi_gcp/bigquery/_inputs.py +33 -0
- pulumi_gcp/bigquery/data_transfer_config.py +134 -6
- pulumi_gcp/bigquery/outputs.py +36 -0
- pulumi_gcp/bigqueryanalyticshub/_inputs.py +169 -7
- pulumi_gcp/bigqueryanalyticshub/data_exchange.py +96 -3
- pulumi_gcp/bigqueryanalyticshub/listing.py +114 -0
- pulumi_gcp/bigqueryanalyticshub/outputs.py +138 -5
- pulumi_gcp/bigtable/_inputs.py +21 -1
- pulumi_gcp/bigtable/outputs.py +13 -1
- pulumi_gcp/bigtable/table.py +34 -0
- pulumi_gcp/certificateauthority/authority.py +14 -7
- pulumi_gcp/certificatemanager/__init__.py +1 -0
- pulumi_gcp/certificatemanager/certificate.py +28 -0
- pulumi_gcp/certificatemanager/get_certificates.py +150 -0
- pulumi_gcp/certificatemanager/outputs.py +322 -0
- pulumi_gcp/cloudbuild/_inputs.py +6 -6
- pulumi_gcp/cloudbuild/outputs.py +4 -4
- pulumi_gcp/cloudrun/_inputs.py +6 -12
- pulumi_gcp/cloudrun/outputs.py +8 -16
- pulumi_gcp/cloudrunv2/_inputs.py +72 -15
- pulumi_gcp/cloudrunv2/outputs.py +82 -16
- pulumi_gcp/cloudrunv2/service.py +50 -4
- pulumi_gcp/cloudtasks/_inputs.py +630 -0
- pulumi_gcp/cloudtasks/outputs.py +479 -0
- pulumi_gcp/cloudtasks/queue.py +238 -0
- pulumi_gcp/compute/_inputs.py +129 -9
- pulumi_gcp/compute/get_instance.py +1 -1
- pulumi_gcp/compute/health_check.py +114 -0
- pulumi_gcp/compute/instance.py +86 -4
- pulumi_gcp/compute/instance_template.py +66 -0
- pulumi_gcp/compute/interconnect.py +28 -21
- pulumi_gcp/compute/node_template.py +93 -0
- pulumi_gcp/compute/outputs.py +108 -6
- pulumi_gcp/compute/target_https_proxy.py +28 -0
- pulumi_gcp/container/_inputs.py +140 -3
- pulumi_gcp/container/attached_cluster.py +7 -7
- pulumi_gcp/container/outputs.py +174 -2
- pulumi_gcp/databasemigrationservice/_inputs.py +176 -148
- pulumi_gcp/databasemigrationservice/connection_profile.py +206 -0
- pulumi_gcp/databasemigrationservice/outputs.py +109 -87
- pulumi_gcp/dataloss/_inputs.py +353 -1
- pulumi_gcp/dataloss/outputs.py +274 -3
- pulumi_gcp/dataproc/_inputs.py +27 -27
- pulumi_gcp/dataproc/outputs.py +18 -18
- pulumi_gcp/datastream/_inputs.py +69 -1
- pulumi_gcp/datastream/outputs.py +44 -2
- pulumi_gcp/datastream/stream.py +194 -7
- pulumi_gcp/discoveryengine/_inputs.py +188 -0
- pulumi_gcp/discoveryengine/data_store.py +14 -14
- pulumi_gcp/discoveryengine/outputs.py +153 -1
- pulumi_gcp/firebase/database_instance.py +7 -7
- pulumi_gcp/gkehub/_inputs.py +25 -1
- pulumi_gcp/gkehub/feature_membership.py +12 -6
- pulumi_gcp/gkehub/outputs.py +17 -1
- pulumi_gcp/iam/_inputs.py +196 -0
- pulumi_gcp/iam/get_workload_identity_pool_provider.py +13 -3
- pulumi_gcp/iam/outputs.py +295 -0
- pulumi_gcp/iam/workload_identity_pool_provider.py +164 -3
- pulumi_gcp/kms/__init__.py +2 -0
- pulumi_gcp/kms/autokey_config.py +10 -2
- pulumi_gcp/kms/get_crypto_key_latest_version.py +222 -0
- pulumi_gcp/kms/get_crypto_key_versions.py +175 -0
- pulumi_gcp/kms/outputs.py +164 -0
- pulumi_gcp/netapp/active_directory.py +6 -6
- pulumi_gcp/netapp/backup.py +6 -6
- pulumi_gcp/netapp/backup_policy.py +6 -6
- pulumi_gcp/netapp/backup_vault.py +6 -6
- pulumi_gcp/netapp/storage_pool.py +4 -4
- pulumi_gcp/netapp/volume.py +7 -0
- pulumi_gcp/networkconnectivity/_inputs.py +21 -1
- pulumi_gcp/networkconnectivity/outputs.py +15 -1
- pulumi_gcp/networkconnectivity/spoke.py +8 -0
- pulumi_gcp/networksecurity/client_tls_policy.py +24 -22
- pulumi_gcp/networksecurity/server_tls_policy.py +20 -32
- pulumi_gcp/organizations/get_project.py +13 -3
- pulumi_gcp/organizations/project.py +88 -3
- pulumi_gcp/parallelstore/instance.py +121 -121
- pulumi_gcp/projects/iam_member_remove.py +26 -0
- pulumi_gcp/projects/usage_export_bucket.py +38 -0
- pulumi_gcp/pubsub/_inputs.py +40 -0
- pulumi_gcp/pubsub/outputs.py +51 -1
- pulumi_gcp/pubsub/subscription.py +6 -0
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/redis/_inputs.py +419 -0
- pulumi_gcp/redis/cluster.py +123 -0
- pulumi_gcp/redis/outputs.py +315 -0
- pulumi_gcp/securitycenter/__init__.py +2 -0
- pulumi_gcp/securitycenter/v2_folder_scc_big_query_export.py +857 -0
- pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +4 -4
- pulumi_gcp/securitycenter/v2_project_scc_big_query_export.py +796 -0
- {pulumi_gcp-8.0.0rc0.dist-info → pulumi_gcp-8.1.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.0.0rc0.dist-info → pulumi_gcp-8.1.0.dist-info}/RECORD +101 -95
- {pulumi_gcp-8.0.0rc0.dist-info → pulumi_gcp-8.1.0.dist-info}/WHEEL +1 -1
- {pulumi_gcp-8.0.0rc0.dist-info → pulumi_gcp-8.1.0.dist-info}/top_level.txt +0 -0
@@ -13,6 +13,8 @@ if sys.version_info >= (3, 11):
|
|
13
13
|
else:
|
14
14
|
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
15
15
|
from .. import _utilities
|
16
|
+
from . import outputs
|
17
|
+
from ._inputs import *
|
16
18
|
|
17
19
|
__all__ = ['DataExchangeArgs', 'DataExchange']
|
18
20
|
|
@@ -26,7 +28,8 @@ class DataExchangeArgs:
|
|
26
28
|
documentation: Optional[pulumi.Input[str]] = None,
|
27
29
|
icon: Optional[pulumi.Input[str]] = None,
|
28
30
|
primary_contact: Optional[pulumi.Input[str]] = None,
|
29
|
-
project: Optional[pulumi.Input[str]] = None
|
31
|
+
project: Optional[pulumi.Input[str]] = None,
|
32
|
+
sharing_environment_config: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']] = None):
|
30
33
|
"""
|
31
34
|
The set of arguments for constructing a DataExchange resource.
|
32
35
|
:param pulumi.Input[str] data_exchange_id: The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
|
@@ -41,6 +44,9 @@ class DataExchangeArgs:
|
|
41
44
|
:param pulumi.Input[str] primary_contact: Email or URL of the primary point of contact of the data exchange.
|
42
45
|
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
43
46
|
If it is not provided, the provider project is used.
|
47
|
+
:param pulumi.Input['DataExchangeSharingEnvironmentConfigArgs'] sharing_environment_config: Configurable data sharing environment option for a data exchange.
|
48
|
+
This field is required for data clean room exchanges.
|
49
|
+
Structure is documented below.
|
44
50
|
"""
|
45
51
|
pulumi.set(__self__, "data_exchange_id", data_exchange_id)
|
46
52
|
pulumi.set(__self__, "display_name", display_name)
|
@@ -55,6 +61,8 @@ class DataExchangeArgs:
|
|
55
61
|
pulumi.set(__self__, "primary_contact", primary_contact)
|
56
62
|
if project is not None:
|
57
63
|
pulumi.set(__self__, "project", project)
|
64
|
+
if sharing_environment_config is not None:
|
65
|
+
pulumi.set(__self__, "sharing_environment_config", sharing_environment_config)
|
58
66
|
|
59
67
|
@property
|
60
68
|
@pulumi.getter(name="dataExchangeId")
|
@@ -156,6 +164,20 @@ class DataExchangeArgs:
|
|
156
164
|
def project(self, value: Optional[pulumi.Input[str]]):
|
157
165
|
pulumi.set(self, "project", value)
|
158
166
|
|
167
|
+
@property
|
168
|
+
@pulumi.getter(name="sharingEnvironmentConfig")
|
169
|
+
def sharing_environment_config(self) -> Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']]:
|
170
|
+
"""
|
171
|
+
Configurable data sharing environment option for a data exchange.
|
172
|
+
This field is required for data clean room exchanges.
|
173
|
+
Structure is documented below.
|
174
|
+
"""
|
175
|
+
return pulumi.get(self, "sharing_environment_config")
|
176
|
+
|
177
|
+
@sharing_environment_config.setter
|
178
|
+
def sharing_environment_config(self, value: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']]):
|
179
|
+
pulumi.set(self, "sharing_environment_config", value)
|
180
|
+
|
159
181
|
|
160
182
|
@pulumi.input_type
|
161
183
|
class _DataExchangeState:
|
@@ -169,7 +191,8 @@ class _DataExchangeState:
|
|
169
191
|
location: Optional[pulumi.Input[str]] = None,
|
170
192
|
name: Optional[pulumi.Input[str]] = None,
|
171
193
|
primary_contact: Optional[pulumi.Input[str]] = None,
|
172
|
-
project: Optional[pulumi.Input[str]] = None
|
194
|
+
project: Optional[pulumi.Input[str]] = None,
|
195
|
+
sharing_environment_config: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']] = None):
|
173
196
|
"""
|
174
197
|
Input properties used for looking up and filtering DataExchange resources.
|
175
198
|
:param pulumi.Input[str] data_exchange_id: The ID of the data exchange. Must contain only Unicode letters, numbers (0-9), underscores (_). Should not use characters that require URL-escaping, or characters outside of ASCII, spaces.
|
@@ -187,6 +210,9 @@ class _DataExchangeState:
|
|
187
210
|
:param pulumi.Input[str] primary_contact: Email or URL of the primary point of contact of the data exchange.
|
188
211
|
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
189
212
|
If it is not provided, the provider project is used.
|
213
|
+
:param pulumi.Input['DataExchangeSharingEnvironmentConfigArgs'] sharing_environment_config: Configurable data sharing environment option for a data exchange.
|
214
|
+
This field is required for data clean room exchanges.
|
215
|
+
Structure is documented below.
|
190
216
|
"""
|
191
217
|
if data_exchange_id is not None:
|
192
218
|
pulumi.set(__self__, "data_exchange_id", data_exchange_id)
|
@@ -208,6 +234,8 @@ class _DataExchangeState:
|
|
208
234
|
pulumi.set(__self__, "primary_contact", primary_contact)
|
209
235
|
if project is not None:
|
210
236
|
pulumi.set(__self__, "project", project)
|
237
|
+
if sharing_environment_config is not None:
|
238
|
+
pulumi.set(__self__, "sharing_environment_config", sharing_environment_config)
|
211
239
|
|
212
240
|
@property
|
213
241
|
@pulumi.getter(name="dataExchangeId")
|
@@ -334,6 +362,20 @@ class _DataExchangeState:
|
|
334
362
|
def project(self, value: Optional[pulumi.Input[str]]):
|
335
363
|
pulumi.set(self, "project", value)
|
336
364
|
|
365
|
+
@property
|
366
|
+
@pulumi.getter(name="sharingEnvironmentConfig")
|
367
|
+
def sharing_environment_config(self) -> Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']]:
|
368
|
+
"""
|
369
|
+
Configurable data sharing environment option for a data exchange.
|
370
|
+
This field is required for data clean room exchanges.
|
371
|
+
Structure is documented below.
|
372
|
+
"""
|
373
|
+
return pulumi.get(self, "sharing_environment_config")
|
374
|
+
|
375
|
+
@sharing_environment_config.setter
|
376
|
+
def sharing_environment_config(self, value: Optional[pulumi.Input['DataExchangeSharingEnvironmentConfigArgs']]):
|
377
|
+
pulumi.set(self, "sharing_environment_config", value)
|
378
|
+
|
337
379
|
|
338
380
|
class DataExchange(pulumi.CustomResource):
|
339
381
|
@overload
|
@@ -348,6 +390,7 @@ class DataExchange(pulumi.CustomResource):
|
|
348
390
|
location: Optional[pulumi.Input[str]] = None,
|
349
391
|
primary_contact: Optional[pulumi.Input[str]] = None,
|
350
392
|
project: Optional[pulumi.Input[str]] = None,
|
393
|
+
sharing_environment_config: Optional[pulumi.Input[Union['DataExchangeSharingEnvironmentConfigArgs', 'DataExchangeSharingEnvironmentConfigArgsDict']]] = None,
|
351
394
|
__props__=None):
|
352
395
|
"""
|
353
396
|
A Bigquery Analytics Hub data exchange
|
@@ -372,6 +415,21 @@ class DataExchange(pulumi.CustomResource):
|
|
372
415
|
display_name="my_data_exchange",
|
373
416
|
description="example data exchange")
|
374
417
|
```
|
418
|
+
### Bigquery Analyticshub Data Exchange Dcr
|
419
|
+
|
420
|
+
```python
|
421
|
+
import pulumi
|
422
|
+
import pulumi_gcp as gcp
|
423
|
+
|
424
|
+
data_exchange = gcp.bigqueryanalyticshub.DataExchange("data_exchange",
|
425
|
+
location="US",
|
426
|
+
data_exchange_id="dcr_data_exchange",
|
427
|
+
display_name="dcr_data_exchange",
|
428
|
+
description="example dcr data exchange",
|
429
|
+
sharing_environment_config={
|
430
|
+
"dcr_exchange_config": {},
|
431
|
+
})
|
432
|
+
```
|
375
433
|
|
376
434
|
## Import
|
377
435
|
|
@@ -417,6 +475,9 @@ class DataExchange(pulumi.CustomResource):
|
|
417
475
|
:param pulumi.Input[str] primary_contact: Email or URL of the primary point of contact of the data exchange.
|
418
476
|
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
419
477
|
If it is not provided, the provider project is used.
|
478
|
+
:param pulumi.Input[Union['DataExchangeSharingEnvironmentConfigArgs', 'DataExchangeSharingEnvironmentConfigArgsDict']] sharing_environment_config: Configurable data sharing environment option for a data exchange.
|
479
|
+
This field is required for data clean room exchanges.
|
480
|
+
Structure is documented below.
|
420
481
|
"""
|
421
482
|
...
|
422
483
|
@overload
|
@@ -447,6 +508,21 @@ class DataExchange(pulumi.CustomResource):
|
|
447
508
|
display_name="my_data_exchange",
|
448
509
|
description="example data exchange")
|
449
510
|
```
|
511
|
+
### Bigquery Analyticshub Data Exchange Dcr
|
512
|
+
|
513
|
+
```python
|
514
|
+
import pulumi
|
515
|
+
import pulumi_gcp as gcp
|
516
|
+
|
517
|
+
data_exchange = gcp.bigqueryanalyticshub.DataExchange("data_exchange",
|
518
|
+
location="US",
|
519
|
+
data_exchange_id="dcr_data_exchange",
|
520
|
+
display_name="dcr_data_exchange",
|
521
|
+
description="example dcr data exchange",
|
522
|
+
sharing_environment_config={
|
523
|
+
"dcr_exchange_config": {},
|
524
|
+
})
|
525
|
+
```
|
450
526
|
|
451
527
|
## Import
|
452
528
|
|
@@ -501,6 +577,7 @@ class DataExchange(pulumi.CustomResource):
|
|
501
577
|
location: Optional[pulumi.Input[str]] = None,
|
502
578
|
primary_contact: Optional[pulumi.Input[str]] = None,
|
503
579
|
project: Optional[pulumi.Input[str]] = None,
|
580
|
+
sharing_environment_config: Optional[pulumi.Input[Union['DataExchangeSharingEnvironmentConfigArgs', 'DataExchangeSharingEnvironmentConfigArgsDict']]] = None,
|
504
581
|
__props__=None):
|
505
582
|
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
506
583
|
if not isinstance(opts, pulumi.ResourceOptions):
|
@@ -524,6 +601,7 @@ class DataExchange(pulumi.CustomResource):
|
|
524
601
|
__props__.__dict__["location"] = location
|
525
602
|
__props__.__dict__["primary_contact"] = primary_contact
|
526
603
|
__props__.__dict__["project"] = project
|
604
|
+
__props__.__dict__["sharing_environment_config"] = sharing_environment_config
|
527
605
|
__props__.__dict__["listing_count"] = None
|
528
606
|
__props__.__dict__["name"] = None
|
529
607
|
super(DataExchange, __self__).__init__(
|
@@ -545,7 +623,8 @@ class DataExchange(pulumi.CustomResource):
|
|
545
623
|
location: Optional[pulumi.Input[str]] = None,
|
546
624
|
name: Optional[pulumi.Input[str]] = None,
|
547
625
|
primary_contact: Optional[pulumi.Input[str]] = None,
|
548
|
-
project: Optional[pulumi.Input[str]] = None
|
626
|
+
project: Optional[pulumi.Input[str]] = None,
|
627
|
+
sharing_environment_config: Optional[pulumi.Input[Union['DataExchangeSharingEnvironmentConfigArgs', 'DataExchangeSharingEnvironmentConfigArgsDict']]] = None) -> 'DataExchange':
|
549
628
|
"""
|
550
629
|
Get an existing DataExchange resource's state with the given name, id, and optional extra
|
551
630
|
properties used to qualify the lookup.
|
@@ -568,6 +647,9 @@ class DataExchange(pulumi.CustomResource):
|
|
568
647
|
:param pulumi.Input[str] primary_contact: Email or URL of the primary point of contact of the data exchange.
|
569
648
|
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
570
649
|
If it is not provided, the provider project is used.
|
650
|
+
:param pulumi.Input[Union['DataExchangeSharingEnvironmentConfigArgs', 'DataExchangeSharingEnvironmentConfigArgsDict']] sharing_environment_config: Configurable data sharing environment option for a data exchange.
|
651
|
+
This field is required for data clean room exchanges.
|
652
|
+
Structure is documented below.
|
571
653
|
"""
|
572
654
|
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
573
655
|
|
@@ -583,6 +665,7 @@ class DataExchange(pulumi.CustomResource):
|
|
583
665
|
__props__.__dict__["name"] = name
|
584
666
|
__props__.__dict__["primary_contact"] = primary_contact
|
585
667
|
__props__.__dict__["project"] = project
|
668
|
+
__props__.__dict__["sharing_environment_config"] = sharing_environment_config
|
586
669
|
return DataExchange(resource_name, opts=opts, __props__=__props__)
|
587
670
|
|
588
671
|
@property
|
@@ -670,3 +753,13 @@ class DataExchange(pulumi.CustomResource):
|
|
670
753
|
"""
|
671
754
|
return pulumi.get(self, "project")
|
672
755
|
|
756
|
+
@property
|
757
|
+
@pulumi.getter(name="sharingEnvironmentConfig")
|
758
|
+
def sharing_environment_config(self) -> pulumi.Output['outputs.DataExchangeSharingEnvironmentConfig']:
|
759
|
+
"""
|
760
|
+
Configurable data sharing environment option for a data exchange.
|
761
|
+
This field is required for data clean room exchanges.
|
762
|
+
Structure is documented below.
|
763
|
+
"""
|
764
|
+
return pulumi.get(self, "sharing_environment_config")
|
765
|
+
|
@@ -613,6 +613,63 @@ class Listing(pulumi.CustomResource):
|
|
613
613
|
"restrict_query_result": True,
|
614
614
|
})
|
615
615
|
```
|
616
|
+
### Bigquery Analyticshub Listing Dcr
|
617
|
+
|
618
|
+
```python
|
619
|
+
import pulumi
|
620
|
+
import pulumi_gcp as gcp
|
621
|
+
|
622
|
+
listing = gcp.bigqueryanalyticshub.DataExchange("listing",
|
623
|
+
location="US",
|
624
|
+
data_exchange_id="dcr_data_exchange",
|
625
|
+
display_name="dcr_data_exchange",
|
626
|
+
description="example dcr data exchange",
|
627
|
+
sharing_environment_config={
|
628
|
+
"dcr_exchange_config": {},
|
629
|
+
})
|
630
|
+
listing_dataset = gcp.bigquery.Dataset("listing",
|
631
|
+
dataset_id="dcr_listing",
|
632
|
+
friendly_name="dcr_listing",
|
633
|
+
description="example dcr data exchange",
|
634
|
+
location="US")
|
635
|
+
listing_table = gcp.bigquery.Table("listing",
|
636
|
+
deletion_protection=False,
|
637
|
+
table_id="dcr_listing",
|
638
|
+
dataset_id=listing_dataset.dataset_id,
|
639
|
+
schema=\"\"\"[
|
640
|
+
{
|
641
|
+
"name": "name",
|
642
|
+
"type": "STRING",
|
643
|
+
"mode": "NULLABLE"
|
644
|
+
},
|
645
|
+
{
|
646
|
+
"name": "post_abbr",
|
647
|
+
"type": "STRING",
|
648
|
+
"mode": "NULLABLE"
|
649
|
+
},
|
650
|
+
{
|
651
|
+
"name": "date",
|
652
|
+
"type": "DATE",
|
653
|
+
"mode": "NULLABLE"
|
654
|
+
}
|
655
|
+
]
|
656
|
+
\"\"\")
|
657
|
+
listing_listing = gcp.bigqueryanalyticshub.Listing("listing",
|
658
|
+
location="US",
|
659
|
+
data_exchange_id=listing.data_exchange_id,
|
660
|
+
listing_id="dcr_listing",
|
661
|
+
display_name="dcr_listing",
|
662
|
+
description="example dcr data exchange",
|
663
|
+
bigquery_dataset={
|
664
|
+
"dataset": listing_dataset.id,
|
665
|
+
"selected_resources": [{
|
666
|
+
"table": listing_table.id,
|
667
|
+
}],
|
668
|
+
},
|
669
|
+
restricted_export_config={
|
670
|
+
"enabled": True,
|
671
|
+
})
|
672
|
+
```
|
616
673
|
|
617
674
|
## Import
|
618
675
|
|
@@ -730,6 +787,63 @@ class Listing(pulumi.CustomResource):
|
|
730
787
|
"restrict_query_result": True,
|
731
788
|
})
|
732
789
|
```
|
790
|
+
### Bigquery Analyticshub Listing Dcr
|
791
|
+
|
792
|
+
```python
|
793
|
+
import pulumi
|
794
|
+
import pulumi_gcp as gcp
|
795
|
+
|
796
|
+
listing = gcp.bigqueryanalyticshub.DataExchange("listing",
|
797
|
+
location="US",
|
798
|
+
data_exchange_id="dcr_data_exchange",
|
799
|
+
display_name="dcr_data_exchange",
|
800
|
+
description="example dcr data exchange",
|
801
|
+
sharing_environment_config={
|
802
|
+
"dcr_exchange_config": {},
|
803
|
+
})
|
804
|
+
listing_dataset = gcp.bigquery.Dataset("listing",
|
805
|
+
dataset_id="dcr_listing",
|
806
|
+
friendly_name="dcr_listing",
|
807
|
+
description="example dcr data exchange",
|
808
|
+
location="US")
|
809
|
+
listing_table = gcp.bigquery.Table("listing",
|
810
|
+
deletion_protection=False,
|
811
|
+
table_id="dcr_listing",
|
812
|
+
dataset_id=listing_dataset.dataset_id,
|
813
|
+
schema=\"\"\"[
|
814
|
+
{
|
815
|
+
"name": "name",
|
816
|
+
"type": "STRING",
|
817
|
+
"mode": "NULLABLE"
|
818
|
+
},
|
819
|
+
{
|
820
|
+
"name": "post_abbr",
|
821
|
+
"type": "STRING",
|
822
|
+
"mode": "NULLABLE"
|
823
|
+
},
|
824
|
+
{
|
825
|
+
"name": "date",
|
826
|
+
"type": "DATE",
|
827
|
+
"mode": "NULLABLE"
|
828
|
+
}
|
829
|
+
]
|
830
|
+
\"\"\")
|
831
|
+
listing_listing = gcp.bigqueryanalyticshub.Listing("listing",
|
832
|
+
location="US",
|
833
|
+
data_exchange_id=listing.data_exchange_id,
|
834
|
+
listing_id="dcr_listing",
|
835
|
+
display_name="dcr_listing",
|
836
|
+
description="example dcr data exchange",
|
837
|
+
bigquery_dataset={
|
838
|
+
"dataset": listing_dataset.id,
|
839
|
+
"selected_resources": [{
|
840
|
+
"table": listing_table.id,
|
841
|
+
}],
|
842
|
+
},
|
843
|
+
restricted_export_config={
|
844
|
+
"enabled": True,
|
845
|
+
})
|
846
|
+
```
|
733
847
|
|
734
848
|
## Import
|
735
849
|
|
@@ -13,11 +13,16 @@ if sys.version_info >= (3, 11):
|
|
13
13
|
else:
|
14
14
|
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
15
15
|
from .. import _utilities
|
16
|
+
from . import outputs
|
16
17
|
|
17
18
|
__all__ = [
|
18
19
|
'DataExchangeIamBindingCondition',
|
19
20
|
'DataExchangeIamMemberCondition',
|
21
|
+
'DataExchangeSharingEnvironmentConfig',
|
22
|
+
'DataExchangeSharingEnvironmentConfigDcrExchangeConfig',
|
23
|
+
'DataExchangeSharingEnvironmentConfigDefaultExchangeConfig',
|
20
24
|
'ListingBigqueryDataset',
|
25
|
+
'ListingBigqueryDatasetSelectedResource',
|
21
26
|
'ListingDataProvider',
|
22
27
|
'ListingIamBindingCondition',
|
23
28
|
'ListingIamMemberCondition',
|
@@ -79,26 +84,138 @@ class DataExchangeIamMemberCondition(dict):
|
|
79
84
|
return pulumi.get(self, "description")
|
80
85
|
|
81
86
|
|
87
|
+
@pulumi.output_type
|
88
|
+
class DataExchangeSharingEnvironmentConfig(dict):
|
89
|
+
@staticmethod
|
90
|
+
def __key_warning(key: str):
|
91
|
+
suggest = None
|
92
|
+
if key == "dcrExchangeConfig":
|
93
|
+
suggest = "dcr_exchange_config"
|
94
|
+
elif key == "defaultExchangeConfig":
|
95
|
+
suggest = "default_exchange_config"
|
96
|
+
|
97
|
+
if suggest:
|
98
|
+
pulumi.log.warn(f"Key '{key}' not found in DataExchangeSharingEnvironmentConfig. Access the value via the '{suggest}' property getter instead.")
|
99
|
+
|
100
|
+
def __getitem__(self, key: str) -> Any:
|
101
|
+
DataExchangeSharingEnvironmentConfig.__key_warning(key)
|
102
|
+
return super().__getitem__(key)
|
103
|
+
|
104
|
+
def get(self, key: str, default = None) -> Any:
|
105
|
+
DataExchangeSharingEnvironmentConfig.__key_warning(key)
|
106
|
+
return super().get(key, default)
|
107
|
+
|
108
|
+
def __init__(__self__, *,
|
109
|
+
dcr_exchange_config: Optional['outputs.DataExchangeSharingEnvironmentConfigDcrExchangeConfig'] = None,
|
110
|
+
default_exchange_config: Optional['outputs.DataExchangeSharingEnvironmentConfigDefaultExchangeConfig'] = None):
|
111
|
+
"""
|
112
|
+
:param 'DataExchangeSharingEnvironmentConfigDcrExchangeConfigArgs' dcr_exchange_config: Data Clean Room (DCR), used for privacy-safe and secured data sharing.
|
113
|
+
:param 'DataExchangeSharingEnvironmentConfigDefaultExchangeConfigArgs' default_exchange_config: Default Analytics Hub data exchange, used for secured data sharing.
|
114
|
+
"""
|
115
|
+
if dcr_exchange_config is not None:
|
116
|
+
pulumi.set(__self__, "dcr_exchange_config", dcr_exchange_config)
|
117
|
+
if default_exchange_config is not None:
|
118
|
+
pulumi.set(__self__, "default_exchange_config", default_exchange_config)
|
119
|
+
|
120
|
+
@property
|
121
|
+
@pulumi.getter(name="dcrExchangeConfig")
|
122
|
+
def dcr_exchange_config(self) -> Optional['outputs.DataExchangeSharingEnvironmentConfigDcrExchangeConfig']:
|
123
|
+
"""
|
124
|
+
Data Clean Room (DCR), used for privacy-safe and secured data sharing.
|
125
|
+
"""
|
126
|
+
return pulumi.get(self, "dcr_exchange_config")
|
127
|
+
|
128
|
+
@property
|
129
|
+
@pulumi.getter(name="defaultExchangeConfig")
|
130
|
+
def default_exchange_config(self) -> Optional['outputs.DataExchangeSharingEnvironmentConfigDefaultExchangeConfig']:
|
131
|
+
"""
|
132
|
+
Default Analytics Hub data exchange, used for secured data sharing.
|
133
|
+
"""
|
134
|
+
return pulumi.get(self, "default_exchange_config")
|
135
|
+
|
136
|
+
|
137
|
+
@pulumi.output_type
|
138
|
+
class DataExchangeSharingEnvironmentConfigDcrExchangeConfig(dict):
|
139
|
+
def __init__(__self__):
|
140
|
+
pass
|
141
|
+
|
142
|
+
|
143
|
+
@pulumi.output_type
|
144
|
+
class DataExchangeSharingEnvironmentConfigDefaultExchangeConfig(dict):
|
145
|
+
def __init__(__self__):
|
146
|
+
pass
|
147
|
+
|
148
|
+
|
82
149
|
@pulumi.output_type
|
83
150
|
class ListingBigqueryDataset(dict):
|
151
|
+
@staticmethod
|
152
|
+
def __key_warning(key: str):
|
153
|
+
suggest = None
|
154
|
+
if key == "selectedResources":
|
155
|
+
suggest = "selected_resources"
|
156
|
+
|
157
|
+
if suggest:
|
158
|
+
pulumi.log.warn(f"Key '{key}' not found in ListingBigqueryDataset. Access the value via the '{suggest}' property getter instead.")
|
159
|
+
|
160
|
+
def __getitem__(self, key: str) -> Any:
|
161
|
+
ListingBigqueryDataset.__key_warning(key)
|
162
|
+
return super().__getitem__(key)
|
163
|
+
|
164
|
+
def get(self, key: str, default = None) -> Any:
|
165
|
+
ListingBigqueryDataset.__key_warning(key)
|
166
|
+
return super().get(key, default)
|
167
|
+
|
84
168
|
def __init__(__self__, *,
|
85
|
-
dataset: str
|
169
|
+
dataset: str,
|
170
|
+
selected_resources: Optional[Sequence['outputs.ListingBigqueryDatasetSelectedResource']] = None):
|
86
171
|
"""
|
87
172
|
:param str dataset: Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123
|
88
|
-
|
89
|
-
|
173
|
+
:param Sequence['ListingBigqueryDatasetSelectedResourceArgs'] selected_resources: Resource in this dataset that is selectively shared. This field is required for data clean room exchanges.
|
174
|
+
Structure is documented below.
|
90
175
|
"""
|
91
176
|
pulumi.set(__self__, "dataset", dataset)
|
177
|
+
if selected_resources is not None:
|
178
|
+
pulumi.set(__self__, "selected_resources", selected_resources)
|
92
179
|
|
93
180
|
@property
|
94
181
|
@pulumi.getter
|
95
182
|
def dataset(self) -> str:
|
96
183
|
"""
|
97
184
|
Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123
|
185
|
+
"""
|
186
|
+
return pulumi.get(self, "dataset")
|
187
|
+
|
188
|
+
@property
|
189
|
+
@pulumi.getter(name="selectedResources")
|
190
|
+
def selected_resources(self) -> Optional[Sequence['outputs.ListingBigqueryDatasetSelectedResource']]:
|
191
|
+
"""
|
192
|
+
Resource in this dataset that is selectively shared. This field is required for data clean room exchanges.
|
193
|
+
Structure is documented below.
|
194
|
+
"""
|
195
|
+
return pulumi.get(self, "selected_resources")
|
196
|
+
|
197
|
+
|
198
|
+
@pulumi.output_type
|
199
|
+
class ListingBigqueryDatasetSelectedResource(dict):
|
200
|
+
def __init__(__self__, *,
|
201
|
+
table: Optional[str] = None):
|
202
|
+
"""
|
203
|
+
:param str table: Format: For table: projects/{projectId}/datasets/{datasetId}/tables/{tableId} Example:"projects/test_project/datasets/test_dataset/tables/test_table"
|
204
|
+
|
205
|
+
- - -
|
206
|
+
"""
|
207
|
+
if table is not None:
|
208
|
+
pulumi.set(__self__, "table", table)
|
209
|
+
|
210
|
+
@property
|
211
|
+
@pulumi.getter
|
212
|
+
def table(self) -> Optional[str]:
|
213
|
+
"""
|
214
|
+
Format: For table: projects/{projectId}/datasets/{datasetId}/tables/{tableId} Example:"projects/test_project/datasets/test_dataset/tables/test_table"
|
98
215
|
|
99
216
|
- - -
|
100
217
|
"""
|
101
|
-
return pulumi.get(self, "
|
218
|
+
return pulumi.get(self, "table")
|
102
219
|
|
103
220
|
|
104
221
|
@pulumi.output_type
|
@@ -254,7 +371,9 @@ class ListingRestrictedExportConfig(dict):
|
|
254
371
|
@staticmethod
|
255
372
|
def __key_warning(key: str):
|
256
373
|
suggest = None
|
257
|
-
if key == "
|
374
|
+
if key == "restrictDirectTableAccess":
|
375
|
+
suggest = "restrict_direct_table_access"
|
376
|
+
elif key == "restrictQueryResult":
|
258
377
|
suggest = "restrict_query_result"
|
259
378
|
|
260
379
|
if suggest:
|
@@ -270,13 +389,18 @@ class ListingRestrictedExportConfig(dict):
|
|
270
389
|
|
271
390
|
def __init__(__self__, *,
|
272
391
|
enabled: Optional[bool] = None,
|
392
|
+
restrict_direct_table_access: Optional[bool] = None,
|
273
393
|
restrict_query_result: Optional[bool] = None):
|
274
394
|
"""
|
275
395
|
:param bool enabled: If true, enable restricted export.
|
396
|
+
:param bool restrict_direct_table_access: (Output)
|
397
|
+
If true, restrict direct table access(read api/tabledata.list) on linked table.
|
276
398
|
:param bool restrict_query_result: If true, restrict export of query result derived from restricted linked dataset table.
|
277
399
|
"""
|
278
400
|
if enabled is not None:
|
279
401
|
pulumi.set(__self__, "enabled", enabled)
|
402
|
+
if restrict_direct_table_access is not None:
|
403
|
+
pulumi.set(__self__, "restrict_direct_table_access", restrict_direct_table_access)
|
280
404
|
if restrict_query_result is not None:
|
281
405
|
pulumi.set(__self__, "restrict_query_result", restrict_query_result)
|
282
406
|
|
@@ -288,6 +412,15 @@ class ListingRestrictedExportConfig(dict):
|
|
288
412
|
"""
|
289
413
|
return pulumi.get(self, "enabled")
|
290
414
|
|
415
|
+
@property
|
416
|
+
@pulumi.getter(name="restrictDirectTableAccess")
|
417
|
+
def restrict_direct_table_access(self) -> Optional[bool]:
|
418
|
+
"""
|
419
|
+
(Output)
|
420
|
+
If true, restrict direct table access(read api/tabledata.list) on linked table.
|
421
|
+
"""
|
422
|
+
return pulumi.get(self, "restrict_direct_table_access")
|
423
|
+
|
291
424
|
@property
|
292
425
|
@pulumi.getter(name="restrictQueryResult")
|
293
426
|
def restrict_query_result(self) -> Optional[bool]:
|
pulumi_gcp/bigtable/_inputs.py
CHANGED
@@ -714,17 +714,25 @@ if not MYPY:
|
|
714
714
|
"""
|
715
715
|
The name of the column family.
|
716
716
|
"""
|
717
|
+
type: NotRequired[pulumi.Input[str]]
|
718
|
+
"""
|
719
|
+
The type of the column family.
|
720
|
+
"""
|
717
721
|
elif False:
|
718
722
|
TableColumnFamilyArgsDict: TypeAlias = Mapping[str, Any]
|
719
723
|
|
720
724
|
@pulumi.input_type
|
721
725
|
class TableColumnFamilyArgs:
|
722
726
|
def __init__(__self__, *,
|
723
|
-
family: pulumi.Input[str]
|
727
|
+
family: pulumi.Input[str],
|
728
|
+
type: Optional[pulumi.Input[str]] = None):
|
724
729
|
"""
|
725
730
|
:param pulumi.Input[str] family: The name of the column family.
|
731
|
+
:param pulumi.Input[str] type: The type of the column family.
|
726
732
|
"""
|
727
733
|
pulumi.set(__self__, "family", family)
|
734
|
+
if type is not None:
|
735
|
+
pulumi.set(__self__, "type", type)
|
728
736
|
|
729
737
|
@property
|
730
738
|
@pulumi.getter
|
@@ -738,6 +746,18 @@ class TableColumnFamilyArgs:
|
|
738
746
|
def family(self, value: pulumi.Input[str]):
|
739
747
|
pulumi.set(self, "family", value)
|
740
748
|
|
749
|
+
@property
|
750
|
+
@pulumi.getter
|
751
|
+
def type(self) -> Optional[pulumi.Input[str]]:
|
752
|
+
"""
|
753
|
+
The type of the column family.
|
754
|
+
"""
|
755
|
+
return pulumi.get(self, "type")
|
756
|
+
|
757
|
+
@type.setter
|
758
|
+
def type(self, value: Optional[pulumi.Input[str]]):
|
759
|
+
pulumi.set(self, "type", value)
|
760
|
+
|
741
761
|
|
742
762
|
if not MYPY:
|
743
763
|
class TableIamBindingConditionArgsDict(TypedDict):
|
pulumi_gcp/bigtable/outputs.py
CHANGED
@@ -532,11 +532,15 @@ class TableAutomatedBackupPolicy(dict):
|
|
532
532
|
@pulumi.output_type
|
533
533
|
class TableColumnFamily(dict):
|
534
534
|
def __init__(__self__, *,
|
535
|
-
family: str
|
535
|
+
family: str,
|
536
|
+
type: Optional[str] = None):
|
536
537
|
"""
|
537
538
|
:param str family: The name of the column family.
|
539
|
+
:param str type: The type of the column family.
|
538
540
|
"""
|
539
541
|
pulumi.set(__self__, "family", family)
|
542
|
+
if type is not None:
|
543
|
+
pulumi.set(__self__, "type", type)
|
540
544
|
|
541
545
|
@property
|
542
546
|
@pulumi.getter
|
@@ -546,6 +550,14 @@ class TableColumnFamily(dict):
|
|
546
550
|
"""
|
547
551
|
return pulumi.get(self, "family")
|
548
552
|
|
553
|
+
@property
|
554
|
+
@pulumi.getter
|
555
|
+
def type(self) -> Optional[str]:
|
556
|
+
"""
|
557
|
+
The type of the column family.
|
558
|
+
"""
|
559
|
+
return pulumi.get(self, "type")
|
560
|
+
|
549
561
|
|
550
562
|
@pulumi.output_type
|
551
563
|
class TableIamBindingCondition(dict):
|
pulumi_gcp/bigtable/table.py
CHANGED
@@ -356,6 +356,23 @@ class Table(pulumi.CustomResource):
|
|
356
356
|
},
|
357
357
|
{
|
358
358
|
"family": "family-second",
|
359
|
+
"type": "intsum",
|
360
|
+
},
|
361
|
+
{
|
362
|
+
"family": "family-third",
|
363
|
+
"type": \"\"\" {
|
364
|
+
\\x09\\x09\\x09\\x09\\x09"aggregateType": {
|
365
|
+
\\x09\\x09\\x09\\x09\\x09\\x09"max": {},
|
366
|
+
\\x09\\x09\\x09\\x09\\x09\\x09"inputType": {
|
367
|
+
\\x09\\x09\\x09\\x09\\x09\\x09\\x09"int64Type": {
|
368
|
+
\\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09"encoding": {
|
369
|
+
\\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09"bigEndianBytes": {}
|
370
|
+
\\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09}
|
371
|
+
\\x09\\x09\\x09\\x09\\x09\\x09\\x09}
|
372
|
+
\\x09\\x09\\x09\\x09\\x09\\x09}
|
373
|
+
\\x09\\x09\\x09\\x09\\x09}
|
374
|
+
\\x09\\x09\\x09\\x09}
|
375
|
+
\"\"\",
|
359
376
|
},
|
360
377
|
],
|
361
378
|
change_stream_retention="24h0m0s",
|
@@ -446,6 +463,23 @@ class Table(pulumi.CustomResource):
|
|
446
463
|
},
|
447
464
|
{
|
448
465
|
"family": "family-second",
|
466
|
+
"type": "intsum",
|
467
|
+
},
|
468
|
+
{
|
469
|
+
"family": "family-third",
|
470
|
+
"type": \"\"\" {
|
471
|
+
\\x09\\x09\\x09\\x09\\x09"aggregateType": {
|
472
|
+
\\x09\\x09\\x09\\x09\\x09\\x09"max": {},
|
473
|
+
\\x09\\x09\\x09\\x09\\x09\\x09"inputType": {
|
474
|
+
\\x09\\x09\\x09\\x09\\x09\\x09\\x09"int64Type": {
|
475
|
+
\\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09"encoding": {
|
476
|
+
\\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09"bigEndianBytes": {}
|
477
|
+
\\x09\\x09\\x09\\x09\\x09\\x09\\x09\\x09}
|
478
|
+
\\x09\\x09\\x09\\x09\\x09\\x09\\x09}
|
479
|
+
\\x09\\x09\\x09\\x09\\x09\\x09}
|
480
|
+
\\x09\\x09\\x09\\x09\\x09}
|
481
|
+
\\x09\\x09\\x09\\x09}
|
482
|
+
\"\"\",
|
449
483
|
},
|
450
484
|
],
|
451
485
|
change_stream_retention="24h0m0s",
|