pulumi-gcp 8.39.0a1752907636__py3-none-any.whl → 8.39.0a1753206228__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 (36) hide show
  1. pulumi_gcp/__init__.py +16 -0
  2. pulumi_gcp/apigee/_inputs.py +62 -0
  3. pulumi_gcp/apigee/instance.py +63 -0
  4. pulumi_gcp/apigee/outputs.py +37 -0
  5. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  6. pulumi_gcp/backupdisasterrecovery/service_config.py +297 -0
  7. pulumi_gcp/bigqueryanalyticshub/__init__.py +1 -0
  8. pulumi_gcp/bigqueryanalyticshub/_inputs.py +355 -0
  9. pulumi_gcp/bigqueryanalyticshub/data_exchange_subscription.py +1082 -0
  10. pulumi_gcp/bigqueryanalyticshub/listing.py +116 -0
  11. pulumi_gcp/bigqueryanalyticshub/outputs.py +287 -0
  12. pulumi_gcp/compute/__init__.py +1 -0
  13. pulumi_gcp/compute/_inputs.py +699 -19
  14. pulumi_gcp/compute/firewall.py +54 -0
  15. pulumi_gcp/compute/future_reservation.py +124 -0
  16. pulumi_gcp/compute/get_network_attachment.py +288 -0
  17. pulumi_gcp/compute/get_region_disk.py +23 -1
  18. pulumi_gcp/compute/get_reservation.py +45 -1
  19. pulumi_gcp/compute/interconnect.py +108 -0
  20. pulumi_gcp/compute/outputs.py +734 -15
  21. pulumi_gcp/compute/region_disk.py +115 -0
  22. pulumi_gcp/compute/reservation.py +449 -0
  23. pulumi_gcp/firebase/hosting_site.py +50 -2
  24. pulumi_gcp/firestore/__init__.py +1 -0
  25. pulumi_gcp/firestore/database.py +117 -1
  26. pulumi_gcp/firestore/get_document.py +234 -0
  27. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +12 -0
  28. pulumi_gcp/networksecurity/backend_authentication_config.py +12 -0
  29. pulumi_gcp/pulumi-plugin.json +1 -1
  30. pulumi_gcp/storage/bucket_object.py +47 -0
  31. pulumi_gcp/storage/get_bucket_object.py +12 -1
  32. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  33. {pulumi_gcp-8.39.0a1752907636.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/METADATA +1 -1
  34. {pulumi_gcp-8.39.0a1752907636.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/RECORD +36 -32
  35. {pulumi_gcp-8.39.0a1752907636.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/WHEEL +0 -0
  36. {pulumi_gcp-8.39.0a1752907636.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1082 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins
6
+ import copy
7
+ import warnings
8
+ import sys
9
+ import pulumi
10
+ import pulumi.runtime
11
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
12
+ if sys.version_info >= (3, 11):
13
+ from typing import NotRequired, TypedDict, TypeAlias
14
+ else:
15
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
16
+ from .. import _utilities
17
+ from . import outputs
18
+ from ._inputs import *
19
+
20
+ __all__ = ['DataExchangeSubscriptionArgs', 'DataExchangeSubscription']
21
+
22
+ @pulumi.input_type
23
+ class DataExchangeSubscriptionArgs:
24
+ def __init__(__self__, *,
25
+ data_exchange_id: pulumi.Input[builtins.str],
26
+ data_exchange_location: pulumi.Input[builtins.str],
27
+ data_exchange_project: pulumi.Input[builtins.str],
28
+ location: pulumi.Input[builtins.str],
29
+ subscription_id: pulumi.Input[builtins.str],
30
+ destination_dataset: Optional[pulumi.Input['DataExchangeSubscriptionDestinationDatasetArgs']] = None,
31
+ project: Optional[pulumi.Input[builtins.str]] = None,
32
+ refresh_policy: Optional[pulumi.Input[builtins.str]] = None,
33
+ subscriber_contact: Optional[pulumi.Input[builtins.str]] = None):
34
+ """
35
+ The set of arguments for constructing a DataExchangeSubscription resource.
36
+ :param pulumi.Input[builtins.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.
37
+ :param pulumi.Input[builtins.str] data_exchange_location: The name of the location of the Data Exchange.
38
+ :param pulumi.Input[builtins.str] data_exchange_project: The ID of the Google Cloud project where the Data Exchange is located.
39
+ :param pulumi.Input[builtins.str] location: The geographic location where the Subscription (and its linked dataset) should reside.
40
+ This is the subscriber's desired location for the created resources.
41
+ See https://cloud.google.com/bigquery/docs/locations for supported locations.
42
+ :param pulumi.Input[builtins.str] subscription_id: Name of the subscription to create.
43
+ :param pulumi.Input['DataExchangeSubscriptionDestinationDatasetArgs'] destination_dataset: BigQuery destination dataset to create for the subscriber.
44
+ Structure is documented below.
45
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
46
+ If it is not provided, the provider project is used.
47
+ :param pulumi.Input[builtins.str] subscriber_contact: Email of the subscriber.
48
+ """
49
+ pulumi.set(__self__, "data_exchange_id", data_exchange_id)
50
+ pulumi.set(__self__, "data_exchange_location", data_exchange_location)
51
+ pulumi.set(__self__, "data_exchange_project", data_exchange_project)
52
+ pulumi.set(__self__, "location", location)
53
+ pulumi.set(__self__, "subscription_id", subscription_id)
54
+ if destination_dataset is not None:
55
+ pulumi.set(__self__, "destination_dataset", destination_dataset)
56
+ if project is not None:
57
+ pulumi.set(__self__, "project", project)
58
+ if refresh_policy is not None:
59
+ pulumi.set(__self__, "refresh_policy", refresh_policy)
60
+ if subscriber_contact is not None:
61
+ pulumi.set(__self__, "subscriber_contact", subscriber_contact)
62
+
63
+ @property
64
+ @pulumi.getter(name="dataExchangeId")
65
+ def data_exchange_id(self) -> pulumi.Input[builtins.str]:
66
+ """
67
+ 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.
68
+ """
69
+ return pulumi.get(self, "data_exchange_id")
70
+
71
+ @data_exchange_id.setter
72
+ def data_exchange_id(self, value: pulumi.Input[builtins.str]):
73
+ pulumi.set(self, "data_exchange_id", value)
74
+
75
+ @property
76
+ @pulumi.getter(name="dataExchangeLocation")
77
+ def data_exchange_location(self) -> pulumi.Input[builtins.str]:
78
+ """
79
+ The name of the location of the Data Exchange.
80
+ """
81
+ return pulumi.get(self, "data_exchange_location")
82
+
83
+ @data_exchange_location.setter
84
+ def data_exchange_location(self, value: pulumi.Input[builtins.str]):
85
+ pulumi.set(self, "data_exchange_location", value)
86
+
87
+ @property
88
+ @pulumi.getter(name="dataExchangeProject")
89
+ def data_exchange_project(self) -> pulumi.Input[builtins.str]:
90
+ """
91
+ The ID of the Google Cloud project where the Data Exchange is located.
92
+ """
93
+ return pulumi.get(self, "data_exchange_project")
94
+
95
+ @data_exchange_project.setter
96
+ def data_exchange_project(self, value: pulumi.Input[builtins.str]):
97
+ pulumi.set(self, "data_exchange_project", value)
98
+
99
+ @property
100
+ @pulumi.getter
101
+ def location(self) -> pulumi.Input[builtins.str]:
102
+ """
103
+ The geographic location where the Subscription (and its linked dataset) should reside.
104
+ This is the subscriber's desired location for the created resources.
105
+ See https://cloud.google.com/bigquery/docs/locations for supported locations.
106
+ """
107
+ return pulumi.get(self, "location")
108
+
109
+ @location.setter
110
+ def location(self, value: pulumi.Input[builtins.str]):
111
+ pulumi.set(self, "location", value)
112
+
113
+ @property
114
+ @pulumi.getter(name="subscriptionId")
115
+ def subscription_id(self) -> pulumi.Input[builtins.str]:
116
+ """
117
+ Name of the subscription to create.
118
+ """
119
+ return pulumi.get(self, "subscription_id")
120
+
121
+ @subscription_id.setter
122
+ def subscription_id(self, value: pulumi.Input[builtins.str]):
123
+ pulumi.set(self, "subscription_id", value)
124
+
125
+ @property
126
+ @pulumi.getter(name="destinationDataset")
127
+ def destination_dataset(self) -> Optional[pulumi.Input['DataExchangeSubscriptionDestinationDatasetArgs']]:
128
+ """
129
+ BigQuery destination dataset to create for the subscriber.
130
+ Structure is documented below.
131
+ """
132
+ return pulumi.get(self, "destination_dataset")
133
+
134
+ @destination_dataset.setter
135
+ def destination_dataset(self, value: Optional[pulumi.Input['DataExchangeSubscriptionDestinationDatasetArgs']]):
136
+ pulumi.set(self, "destination_dataset", value)
137
+
138
+ @property
139
+ @pulumi.getter
140
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
141
+ """
142
+ The ID of the project in which the resource belongs.
143
+ If it is not provided, the provider project is used.
144
+ """
145
+ return pulumi.get(self, "project")
146
+
147
+ @project.setter
148
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
149
+ pulumi.set(self, "project", value)
150
+
151
+ @property
152
+ @pulumi.getter(name="refreshPolicy")
153
+ def refresh_policy(self) -> Optional[pulumi.Input[builtins.str]]:
154
+ return pulumi.get(self, "refresh_policy")
155
+
156
+ @refresh_policy.setter
157
+ def refresh_policy(self, value: Optional[pulumi.Input[builtins.str]]):
158
+ pulumi.set(self, "refresh_policy", value)
159
+
160
+ @property
161
+ @pulumi.getter(name="subscriberContact")
162
+ def subscriber_contact(self) -> Optional[pulumi.Input[builtins.str]]:
163
+ """
164
+ Email of the subscriber.
165
+ """
166
+ return pulumi.get(self, "subscriber_contact")
167
+
168
+ @subscriber_contact.setter
169
+ def subscriber_contact(self, value: Optional[pulumi.Input[builtins.str]]):
170
+ pulumi.set(self, "subscriber_contact", value)
171
+
172
+
173
+ @pulumi.input_type
174
+ class _DataExchangeSubscriptionState:
175
+ def __init__(__self__, *,
176
+ creation_time: Optional[pulumi.Input[builtins.str]] = None,
177
+ data_exchange: Optional[pulumi.Input[builtins.str]] = None,
178
+ data_exchange_id: Optional[pulumi.Input[builtins.str]] = None,
179
+ data_exchange_location: Optional[pulumi.Input[builtins.str]] = None,
180
+ data_exchange_project: Optional[pulumi.Input[builtins.str]] = None,
181
+ destination_dataset: Optional[pulumi.Input['DataExchangeSubscriptionDestinationDatasetArgs']] = None,
182
+ last_modify_time: Optional[pulumi.Input[builtins.str]] = None,
183
+ linked_dataset_maps: Optional[pulumi.Input[Sequence[pulumi.Input['DataExchangeSubscriptionLinkedDatasetMapArgs']]]] = None,
184
+ linked_resources: Optional[pulumi.Input[Sequence[pulumi.Input['DataExchangeSubscriptionLinkedResourceArgs']]]] = None,
185
+ location: Optional[pulumi.Input[builtins.str]] = None,
186
+ log_linked_dataset_query_user_email: Optional[pulumi.Input[builtins.bool]] = None,
187
+ name: Optional[pulumi.Input[builtins.str]] = None,
188
+ organization_display_name: Optional[pulumi.Input[builtins.str]] = None,
189
+ organization_id: Optional[pulumi.Input[builtins.str]] = None,
190
+ project: Optional[pulumi.Input[builtins.str]] = None,
191
+ refresh_policy: Optional[pulumi.Input[builtins.str]] = None,
192
+ resource_type: Optional[pulumi.Input[builtins.str]] = None,
193
+ state: Optional[pulumi.Input[builtins.str]] = None,
194
+ subscriber_contact: Optional[pulumi.Input[builtins.str]] = None,
195
+ subscription_id: Optional[pulumi.Input[builtins.str]] = None):
196
+ """
197
+ Input properties used for looking up and filtering DataExchangeSubscription resources.
198
+ :param pulumi.Input[builtins.str] creation_time: Timestamp when the subscription was created.
199
+ :param pulumi.Input[builtins.str] data_exchange: Output only. Resource name of the source Data Exchange. e.g. projects/123/locations/us/dataExchanges/456
200
+ :param pulumi.Input[builtins.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.
201
+ :param pulumi.Input[builtins.str] data_exchange_location: The name of the location of the Data Exchange.
202
+ :param pulumi.Input[builtins.str] data_exchange_project: The ID of the Google Cloud project where the Data Exchange is located.
203
+ :param pulumi.Input['DataExchangeSubscriptionDestinationDatasetArgs'] destination_dataset: BigQuery destination dataset to create for the subscriber.
204
+ Structure is documented below.
205
+ :param pulumi.Input[builtins.str] last_modify_time: Timestamp when the subscription was last modified.
206
+ :param pulumi.Input[Sequence[pulumi.Input['DataExchangeSubscriptionLinkedDatasetMapArgs']]] linked_dataset_maps: Output only. Map of listing resource names to associated linked resource,
207
+ e.g. projects/123/locations/us/dataExchanges/456/listings/789 > projects/123/datasets/my_dataset
208
+ For Data Exchange subscriptions, this map may contain multiple entries if the Data Exchange has multiple listings.
209
+ Structure is documented below.
210
+ :param pulumi.Input[Sequence[pulumi.Input['DataExchangeSubscriptionLinkedResourceArgs']]] linked_resources: Output only. Linked resources created in the subscription. Only contains values if state = STATE_ACTIVE.
211
+ Structure is documented below.
212
+ :param pulumi.Input[builtins.str] location: The geographic location where the Subscription (and its linked dataset) should reside.
213
+ This is the subscriber's desired location for the created resources.
214
+ See https://cloud.google.com/bigquery/docs/locations for supported locations.
215
+ :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 DataExchange/Listing.
216
+ :param pulumi.Input[builtins.str] name: The resource name of the subscription. e.g. "projects/myproject/locations/us/subscriptions/123"
217
+ :param pulumi.Input[builtins.str] organization_display_name: Display name of the project of this subscription.
218
+ :param pulumi.Input[builtins.str] organization_id: Organization of the project this subscription belongs to.
219
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
220
+ If it is not provided, the provider project is used.
221
+ :param pulumi.Input[builtins.str] resource_type: Listing shared asset type.
222
+ :param pulumi.Input[builtins.str] state: Current state of the subscription.
223
+ :param pulumi.Input[builtins.str] subscriber_contact: Email of the subscriber.
224
+ :param pulumi.Input[builtins.str] subscription_id: Name of the subscription to create.
225
+ """
226
+ if creation_time is not None:
227
+ pulumi.set(__self__, "creation_time", creation_time)
228
+ if data_exchange is not None:
229
+ pulumi.set(__self__, "data_exchange", data_exchange)
230
+ if data_exchange_id is not None:
231
+ pulumi.set(__self__, "data_exchange_id", data_exchange_id)
232
+ if data_exchange_location is not None:
233
+ pulumi.set(__self__, "data_exchange_location", data_exchange_location)
234
+ if data_exchange_project is not None:
235
+ pulumi.set(__self__, "data_exchange_project", data_exchange_project)
236
+ if destination_dataset is not None:
237
+ pulumi.set(__self__, "destination_dataset", destination_dataset)
238
+ if last_modify_time is not None:
239
+ pulumi.set(__self__, "last_modify_time", last_modify_time)
240
+ if linked_dataset_maps is not None:
241
+ pulumi.set(__self__, "linked_dataset_maps", linked_dataset_maps)
242
+ if linked_resources is not None:
243
+ pulumi.set(__self__, "linked_resources", linked_resources)
244
+ if location is not None:
245
+ pulumi.set(__self__, "location", location)
246
+ if log_linked_dataset_query_user_email is not None:
247
+ pulumi.set(__self__, "log_linked_dataset_query_user_email", log_linked_dataset_query_user_email)
248
+ if name is not None:
249
+ pulumi.set(__self__, "name", name)
250
+ if organization_display_name is not None:
251
+ pulumi.set(__self__, "organization_display_name", organization_display_name)
252
+ if organization_id is not None:
253
+ pulumi.set(__self__, "organization_id", organization_id)
254
+ if project is not None:
255
+ pulumi.set(__self__, "project", project)
256
+ if refresh_policy is not None:
257
+ pulumi.set(__self__, "refresh_policy", refresh_policy)
258
+ if resource_type is not None:
259
+ pulumi.set(__self__, "resource_type", resource_type)
260
+ if state is not None:
261
+ pulumi.set(__self__, "state", state)
262
+ if subscriber_contact is not None:
263
+ pulumi.set(__self__, "subscriber_contact", subscriber_contact)
264
+ if subscription_id is not None:
265
+ pulumi.set(__self__, "subscription_id", subscription_id)
266
+
267
+ @property
268
+ @pulumi.getter(name="creationTime")
269
+ def creation_time(self) -> Optional[pulumi.Input[builtins.str]]:
270
+ """
271
+ Timestamp when the subscription was created.
272
+ """
273
+ return pulumi.get(self, "creation_time")
274
+
275
+ @creation_time.setter
276
+ def creation_time(self, value: Optional[pulumi.Input[builtins.str]]):
277
+ pulumi.set(self, "creation_time", value)
278
+
279
+ @property
280
+ @pulumi.getter(name="dataExchange")
281
+ def data_exchange(self) -> Optional[pulumi.Input[builtins.str]]:
282
+ """
283
+ Output only. Resource name of the source Data Exchange. e.g. projects/123/locations/us/dataExchanges/456
284
+ """
285
+ return pulumi.get(self, "data_exchange")
286
+
287
+ @data_exchange.setter
288
+ def data_exchange(self, value: Optional[pulumi.Input[builtins.str]]):
289
+ pulumi.set(self, "data_exchange", value)
290
+
291
+ @property
292
+ @pulumi.getter(name="dataExchangeId")
293
+ def data_exchange_id(self) -> Optional[pulumi.Input[builtins.str]]:
294
+ """
295
+ 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.
296
+ """
297
+ return pulumi.get(self, "data_exchange_id")
298
+
299
+ @data_exchange_id.setter
300
+ def data_exchange_id(self, value: Optional[pulumi.Input[builtins.str]]):
301
+ pulumi.set(self, "data_exchange_id", value)
302
+
303
+ @property
304
+ @pulumi.getter(name="dataExchangeLocation")
305
+ def data_exchange_location(self) -> Optional[pulumi.Input[builtins.str]]:
306
+ """
307
+ The name of the location of the Data Exchange.
308
+ """
309
+ return pulumi.get(self, "data_exchange_location")
310
+
311
+ @data_exchange_location.setter
312
+ def data_exchange_location(self, value: Optional[pulumi.Input[builtins.str]]):
313
+ pulumi.set(self, "data_exchange_location", value)
314
+
315
+ @property
316
+ @pulumi.getter(name="dataExchangeProject")
317
+ def data_exchange_project(self) -> Optional[pulumi.Input[builtins.str]]:
318
+ """
319
+ The ID of the Google Cloud project where the Data Exchange is located.
320
+ """
321
+ return pulumi.get(self, "data_exchange_project")
322
+
323
+ @data_exchange_project.setter
324
+ def data_exchange_project(self, value: Optional[pulumi.Input[builtins.str]]):
325
+ pulumi.set(self, "data_exchange_project", value)
326
+
327
+ @property
328
+ @pulumi.getter(name="destinationDataset")
329
+ def destination_dataset(self) -> Optional[pulumi.Input['DataExchangeSubscriptionDestinationDatasetArgs']]:
330
+ """
331
+ BigQuery destination dataset to create for the subscriber.
332
+ Structure is documented below.
333
+ """
334
+ return pulumi.get(self, "destination_dataset")
335
+
336
+ @destination_dataset.setter
337
+ def destination_dataset(self, value: Optional[pulumi.Input['DataExchangeSubscriptionDestinationDatasetArgs']]):
338
+ pulumi.set(self, "destination_dataset", value)
339
+
340
+ @property
341
+ @pulumi.getter(name="lastModifyTime")
342
+ def last_modify_time(self) -> Optional[pulumi.Input[builtins.str]]:
343
+ """
344
+ Timestamp when the subscription was last modified.
345
+ """
346
+ return pulumi.get(self, "last_modify_time")
347
+
348
+ @last_modify_time.setter
349
+ def last_modify_time(self, value: Optional[pulumi.Input[builtins.str]]):
350
+ pulumi.set(self, "last_modify_time", value)
351
+
352
+ @property
353
+ @pulumi.getter(name="linkedDatasetMaps")
354
+ def linked_dataset_maps(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DataExchangeSubscriptionLinkedDatasetMapArgs']]]]:
355
+ """
356
+ Output only. Map of listing resource names to associated linked resource,
357
+ e.g. projects/123/locations/us/dataExchanges/456/listings/789 > projects/123/datasets/my_dataset
358
+ For Data Exchange subscriptions, this map may contain multiple entries if the Data Exchange has multiple listings.
359
+ Structure is documented below.
360
+ """
361
+ return pulumi.get(self, "linked_dataset_maps")
362
+
363
+ @linked_dataset_maps.setter
364
+ def linked_dataset_maps(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DataExchangeSubscriptionLinkedDatasetMapArgs']]]]):
365
+ pulumi.set(self, "linked_dataset_maps", value)
366
+
367
+ @property
368
+ @pulumi.getter(name="linkedResources")
369
+ def linked_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DataExchangeSubscriptionLinkedResourceArgs']]]]:
370
+ """
371
+ Output only. Linked resources created in the subscription. Only contains values if state = STATE_ACTIVE.
372
+ Structure is documented below.
373
+ """
374
+ return pulumi.get(self, "linked_resources")
375
+
376
+ @linked_resources.setter
377
+ def linked_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DataExchangeSubscriptionLinkedResourceArgs']]]]):
378
+ pulumi.set(self, "linked_resources", value)
379
+
380
+ @property
381
+ @pulumi.getter
382
+ def location(self) -> Optional[pulumi.Input[builtins.str]]:
383
+ """
384
+ The geographic location where the Subscription (and its linked dataset) should reside.
385
+ This is the subscriber's desired location for the created resources.
386
+ See https://cloud.google.com/bigquery/docs/locations for supported locations.
387
+ """
388
+ return pulumi.get(self, "location")
389
+
390
+ @location.setter
391
+ def location(self, value: Optional[pulumi.Input[builtins.str]]):
392
+ pulumi.set(self, "location", value)
393
+
394
+ @property
395
+ @pulumi.getter(name="logLinkedDatasetQueryUserEmail")
396
+ def log_linked_dataset_query_user_email(self) -> Optional[pulumi.Input[builtins.bool]]:
397
+ """
398
+ Output only. By default, false. If true, the Subscriber agreed to the email sharing mandate that is enabled for DataExchange/Listing.
399
+ """
400
+ return pulumi.get(self, "log_linked_dataset_query_user_email")
401
+
402
+ @log_linked_dataset_query_user_email.setter
403
+ def log_linked_dataset_query_user_email(self, value: Optional[pulumi.Input[builtins.bool]]):
404
+ pulumi.set(self, "log_linked_dataset_query_user_email", value)
405
+
406
+ @property
407
+ @pulumi.getter
408
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
409
+ """
410
+ The resource name of the subscription. e.g. "projects/myproject/locations/us/subscriptions/123"
411
+ """
412
+ return pulumi.get(self, "name")
413
+
414
+ @name.setter
415
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
416
+ pulumi.set(self, "name", value)
417
+
418
+ @property
419
+ @pulumi.getter(name="organizationDisplayName")
420
+ def organization_display_name(self) -> Optional[pulumi.Input[builtins.str]]:
421
+ """
422
+ Display name of the project of this subscription.
423
+ """
424
+ return pulumi.get(self, "organization_display_name")
425
+
426
+ @organization_display_name.setter
427
+ def organization_display_name(self, value: Optional[pulumi.Input[builtins.str]]):
428
+ pulumi.set(self, "organization_display_name", value)
429
+
430
+ @property
431
+ @pulumi.getter(name="organizationId")
432
+ def organization_id(self) -> Optional[pulumi.Input[builtins.str]]:
433
+ """
434
+ Organization of the project this subscription belongs to.
435
+ """
436
+ return pulumi.get(self, "organization_id")
437
+
438
+ @organization_id.setter
439
+ def organization_id(self, value: Optional[pulumi.Input[builtins.str]]):
440
+ pulumi.set(self, "organization_id", value)
441
+
442
+ @property
443
+ @pulumi.getter
444
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
445
+ """
446
+ The ID of the project in which the resource belongs.
447
+ If it is not provided, the provider project is used.
448
+ """
449
+ return pulumi.get(self, "project")
450
+
451
+ @project.setter
452
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
453
+ pulumi.set(self, "project", value)
454
+
455
+ @property
456
+ @pulumi.getter(name="refreshPolicy")
457
+ def refresh_policy(self) -> Optional[pulumi.Input[builtins.str]]:
458
+ return pulumi.get(self, "refresh_policy")
459
+
460
+ @refresh_policy.setter
461
+ def refresh_policy(self, value: Optional[pulumi.Input[builtins.str]]):
462
+ pulumi.set(self, "refresh_policy", value)
463
+
464
+ @property
465
+ @pulumi.getter(name="resourceType")
466
+ def resource_type(self) -> Optional[pulumi.Input[builtins.str]]:
467
+ """
468
+ Listing shared asset type.
469
+ """
470
+ return pulumi.get(self, "resource_type")
471
+
472
+ @resource_type.setter
473
+ def resource_type(self, value: Optional[pulumi.Input[builtins.str]]):
474
+ pulumi.set(self, "resource_type", value)
475
+
476
+ @property
477
+ @pulumi.getter
478
+ def state(self) -> Optional[pulumi.Input[builtins.str]]:
479
+ """
480
+ Current state of the subscription.
481
+ """
482
+ return pulumi.get(self, "state")
483
+
484
+ @state.setter
485
+ def state(self, value: Optional[pulumi.Input[builtins.str]]):
486
+ pulumi.set(self, "state", value)
487
+
488
+ @property
489
+ @pulumi.getter(name="subscriberContact")
490
+ def subscriber_contact(self) -> Optional[pulumi.Input[builtins.str]]:
491
+ """
492
+ Email of the subscriber.
493
+ """
494
+ return pulumi.get(self, "subscriber_contact")
495
+
496
+ @subscriber_contact.setter
497
+ def subscriber_contact(self, value: Optional[pulumi.Input[builtins.str]]):
498
+ pulumi.set(self, "subscriber_contact", value)
499
+
500
+ @property
501
+ @pulumi.getter(name="subscriptionId")
502
+ def subscription_id(self) -> Optional[pulumi.Input[builtins.str]]:
503
+ """
504
+ Name of the subscription to create.
505
+ """
506
+ return pulumi.get(self, "subscription_id")
507
+
508
+ @subscription_id.setter
509
+ def subscription_id(self, value: Optional[pulumi.Input[builtins.str]]):
510
+ pulumi.set(self, "subscription_id", value)
511
+
512
+
513
+ @pulumi.type_token("gcp:bigqueryanalyticshub/dataExchangeSubscription:DataExchangeSubscription")
514
+ class DataExchangeSubscription(pulumi.CustomResource):
515
+ @overload
516
+ def __init__(__self__,
517
+ resource_name: str,
518
+ opts: Optional[pulumi.ResourceOptions] = None,
519
+ data_exchange_id: Optional[pulumi.Input[builtins.str]] = None,
520
+ data_exchange_location: Optional[pulumi.Input[builtins.str]] = None,
521
+ data_exchange_project: Optional[pulumi.Input[builtins.str]] = None,
522
+ destination_dataset: Optional[pulumi.Input[Union['DataExchangeSubscriptionDestinationDatasetArgs', 'DataExchangeSubscriptionDestinationDatasetArgsDict']]] = None,
523
+ location: Optional[pulumi.Input[builtins.str]] = None,
524
+ project: Optional[pulumi.Input[builtins.str]] = None,
525
+ refresh_policy: Optional[pulumi.Input[builtins.str]] = None,
526
+ subscriber_contact: Optional[pulumi.Input[builtins.str]] = None,
527
+ subscription_id: Optional[pulumi.Input[builtins.str]] = None,
528
+ __props__=None):
529
+ """
530
+ ## Example Usage
531
+
532
+ ### Bigquery Analyticshub Dataexchange Subscription Basic
533
+
534
+ ```python
535
+ import pulumi
536
+ import pulumi_gcp as gcp
537
+
538
+ subscription = gcp.bigqueryanalyticshub.DataExchange("subscription",
539
+ location="us",
540
+ data_exchange_id="my_test_dataexchange",
541
+ display_name="my_test_dataexchange",
542
+ description="Test Data Exchange",
543
+ sharing_environment_config={
544
+ "dcr_exchange_config": {},
545
+ })
546
+ subscription_dataset = gcp.bigquery.Dataset("subscription",
547
+ dataset_id="listing_src_dataset",
548
+ friendly_name="listing_src_dataset",
549
+ description="Dataset for Listing",
550
+ location="us")
551
+ subscription_table = gcp.bigquery.Table("subscription",
552
+ deletion_protection=False,
553
+ table_id="listing_src_table",
554
+ dataset_id=subscription_dataset.dataset_id,
555
+ schema=\"\"\"[
556
+ {
557
+ "name": "name",
558
+ "type": "STRING",
559
+ "mode": "NULLABLE"
560
+ },
561
+ {
562
+ "name": "post_abbr",
563
+ "type": "STRING",
564
+ "mode": "NULLABLE"
565
+ },
566
+ {
567
+ "name": "date",
568
+ "type": "DATE",
569
+ "mode": "NULLABLE"
570
+ }
571
+ ]
572
+ \"\"\")
573
+ subscription_listing = gcp.bigqueryanalyticshub.Listing("subscription",
574
+ location="us",
575
+ data_exchange_id=subscription.data_exchange_id,
576
+ listing_id="my_test_listing",
577
+ display_name="my_test_listing",
578
+ description="Test Listing",
579
+ restricted_export_config={
580
+ "enabled": True,
581
+ },
582
+ bigquery_dataset={
583
+ "dataset": subscription_dataset.id,
584
+ "selected_resources": [{
585
+ "table": subscription_table.id,
586
+ }],
587
+ })
588
+ subscription_data_exchange_subscription = gcp.bigqueryanalyticshub.DataExchangeSubscription("subscription",
589
+ project=subscription_dataset.project,
590
+ location="us",
591
+ data_exchange_project=subscription.project,
592
+ data_exchange_location=subscription.location,
593
+ data_exchange_id=subscription.data_exchange_id,
594
+ subscription_id="my_subscription_id",
595
+ subscriber_contact="testuser@example.com",
596
+ destination_dataset={
597
+ "location": "us",
598
+ "dataset_reference": {
599
+ "project_id": subscription_dataset.project,
600
+ "dataset_id": "subscribed_dest_dataset",
601
+ },
602
+ "friendly_name": "Subscribed Destination Dataset",
603
+ "description": "Destination dataset for subscription",
604
+ "labels": {
605
+ "environment": "development",
606
+ "owner": "team-a",
607
+ },
608
+ },
609
+ refresh_policy="ON_READ")
610
+ ```
611
+
612
+ ## Import
613
+
614
+ DataExchangeSubscription can be imported using any of these accepted formats:
615
+
616
+ * `projects/{{project}}/locations/{{location}}/subscriptions/{{subscription_id}}`
617
+
618
+ * `{{project}}/{{location}}/{{subscription_id}}`
619
+
620
+ * `{{location}}/{{subscription_id}}`
621
+
622
+ When using the `pulumi import` command, DataExchangeSubscription can be imported using one of the formats above. For example:
623
+
624
+ ```sh
625
+ $ pulumi import gcp:bigqueryanalyticshub/dataExchangeSubscription:DataExchangeSubscription default projects/{{project}}/locations/{{location}}/subscriptions/{{subscription_id}}
626
+ ```
627
+
628
+ ```sh
629
+ $ pulumi import gcp:bigqueryanalyticshub/dataExchangeSubscription:DataExchangeSubscription default {{project}}/{{location}}/{{subscription_id}}
630
+ ```
631
+
632
+ ```sh
633
+ $ pulumi import gcp:bigqueryanalyticshub/dataExchangeSubscription:DataExchangeSubscription default {{location}}/{{subscription_id}}
634
+ ```
635
+
636
+ :param str resource_name: The name of the resource.
637
+ :param pulumi.ResourceOptions opts: Options for the resource.
638
+ :param pulumi.Input[builtins.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.
639
+ :param pulumi.Input[builtins.str] data_exchange_location: The name of the location of the Data Exchange.
640
+ :param pulumi.Input[builtins.str] data_exchange_project: The ID of the Google Cloud project where the Data Exchange is located.
641
+ :param pulumi.Input[Union['DataExchangeSubscriptionDestinationDatasetArgs', 'DataExchangeSubscriptionDestinationDatasetArgsDict']] destination_dataset: BigQuery destination dataset to create for the subscriber.
642
+ Structure is documented below.
643
+ :param pulumi.Input[builtins.str] location: The geographic location where the Subscription (and its linked dataset) should reside.
644
+ This is the subscriber's desired location for the created resources.
645
+ See https://cloud.google.com/bigquery/docs/locations for supported locations.
646
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
647
+ If it is not provided, the provider project is used.
648
+ :param pulumi.Input[builtins.str] subscriber_contact: Email of the subscriber.
649
+ :param pulumi.Input[builtins.str] subscription_id: Name of the subscription to create.
650
+ """
651
+ ...
652
+ @overload
653
+ def __init__(__self__,
654
+ resource_name: str,
655
+ args: DataExchangeSubscriptionArgs,
656
+ opts: Optional[pulumi.ResourceOptions] = None):
657
+ """
658
+ ## Example Usage
659
+
660
+ ### Bigquery Analyticshub Dataexchange Subscription Basic
661
+
662
+ ```python
663
+ import pulumi
664
+ import pulumi_gcp as gcp
665
+
666
+ subscription = gcp.bigqueryanalyticshub.DataExchange("subscription",
667
+ location="us",
668
+ data_exchange_id="my_test_dataexchange",
669
+ display_name="my_test_dataexchange",
670
+ description="Test Data Exchange",
671
+ sharing_environment_config={
672
+ "dcr_exchange_config": {},
673
+ })
674
+ subscription_dataset = gcp.bigquery.Dataset("subscription",
675
+ dataset_id="listing_src_dataset",
676
+ friendly_name="listing_src_dataset",
677
+ description="Dataset for Listing",
678
+ location="us")
679
+ subscription_table = gcp.bigquery.Table("subscription",
680
+ deletion_protection=False,
681
+ table_id="listing_src_table",
682
+ dataset_id=subscription_dataset.dataset_id,
683
+ schema=\"\"\"[
684
+ {
685
+ "name": "name",
686
+ "type": "STRING",
687
+ "mode": "NULLABLE"
688
+ },
689
+ {
690
+ "name": "post_abbr",
691
+ "type": "STRING",
692
+ "mode": "NULLABLE"
693
+ },
694
+ {
695
+ "name": "date",
696
+ "type": "DATE",
697
+ "mode": "NULLABLE"
698
+ }
699
+ ]
700
+ \"\"\")
701
+ subscription_listing = gcp.bigqueryanalyticshub.Listing("subscription",
702
+ location="us",
703
+ data_exchange_id=subscription.data_exchange_id,
704
+ listing_id="my_test_listing",
705
+ display_name="my_test_listing",
706
+ description="Test Listing",
707
+ restricted_export_config={
708
+ "enabled": True,
709
+ },
710
+ bigquery_dataset={
711
+ "dataset": subscription_dataset.id,
712
+ "selected_resources": [{
713
+ "table": subscription_table.id,
714
+ }],
715
+ })
716
+ subscription_data_exchange_subscription = gcp.bigqueryanalyticshub.DataExchangeSubscription("subscription",
717
+ project=subscription_dataset.project,
718
+ location="us",
719
+ data_exchange_project=subscription.project,
720
+ data_exchange_location=subscription.location,
721
+ data_exchange_id=subscription.data_exchange_id,
722
+ subscription_id="my_subscription_id",
723
+ subscriber_contact="testuser@example.com",
724
+ destination_dataset={
725
+ "location": "us",
726
+ "dataset_reference": {
727
+ "project_id": subscription_dataset.project,
728
+ "dataset_id": "subscribed_dest_dataset",
729
+ },
730
+ "friendly_name": "Subscribed Destination Dataset",
731
+ "description": "Destination dataset for subscription",
732
+ "labels": {
733
+ "environment": "development",
734
+ "owner": "team-a",
735
+ },
736
+ },
737
+ refresh_policy="ON_READ")
738
+ ```
739
+
740
+ ## Import
741
+
742
+ DataExchangeSubscription can be imported using any of these accepted formats:
743
+
744
+ * `projects/{{project}}/locations/{{location}}/subscriptions/{{subscription_id}}`
745
+
746
+ * `{{project}}/{{location}}/{{subscription_id}}`
747
+
748
+ * `{{location}}/{{subscription_id}}`
749
+
750
+ When using the `pulumi import` command, DataExchangeSubscription can be imported using one of the formats above. For example:
751
+
752
+ ```sh
753
+ $ pulumi import gcp:bigqueryanalyticshub/dataExchangeSubscription:DataExchangeSubscription default projects/{{project}}/locations/{{location}}/subscriptions/{{subscription_id}}
754
+ ```
755
+
756
+ ```sh
757
+ $ pulumi import gcp:bigqueryanalyticshub/dataExchangeSubscription:DataExchangeSubscription default {{project}}/{{location}}/{{subscription_id}}
758
+ ```
759
+
760
+ ```sh
761
+ $ pulumi import gcp:bigqueryanalyticshub/dataExchangeSubscription:DataExchangeSubscription default {{location}}/{{subscription_id}}
762
+ ```
763
+
764
+ :param str resource_name: The name of the resource.
765
+ :param DataExchangeSubscriptionArgs args: The arguments to use to populate this resource's properties.
766
+ :param pulumi.ResourceOptions opts: Options for the resource.
767
+ """
768
+ ...
769
+ def __init__(__self__, resource_name: str, *args, **kwargs):
770
+ resource_args, opts = _utilities.get_resource_args_opts(DataExchangeSubscriptionArgs, pulumi.ResourceOptions, *args, **kwargs)
771
+ if resource_args is not None:
772
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
773
+ else:
774
+ __self__._internal_init(resource_name, *args, **kwargs)
775
+
776
+ def _internal_init(__self__,
777
+ resource_name: str,
778
+ opts: Optional[pulumi.ResourceOptions] = None,
779
+ data_exchange_id: Optional[pulumi.Input[builtins.str]] = None,
780
+ data_exchange_location: Optional[pulumi.Input[builtins.str]] = None,
781
+ data_exchange_project: Optional[pulumi.Input[builtins.str]] = None,
782
+ destination_dataset: Optional[pulumi.Input[Union['DataExchangeSubscriptionDestinationDatasetArgs', 'DataExchangeSubscriptionDestinationDatasetArgsDict']]] = None,
783
+ location: Optional[pulumi.Input[builtins.str]] = None,
784
+ project: Optional[pulumi.Input[builtins.str]] = None,
785
+ refresh_policy: Optional[pulumi.Input[builtins.str]] = None,
786
+ subscriber_contact: Optional[pulumi.Input[builtins.str]] = None,
787
+ subscription_id: Optional[pulumi.Input[builtins.str]] = None,
788
+ __props__=None):
789
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
790
+ if not isinstance(opts, pulumi.ResourceOptions):
791
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
792
+ if opts.id is None:
793
+ if __props__ is not None:
794
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
795
+ __props__ = DataExchangeSubscriptionArgs.__new__(DataExchangeSubscriptionArgs)
796
+
797
+ if data_exchange_id is None and not opts.urn:
798
+ raise TypeError("Missing required property 'data_exchange_id'")
799
+ __props__.__dict__["data_exchange_id"] = data_exchange_id
800
+ if data_exchange_location is None and not opts.urn:
801
+ raise TypeError("Missing required property 'data_exchange_location'")
802
+ __props__.__dict__["data_exchange_location"] = data_exchange_location
803
+ if data_exchange_project is None and not opts.urn:
804
+ raise TypeError("Missing required property 'data_exchange_project'")
805
+ __props__.__dict__["data_exchange_project"] = data_exchange_project
806
+ __props__.__dict__["destination_dataset"] = destination_dataset
807
+ if location is None and not opts.urn:
808
+ raise TypeError("Missing required property 'location'")
809
+ __props__.__dict__["location"] = location
810
+ __props__.__dict__["project"] = project
811
+ __props__.__dict__["refresh_policy"] = refresh_policy
812
+ __props__.__dict__["subscriber_contact"] = subscriber_contact
813
+ if subscription_id is None and not opts.urn:
814
+ raise TypeError("Missing required property 'subscription_id'")
815
+ __props__.__dict__["subscription_id"] = subscription_id
816
+ __props__.__dict__["creation_time"] = None
817
+ __props__.__dict__["data_exchange"] = None
818
+ __props__.__dict__["last_modify_time"] = None
819
+ __props__.__dict__["linked_dataset_maps"] = None
820
+ __props__.__dict__["linked_resources"] = None
821
+ __props__.__dict__["log_linked_dataset_query_user_email"] = None
822
+ __props__.__dict__["name"] = None
823
+ __props__.__dict__["organization_display_name"] = None
824
+ __props__.__dict__["organization_id"] = None
825
+ __props__.__dict__["resource_type"] = None
826
+ __props__.__dict__["state"] = None
827
+ super(DataExchangeSubscription, __self__).__init__(
828
+ 'gcp:bigqueryanalyticshub/dataExchangeSubscription:DataExchangeSubscription',
829
+ resource_name,
830
+ __props__,
831
+ opts)
832
+
833
+ @staticmethod
834
+ def get(resource_name: str,
835
+ id: pulumi.Input[str],
836
+ opts: Optional[pulumi.ResourceOptions] = None,
837
+ creation_time: Optional[pulumi.Input[builtins.str]] = None,
838
+ data_exchange: Optional[pulumi.Input[builtins.str]] = None,
839
+ data_exchange_id: Optional[pulumi.Input[builtins.str]] = None,
840
+ data_exchange_location: Optional[pulumi.Input[builtins.str]] = None,
841
+ data_exchange_project: Optional[pulumi.Input[builtins.str]] = None,
842
+ destination_dataset: Optional[pulumi.Input[Union['DataExchangeSubscriptionDestinationDatasetArgs', 'DataExchangeSubscriptionDestinationDatasetArgsDict']]] = None,
843
+ last_modify_time: Optional[pulumi.Input[builtins.str]] = None,
844
+ linked_dataset_maps: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataExchangeSubscriptionLinkedDatasetMapArgs', 'DataExchangeSubscriptionLinkedDatasetMapArgsDict']]]]] = None,
845
+ linked_resources: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataExchangeSubscriptionLinkedResourceArgs', 'DataExchangeSubscriptionLinkedResourceArgsDict']]]]] = None,
846
+ location: Optional[pulumi.Input[builtins.str]] = None,
847
+ log_linked_dataset_query_user_email: Optional[pulumi.Input[builtins.bool]] = None,
848
+ name: Optional[pulumi.Input[builtins.str]] = None,
849
+ organization_display_name: Optional[pulumi.Input[builtins.str]] = None,
850
+ organization_id: Optional[pulumi.Input[builtins.str]] = None,
851
+ project: Optional[pulumi.Input[builtins.str]] = None,
852
+ refresh_policy: Optional[pulumi.Input[builtins.str]] = None,
853
+ resource_type: Optional[pulumi.Input[builtins.str]] = None,
854
+ state: Optional[pulumi.Input[builtins.str]] = None,
855
+ subscriber_contact: Optional[pulumi.Input[builtins.str]] = None,
856
+ subscription_id: Optional[pulumi.Input[builtins.str]] = None) -> 'DataExchangeSubscription':
857
+ """
858
+ Get an existing DataExchangeSubscription resource's state with the given name, id, and optional extra
859
+ properties used to qualify the lookup.
860
+
861
+ :param str resource_name: The unique name of the resulting resource.
862
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
863
+ :param pulumi.ResourceOptions opts: Options for the resource.
864
+ :param pulumi.Input[builtins.str] creation_time: Timestamp when the subscription was created.
865
+ :param pulumi.Input[builtins.str] data_exchange: Output only. Resource name of the source Data Exchange. e.g. projects/123/locations/us/dataExchanges/456
866
+ :param pulumi.Input[builtins.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.
867
+ :param pulumi.Input[builtins.str] data_exchange_location: The name of the location of the Data Exchange.
868
+ :param pulumi.Input[builtins.str] data_exchange_project: The ID of the Google Cloud project where the Data Exchange is located.
869
+ :param pulumi.Input[Union['DataExchangeSubscriptionDestinationDatasetArgs', 'DataExchangeSubscriptionDestinationDatasetArgsDict']] destination_dataset: BigQuery destination dataset to create for the subscriber.
870
+ Structure is documented below.
871
+ :param pulumi.Input[builtins.str] last_modify_time: Timestamp when the subscription was last modified.
872
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DataExchangeSubscriptionLinkedDatasetMapArgs', 'DataExchangeSubscriptionLinkedDatasetMapArgsDict']]]] linked_dataset_maps: Output only. Map of listing resource names to associated linked resource,
873
+ e.g. projects/123/locations/us/dataExchanges/456/listings/789 > projects/123/datasets/my_dataset
874
+ For Data Exchange subscriptions, this map may contain multiple entries if the Data Exchange has multiple listings.
875
+ Structure is documented below.
876
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DataExchangeSubscriptionLinkedResourceArgs', 'DataExchangeSubscriptionLinkedResourceArgsDict']]]] linked_resources: Output only. Linked resources created in the subscription. Only contains values if state = STATE_ACTIVE.
877
+ Structure is documented below.
878
+ :param pulumi.Input[builtins.str] location: The geographic location where the Subscription (and its linked dataset) should reside.
879
+ This is the subscriber's desired location for the created resources.
880
+ See https://cloud.google.com/bigquery/docs/locations for supported locations.
881
+ :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 DataExchange/Listing.
882
+ :param pulumi.Input[builtins.str] name: The resource name of the subscription. e.g. "projects/myproject/locations/us/subscriptions/123"
883
+ :param pulumi.Input[builtins.str] organization_display_name: Display name of the project of this subscription.
884
+ :param pulumi.Input[builtins.str] organization_id: Organization of the project this subscription belongs to.
885
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
886
+ If it is not provided, the provider project is used.
887
+ :param pulumi.Input[builtins.str] resource_type: Listing shared asset type.
888
+ :param pulumi.Input[builtins.str] state: Current state of the subscription.
889
+ :param pulumi.Input[builtins.str] subscriber_contact: Email of the subscriber.
890
+ :param pulumi.Input[builtins.str] subscription_id: Name of the subscription to create.
891
+ """
892
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
893
+
894
+ __props__ = _DataExchangeSubscriptionState.__new__(_DataExchangeSubscriptionState)
895
+
896
+ __props__.__dict__["creation_time"] = creation_time
897
+ __props__.__dict__["data_exchange"] = data_exchange
898
+ __props__.__dict__["data_exchange_id"] = data_exchange_id
899
+ __props__.__dict__["data_exchange_location"] = data_exchange_location
900
+ __props__.__dict__["data_exchange_project"] = data_exchange_project
901
+ __props__.__dict__["destination_dataset"] = destination_dataset
902
+ __props__.__dict__["last_modify_time"] = last_modify_time
903
+ __props__.__dict__["linked_dataset_maps"] = linked_dataset_maps
904
+ __props__.__dict__["linked_resources"] = linked_resources
905
+ __props__.__dict__["location"] = location
906
+ __props__.__dict__["log_linked_dataset_query_user_email"] = log_linked_dataset_query_user_email
907
+ __props__.__dict__["name"] = name
908
+ __props__.__dict__["organization_display_name"] = organization_display_name
909
+ __props__.__dict__["organization_id"] = organization_id
910
+ __props__.__dict__["project"] = project
911
+ __props__.__dict__["refresh_policy"] = refresh_policy
912
+ __props__.__dict__["resource_type"] = resource_type
913
+ __props__.__dict__["state"] = state
914
+ __props__.__dict__["subscriber_contact"] = subscriber_contact
915
+ __props__.__dict__["subscription_id"] = subscription_id
916
+ return DataExchangeSubscription(resource_name, opts=opts, __props__=__props__)
917
+
918
+ @property
919
+ @pulumi.getter(name="creationTime")
920
+ def creation_time(self) -> pulumi.Output[builtins.str]:
921
+ """
922
+ Timestamp when the subscription was created.
923
+ """
924
+ return pulumi.get(self, "creation_time")
925
+
926
+ @property
927
+ @pulumi.getter(name="dataExchange")
928
+ def data_exchange(self) -> pulumi.Output[builtins.str]:
929
+ """
930
+ Output only. Resource name of the source Data Exchange. e.g. projects/123/locations/us/dataExchanges/456
931
+ """
932
+ return pulumi.get(self, "data_exchange")
933
+
934
+ @property
935
+ @pulumi.getter(name="dataExchangeId")
936
+ def data_exchange_id(self) -> pulumi.Output[builtins.str]:
937
+ """
938
+ 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.
939
+ """
940
+ return pulumi.get(self, "data_exchange_id")
941
+
942
+ @property
943
+ @pulumi.getter(name="dataExchangeLocation")
944
+ def data_exchange_location(self) -> pulumi.Output[builtins.str]:
945
+ """
946
+ The name of the location of the Data Exchange.
947
+ """
948
+ return pulumi.get(self, "data_exchange_location")
949
+
950
+ @property
951
+ @pulumi.getter(name="dataExchangeProject")
952
+ def data_exchange_project(self) -> pulumi.Output[builtins.str]:
953
+ """
954
+ The ID of the Google Cloud project where the Data Exchange is located.
955
+ """
956
+ return pulumi.get(self, "data_exchange_project")
957
+
958
+ @property
959
+ @pulumi.getter(name="destinationDataset")
960
+ def destination_dataset(self) -> pulumi.Output[Optional['outputs.DataExchangeSubscriptionDestinationDataset']]:
961
+ """
962
+ BigQuery destination dataset to create for the subscriber.
963
+ Structure is documented below.
964
+ """
965
+ return pulumi.get(self, "destination_dataset")
966
+
967
+ @property
968
+ @pulumi.getter(name="lastModifyTime")
969
+ def last_modify_time(self) -> pulumi.Output[builtins.str]:
970
+ """
971
+ Timestamp when the subscription was last modified.
972
+ """
973
+ return pulumi.get(self, "last_modify_time")
974
+
975
+ @property
976
+ @pulumi.getter(name="linkedDatasetMaps")
977
+ def linked_dataset_maps(self) -> pulumi.Output[Sequence['outputs.DataExchangeSubscriptionLinkedDatasetMap']]:
978
+ """
979
+ Output only. Map of listing resource names to associated linked resource,
980
+ e.g. projects/123/locations/us/dataExchanges/456/listings/789 > projects/123/datasets/my_dataset
981
+ For Data Exchange subscriptions, this map may contain multiple entries if the Data Exchange has multiple listings.
982
+ Structure is documented below.
983
+ """
984
+ return pulumi.get(self, "linked_dataset_maps")
985
+
986
+ @property
987
+ @pulumi.getter(name="linkedResources")
988
+ def linked_resources(self) -> pulumi.Output[Sequence['outputs.DataExchangeSubscriptionLinkedResource']]:
989
+ """
990
+ Output only. Linked resources created in the subscription. Only contains values if state = STATE_ACTIVE.
991
+ Structure is documented below.
992
+ """
993
+ return pulumi.get(self, "linked_resources")
994
+
995
+ @property
996
+ @pulumi.getter
997
+ def location(self) -> pulumi.Output[builtins.str]:
998
+ """
999
+ The geographic location where the Subscription (and its linked dataset) should reside.
1000
+ This is the subscriber's desired location for the created resources.
1001
+ See https://cloud.google.com/bigquery/docs/locations for supported locations.
1002
+ """
1003
+ return pulumi.get(self, "location")
1004
+
1005
+ @property
1006
+ @pulumi.getter(name="logLinkedDatasetQueryUserEmail")
1007
+ def log_linked_dataset_query_user_email(self) -> pulumi.Output[builtins.bool]:
1008
+ """
1009
+ Output only. By default, false. If true, the Subscriber agreed to the email sharing mandate that is enabled for DataExchange/Listing.
1010
+ """
1011
+ return pulumi.get(self, "log_linked_dataset_query_user_email")
1012
+
1013
+ @property
1014
+ @pulumi.getter
1015
+ def name(self) -> pulumi.Output[builtins.str]:
1016
+ """
1017
+ The resource name of the subscription. e.g. "projects/myproject/locations/us/subscriptions/123"
1018
+ """
1019
+ return pulumi.get(self, "name")
1020
+
1021
+ @property
1022
+ @pulumi.getter(name="organizationDisplayName")
1023
+ def organization_display_name(self) -> pulumi.Output[builtins.str]:
1024
+ """
1025
+ Display name of the project of this subscription.
1026
+ """
1027
+ return pulumi.get(self, "organization_display_name")
1028
+
1029
+ @property
1030
+ @pulumi.getter(name="organizationId")
1031
+ def organization_id(self) -> pulumi.Output[builtins.str]:
1032
+ """
1033
+ Organization of the project this subscription belongs to.
1034
+ """
1035
+ return pulumi.get(self, "organization_id")
1036
+
1037
+ @property
1038
+ @pulumi.getter
1039
+ def project(self) -> pulumi.Output[builtins.str]:
1040
+ """
1041
+ The ID of the project in which the resource belongs.
1042
+ If it is not provided, the provider project is used.
1043
+ """
1044
+ return pulumi.get(self, "project")
1045
+
1046
+ @property
1047
+ @pulumi.getter(name="refreshPolicy")
1048
+ def refresh_policy(self) -> pulumi.Output[Optional[builtins.str]]:
1049
+ return pulumi.get(self, "refresh_policy")
1050
+
1051
+ @property
1052
+ @pulumi.getter(name="resourceType")
1053
+ def resource_type(self) -> pulumi.Output[builtins.str]:
1054
+ """
1055
+ Listing shared asset type.
1056
+ """
1057
+ return pulumi.get(self, "resource_type")
1058
+
1059
+ @property
1060
+ @pulumi.getter
1061
+ def state(self) -> pulumi.Output[builtins.str]:
1062
+ """
1063
+ Current state of the subscription.
1064
+ """
1065
+ return pulumi.get(self, "state")
1066
+
1067
+ @property
1068
+ @pulumi.getter(name="subscriberContact")
1069
+ def subscriber_contact(self) -> pulumi.Output[Optional[builtins.str]]:
1070
+ """
1071
+ Email of the subscriber.
1072
+ """
1073
+ return pulumi.get(self, "subscriber_contact")
1074
+
1075
+ @property
1076
+ @pulumi.getter(name="subscriptionId")
1077
+ def subscription_id(self) -> pulumi.Output[builtins.str]:
1078
+ """
1079
+ Name of the subscription to create.
1080
+ """
1081
+ return pulumi.get(self, "subscription_id")
1082
+