pulumi-gcp 8.2.0a1726671837__py3-none-any.whl → 8.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. pulumi_gcp/__init__.py +158 -0
  2. pulumi_gcp/alloydb/_inputs.py +20 -0
  3. pulumi_gcp/alloydb/instance.py +36 -0
  4. pulumi_gcp/alloydb/outputs.py +14 -0
  5. pulumi_gcp/bigquery/__init__.py +1 -0
  6. pulumi_gcp/bigquery/get_tables.py +143 -0
  7. pulumi_gcp/bigquery/outputs.py +30 -0
  8. pulumi_gcp/compute/__init__.py +2 -0
  9. pulumi_gcp/compute/_inputs.py +12481 -9158
  10. pulumi_gcp/compute/attached_disk.py +103 -0
  11. pulumi_gcp/compute/backend_service.py +29 -22
  12. pulumi_gcp/compute/firewall_policy_with_rules.py +769 -0
  13. pulumi_gcp/compute/get_instance.py +3 -0
  14. pulumi_gcp/compute/network_firewall_policy_with_rules.py +826 -0
  15. pulumi_gcp/compute/outputs.py +3695 -1293
  16. pulumi_gcp/compute/region_backend_service.py +29 -22
  17. pulumi_gcp/compute/region_target_http_proxy.py +159 -0
  18. pulumi_gcp/compute/region_target_https_proxy.py +175 -0
  19. pulumi_gcp/compute/router_nat.py +27 -66
  20. pulumi_gcp/compute/service_attachment.py +75 -0
  21. pulumi_gcp/compute/target_http_proxy.py +49 -28
  22. pulumi_gcp/compute/target_https_proxy.py +49 -28
  23. pulumi_gcp/config/__init__.pyi +6 -0
  24. pulumi_gcp/config/vars.py +12 -0
  25. pulumi_gcp/container/_inputs.py +168 -99
  26. pulumi_gcp/container/attached_cluster.py +54 -1
  27. pulumi_gcp/container/outputs.py +155 -70
  28. pulumi_gcp/databasemigrationservice/__init__.py +1 -0
  29. pulumi_gcp/databasemigrationservice/_inputs.py +362 -0
  30. pulumi_gcp/databasemigrationservice/migration_job.py +1739 -0
  31. pulumi_gcp/databasemigrationservice/outputs.py +268 -0
  32. pulumi_gcp/dataproc/get_metastore_service.py +11 -1
  33. pulumi_gcp/dataproc/metastore_federation.py +8 -8
  34. pulumi_gcp/dataproc/metastore_service.py +95 -0
  35. pulumi_gcp/datastream/stream.py +21 -14
  36. pulumi_gcp/developerconnect/__init__.py +11 -0
  37. pulumi_gcp/developerconnect/_inputs.py +304 -0
  38. pulumi_gcp/developerconnect/connection.py +1037 -0
  39. pulumi_gcp/developerconnect/git_repository_link.py +873 -0
  40. pulumi_gcp/developerconnect/outputs.py +249 -0
  41. pulumi_gcp/discoveryengine/__init__.py +1 -0
  42. pulumi_gcp/discoveryengine/_inputs.py +131 -0
  43. pulumi_gcp/discoveryengine/outputs.py +131 -0
  44. pulumi_gcp/discoveryengine/target_site.py +870 -0
  45. pulumi_gcp/dns/managed_zone.py +1 -1
  46. pulumi_gcp/filestore/get_instance.py +21 -1
  47. pulumi_gcp/filestore/instance.py +94 -0
  48. pulumi_gcp/gkehub/feature_membership.py +140 -62
  49. pulumi_gcp/gkeonprem/_inputs.py +3 -3
  50. pulumi_gcp/gkeonprem/outputs.py +2 -2
  51. pulumi_gcp/healthcare/__init__.py +1 -0
  52. pulumi_gcp/healthcare/_inputs.py +39 -0
  53. pulumi_gcp/healthcare/outputs.py +40 -0
  54. pulumi_gcp/healthcare/workspace.py +465 -0
  55. pulumi_gcp/looker/instance.py +81 -0
  56. pulumi_gcp/memorystore/__init__.py +10 -0
  57. pulumi_gcp/memorystore/_inputs.py +731 -0
  58. pulumi_gcp/memorystore/instance.py +1663 -0
  59. pulumi_gcp/memorystore/outputs.py +598 -0
  60. pulumi_gcp/netapp/_inputs.py +63 -0
  61. pulumi_gcp/netapp/outputs.py +57 -0
  62. pulumi_gcp/netapp/storage_pool.py +54 -0
  63. pulumi_gcp/netapp/volume.py +183 -0
  64. pulumi_gcp/organizations/folder.py +52 -33
  65. pulumi_gcp/provider.py +60 -0
  66. pulumi_gcp/pubsub/subscription.py +43 -7
  67. pulumi_gcp/pulumi-plugin.json +1 -1
  68. pulumi_gcp/secretmanager/__init__.py +8 -0
  69. pulumi_gcp/secretmanager/_inputs.py +308 -0
  70. pulumi_gcp/secretmanager/get_regional_secret.py +279 -0
  71. pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +173 -0
  72. pulumi_gcp/secretmanager/get_regional_secret_version.py +241 -0
  73. pulumi_gcp/secretmanager/outputs.py +336 -0
  74. pulumi_gcp/secretmanager/regional_secret.py +1433 -0
  75. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +1082 -0
  76. pulumi_gcp/secretmanager/regional_secret_iam_member.py +1082 -0
  77. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +901 -0
  78. pulumi_gcp/secretmanager/regional_secret_version.py +753 -0
  79. pulumi_gcp/securitycenter/__init__.py +4 -0
  80. pulumi_gcp/securitycenter/folder_scc_big_query_export.py +795 -0
  81. pulumi_gcp/securitycenter/organization_scc_big_query_export.py +738 -0
  82. pulumi_gcp/securitycenter/project_scc_big_query_export.py +749 -0
  83. pulumi_gcp/securitycenter/v2_organization_scc_big_query_export.py +862 -0
  84. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +6 -2
  85. pulumi_gcp/securitycenter/v2_project_mute_config.py +2 -2
  86. pulumi_gcp/siteverification/__init__.py +3 -0
  87. pulumi_gcp/siteverification/_inputs.py +85 -0
  88. pulumi_gcp/siteverification/outputs.py +57 -0
  89. pulumi_gcp/siteverification/web_resource.py +398 -0
  90. pulumi_gcp/spanner/__init__.py +1 -0
  91. pulumi_gcp/spanner/_inputs.py +129 -0
  92. pulumi_gcp/spanner/backup_schedule.py +748 -0
  93. pulumi_gcp/spanner/get_instance.py +11 -1
  94. pulumi_gcp/spanner/instance.py +56 -0
  95. pulumi_gcp/spanner/outputs.py +93 -0
  96. pulumi_gcp/vpcaccess/connector.py +21 -28
  97. {pulumi_gcp-8.2.0a1726671837.dist-info → pulumi_gcp-8.3.0.dist-info}/METADATA +1 -1
  98. {pulumi_gcp-8.2.0a1726671837.dist-info → pulumi_gcp-8.3.0.dist-info}/RECORD +100 -69
  99. {pulumi_gcp-8.2.0a1726671837.dist-info → pulumi_gcp-8.3.0.dist-info}/WHEEL +0 -0
  100. {pulumi_gcp-8.2.0a1726671837.dist-info → pulumi_gcp-8.3.0.dist-info}/top_level.txt +0 -0
@@ -38,6 +38,7 @@ __all__ = [
38
38
  'Hl7StoreNotificationConfig',
39
39
  'Hl7StoreNotificationConfigs',
40
40
  'Hl7StoreParserConfig',
41
+ 'WorkspaceSettings',
41
42
  ]
42
43
 
43
44
  @pulumi.output_type
@@ -1019,3 +1020,42 @@ class Hl7StoreParserConfig(dict):
1019
1020
  return pulumi.get(self, "version")
1020
1021
 
1021
1022
 
1023
+ @pulumi.output_type
1024
+ class WorkspaceSettings(dict):
1025
+ @staticmethod
1026
+ def __key_warning(key: str):
1027
+ suggest = None
1028
+ if key == "dataProjectIds":
1029
+ suggest = "data_project_ids"
1030
+
1031
+ if suggest:
1032
+ pulumi.log.warn(f"Key '{key}' not found in WorkspaceSettings. Access the value via the '{suggest}' property getter instead.")
1033
+
1034
+ def __getitem__(self, key: str) -> Any:
1035
+ WorkspaceSettings.__key_warning(key)
1036
+ return super().__getitem__(key)
1037
+
1038
+ def get(self, key: str, default = None) -> Any:
1039
+ WorkspaceSettings.__key_warning(key)
1040
+ return super().get(key, default)
1041
+
1042
+ def __init__(__self__, *,
1043
+ data_project_ids: Sequence[str]):
1044
+ """
1045
+ :param Sequence[str] data_project_ids: Project IDs for data projects hosted in a workspace.
1046
+
1047
+ - - -
1048
+ """
1049
+ pulumi.set(__self__, "data_project_ids", data_project_ids)
1050
+
1051
+ @property
1052
+ @pulumi.getter(name="dataProjectIds")
1053
+ def data_project_ids(self) -> Sequence[str]:
1054
+ """
1055
+ Project IDs for data projects hosted in a workspace.
1056
+
1057
+ - - -
1058
+ """
1059
+ return pulumi.get(self, "data_project_ids")
1060
+
1061
+
@@ -0,0 +1,465 @@
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
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['WorkspaceArgs', 'Workspace']
20
+
21
+ @pulumi.input_type
22
+ class WorkspaceArgs:
23
+ def __init__(__self__, *,
24
+ dataset: pulumi.Input[str],
25
+ settings: pulumi.Input['WorkspaceSettingsArgs'],
26
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
27
+ name: Optional[pulumi.Input[str]] = None):
28
+ """
29
+ The set of arguments for constructing a Workspace resource.
30
+ :param pulumi.Input[str] dataset: Identifies the dataset addressed by this request. Must be in the format
31
+ 'projects/{project}/locations/{location}/datasets/{dataset}'
32
+ :param pulumi.Input['WorkspaceSettingsArgs'] settings: Settings associated with this workspace.
33
+ Structure is documented below.
34
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The user labels. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg",
35
+ "count": "3" } **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
36
+ Please refer to the field 'effective_labels' for all of the labels present on the resource.
37
+ :param pulumi.Input[str] name: The name of the workspace, in the format 'projects/{projectId}/locations/{location}/datasets/{datasetId}/dataMapperWorkspaces/{workspaceId}'
38
+ """
39
+ pulumi.set(__self__, "dataset", dataset)
40
+ pulumi.set(__self__, "settings", settings)
41
+ if labels is not None:
42
+ pulumi.set(__self__, "labels", labels)
43
+ if name is not None:
44
+ pulumi.set(__self__, "name", name)
45
+
46
+ @property
47
+ @pulumi.getter
48
+ def dataset(self) -> pulumi.Input[str]:
49
+ """
50
+ Identifies the dataset addressed by this request. Must be in the format
51
+ 'projects/{project}/locations/{location}/datasets/{dataset}'
52
+ """
53
+ return pulumi.get(self, "dataset")
54
+
55
+ @dataset.setter
56
+ def dataset(self, value: pulumi.Input[str]):
57
+ pulumi.set(self, "dataset", value)
58
+
59
+ @property
60
+ @pulumi.getter
61
+ def settings(self) -> pulumi.Input['WorkspaceSettingsArgs']:
62
+ """
63
+ Settings associated with this workspace.
64
+ Structure is documented below.
65
+ """
66
+ return pulumi.get(self, "settings")
67
+
68
+ @settings.setter
69
+ def settings(self, value: pulumi.Input['WorkspaceSettingsArgs']):
70
+ pulumi.set(self, "settings", value)
71
+
72
+ @property
73
+ @pulumi.getter
74
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
75
+ """
76
+ The user labels. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg",
77
+ "count": "3" } **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
78
+ Please refer to the field 'effective_labels' for all of the labels present on the resource.
79
+ """
80
+ return pulumi.get(self, "labels")
81
+
82
+ @labels.setter
83
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
84
+ pulumi.set(self, "labels", value)
85
+
86
+ @property
87
+ @pulumi.getter
88
+ def name(self) -> Optional[pulumi.Input[str]]:
89
+ """
90
+ The name of the workspace, in the format 'projects/{projectId}/locations/{location}/datasets/{datasetId}/dataMapperWorkspaces/{workspaceId}'
91
+ """
92
+ return pulumi.get(self, "name")
93
+
94
+ @name.setter
95
+ def name(self, value: Optional[pulumi.Input[str]]):
96
+ pulumi.set(self, "name", value)
97
+
98
+
99
+ @pulumi.input_type
100
+ class _WorkspaceState:
101
+ def __init__(__self__, *,
102
+ dataset: Optional[pulumi.Input[str]] = None,
103
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
104
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
105
+ name: Optional[pulumi.Input[str]] = None,
106
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
107
+ settings: Optional[pulumi.Input['WorkspaceSettingsArgs']] = None):
108
+ """
109
+ Input properties used for looking up and filtering Workspace resources.
110
+ :param pulumi.Input[str] dataset: Identifies the dataset addressed by this request. Must be in the format
111
+ 'projects/{project}/locations/{location}/datasets/{dataset}'
112
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
113
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The user labels. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg",
114
+ "count": "3" } **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
115
+ Please refer to the field 'effective_labels' for all of the labels present on the resource.
116
+ :param pulumi.Input[str] name: The name of the workspace, in the format 'projects/{projectId}/locations/{location}/datasets/{datasetId}/dataMapperWorkspaces/{workspaceId}'
117
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
118
+ and default labels configured on the provider.
119
+ :param pulumi.Input['WorkspaceSettingsArgs'] settings: Settings associated with this workspace.
120
+ Structure is documented below.
121
+ """
122
+ if dataset is not None:
123
+ pulumi.set(__self__, "dataset", dataset)
124
+ if effective_labels is not None:
125
+ pulumi.set(__self__, "effective_labels", effective_labels)
126
+ if labels is not None:
127
+ pulumi.set(__self__, "labels", labels)
128
+ if name is not None:
129
+ pulumi.set(__self__, "name", name)
130
+ if pulumi_labels is not None:
131
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
132
+ if settings is not None:
133
+ pulumi.set(__self__, "settings", settings)
134
+
135
+ @property
136
+ @pulumi.getter
137
+ def dataset(self) -> Optional[pulumi.Input[str]]:
138
+ """
139
+ Identifies the dataset addressed by this request. Must be in the format
140
+ 'projects/{project}/locations/{location}/datasets/{dataset}'
141
+ """
142
+ return pulumi.get(self, "dataset")
143
+
144
+ @dataset.setter
145
+ def dataset(self, value: Optional[pulumi.Input[str]]):
146
+ pulumi.set(self, "dataset", value)
147
+
148
+ @property
149
+ @pulumi.getter(name="effectiveLabels")
150
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
151
+ """
152
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
153
+ """
154
+ return pulumi.get(self, "effective_labels")
155
+
156
+ @effective_labels.setter
157
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
158
+ pulumi.set(self, "effective_labels", value)
159
+
160
+ @property
161
+ @pulumi.getter
162
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
163
+ """
164
+ The user labels. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg",
165
+ "count": "3" } **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
166
+ Please refer to the field 'effective_labels' for all of the labels present on the resource.
167
+ """
168
+ return pulumi.get(self, "labels")
169
+
170
+ @labels.setter
171
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
172
+ pulumi.set(self, "labels", value)
173
+
174
+ @property
175
+ @pulumi.getter
176
+ def name(self) -> Optional[pulumi.Input[str]]:
177
+ """
178
+ The name of the workspace, in the format 'projects/{projectId}/locations/{location}/datasets/{datasetId}/dataMapperWorkspaces/{workspaceId}'
179
+ """
180
+ return pulumi.get(self, "name")
181
+
182
+ @name.setter
183
+ def name(self, value: Optional[pulumi.Input[str]]):
184
+ pulumi.set(self, "name", value)
185
+
186
+ @property
187
+ @pulumi.getter(name="pulumiLabels")
188
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
189
+ """
190
+ The combination of labels configured directly on the resource
191
+ and default labels configured on the provider.
192
+ """
193
+ return pulumi.get(self, "pulumi_labels")
194
+
195
+ @pulumi_labels.setter
196
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
197
+ pulumi.set(self, "pulumi_labels", value)
198
+
199
+ @property
200
+ @pulumi.getter
201
+ def settings(self) -> Optional[pulumi.Input['WorkspaceSettingsArgs']]:
202
+ """
203
+ Settings associated with this workspace.
204
+ Structure is documented below.
205
+ """
206
+ return pulumi.get(self, "settings")
207
+
208
+ @settings.setter
209
+ def settings(self, value: Optional[pulumi.Input['WorkspaceSettingsArgs']]):
210
+ pulumi.set(self, "settings", value)
211
+
212
+
213
+ class Workspace(pulumi.CustomResource):
214
+ @overload
215
+ def __init__(__self__,
216
+ resource_name: str,
217
+ opts: Optional[pulumi.ResourceOptions] = None,
218
+ dataset: Optional[pulumi.Input[str]] = None,
219
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
220
+ name: Optional[pulumi.Input[str]] = None,
221
+ settings: Optional[pulumi.Input[Union['WorkspaceSettingsArgs', 'WorkspaceSettingsArgsDict']]] = None,
222
+ __props__=None):
223
+ """
224
+ A Data Mapper workspace is used to configure Data Mapper access, permissions and data sources for mapping clinical patient data to the FHIR standard.
225
+
226
+ To get more information about Workspace, see:
227
+
228
+ * [API documentation](https://cloud.google.com/healthcare-api/healthcare-data-engine/docs/reference/rest/v1/projects.locations.datasets.dataMapperWorkspaces)
229
+ * How-to Guides
230
+ * [Create and manage Data Mapper workspaces ](https://cloud.google.com/healthcare-api/healthcare-data-engine/docs/manage-workspaces)
231
+
232
+ ## Example Usage
233
+
234
+ ### Healthcare Workspace Basic
235
+
236
+ ```python
237
+ import pulumi
238
+ import pulumi_gcp as gcp
239
+
240
+ dataset = gcp.healthcare.Dataset("dataset",
241
+ name="example-dataset",
242
+ location="us-central1")
243
+ default = gcp.healthcare.Workspace("default",
244
+ name="example-dm-workspace",
245
+ dataset=dataset.id,
246
+ settings={
247
+ "data_project_ids": ["example-data-source-project-id"],
248
+ },
249
+ labels={
250
+ "label1": "labelvalue1",
251
+ })
252
+ ```
253
+
254
+ ## Import
255
+
256
+ Workspace can be imported using any of these accepted formats:
257
+
258
+ * `{{dataset}}/dataMapperWorkspaces/{{name}}`
259
+
260
+ When using the `pulumi import` command, Workspace can be imported using one of the formats above. For example:
261
+
262
+ ```sh
263
+ $ pulumi import gcp:healthcare/workspace:Workspace default {{dataset}}/dataMapperWorkspaces/{{name}}
264
+ ```
265
+
266
+ :param str resource_name: The name of the resource.
267
+ :param pulumi.ResourceOptions opts: Options for the resource.
268
+ :param pulumi.Input[str] dataset: Identifies the dataset addressed by this request. Must be in the format
269
+ 'projects/{project}/locations/{location}/datasets/{dataset}'
270
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The user labels. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg",
271
+ "count": "3" } **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
272
+ Please refer to the field 'effective_labels' for all of the labels present on the resource.
273
+ :param pulumi.Input[str] name: The name of the workspace, in the format 'projects/{projectId}/locations/{location}/datasets/{datasetId}/dataMapperWorkspaces/{workspaceId}'
274
+ :param pulumi.Input[Union['WorkspaceSettingsArgs', 'WorkspaceSettingsArgsDict']] settings: Settings associated with this workspace.
275
+ Structure is documented below.
276
+ """
277
+ ...
278
+ @overload
279
+ def __init__(__self__,
280
+ resource_name: str,
281
+ args: WorkspaceArgs,
282
+ opts: Optional[pulumi.ResourceOptions] = None):
283
+ """
284
+ A Data Mapper workspace is used to configure Data Mapper access, permissions and data sources for mapping clinical patient data to the FHIR standard.
285
+
286
+ To get more information about Workspace, see:
287
+
288
+ * [API documentation](https://cloud.google.com/healthcare-api/healthcare-data-engine/docs/reference/rest/v1/projects.locations.datasets.dataMapperWorkspaces)
289
+ * How-to Guides
290
+ * [Create and manage Data Mapper workspaces ](https://cloud.google.com/healthcare-api/healthcare-data-engine/docs/manage-workspaces)
291
+
292
+ ## Example Usage
293
+
294
+ ### Healthcare Workspace Basic
295
+
296
+ ```python
297
+ import pulumi
298
+ import pulumi_gcp as gcp
299
+
300
+ dataset = gcp.healthcare.Dataset("dataset",
301
+ name="example-dataset",
302
+ location="us-central1")
303
+ default = gcp.healthcare.Workspace("default",
304
+ name="example-dm-workspace",
305
+ dataset=dataset.id,
306
+ settings={
307
+ "data_project_ids": ["example-data-source-project-id"],
308
+ },
309
+ labels={
310
+ "label1": "labelvalue1",
311
+ })
312
+ ```
313
+
314
+ ## Import
315
+
316
+ Workspace can be imported using any of these accepted formats:
317
+
318
+ * `{{dataset}}/dataMapperWorkspaces/{{name}}`
319
+
320
+ When using the `pulumi import` command, Workspace can be imported using one of the formats above. For example:
321
+
322
+ ```sh
323
+ $ pulumi import gcp:healthcare/workspace:Workspace default {{dataset}}/dataMapperWorkspaces/{{name}}
324
+ ```
325
+
326
+ :param str resource_name: The name of the resource.
327
+ :param WorkspaceArgs args: The arguments to use to populate this resource's properties.
328
+ :param pulumi.ResourceOptions opts: Options for the resource.
329
+ """
330
+ ...
331
+ def __init__(__self__, resource_name: str, *args, **kwargs):
332
+ resource_args, opts = _utilities.get_resource_args_opts(WorkspaceArgs, pulumi.ResourceOptions, *args, **kwargs)
333
+ if resource_args is not None:
334
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
335
+ else:
336
+ __self__._internal_init(resource_name, *args, **kwargs)
337
+
338
+ def _internal_init(__self__,
339
+ resource_name: str,
340
+ opts: Optional[pulumi.ResourceOptions] = None,
341
+ dataset: Optional[pulumi.Input[str]] = None,
342
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
343
+ name: Optional[pulumi.Input[str]] = None,
344
+ settings: Optional[pulumi.Input[Union['WorkspaceSettingsArgs', 'WorkspaceSettingsArgsDict']]] = None,
345
+ __props__=None):
346
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
347
+ if not isinstance(opts, pulumi.ResourceOptions):
348
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
349
+ if opts.id is None:
350
+ if __props__ is not None:
351
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
352
+ __props__ = WorkspaceArgs.__new__(WorkspaceArgs)
353
+
354
+ if dataset is None and not opts.urn:
355
+ raise TypeError("Missing required property 'dataset'")
356
+ __props__.__dict__["dataset"] = dataset
357
+ __props__.__dict__["labels"] = labels
358
+ __props__.__dict__["name"] = name
359
+ if settings is None and not opts.urn:
360
+ raise TypeError("Missing required property 'settings'")
361
+ __props__.__dict__["settings"] = settings
362
+ __props__.__dict__["effective_labels"] = None
363
+ __props__.__dict__["pulumi_labels"] = None
364
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
365
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
366
+ super(Workspace, __self__).__init__(
367
+ 'gcp:healthcare/workspace:Workspace',
368
+ resource_name,
369
+ __props__,
370
+ opts)
371
+
372
+ @staticmethod
373
+ def get(resource_name: str,
374
+ id: pulumi.Input[str],
375
+ opts: Optional[pulumi.ResourceOptions] = None,
376
+ dataset: Optional[pulumi.Input[str]] = None,
377
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
378
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
379
+ name: Optional[pulumi.Input[str]] = None,
380
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
381
+ settings: Optional[pulumi.Input[Union['WorkspaceSettingsArgs', 'WorkspaceSettingsArgsDict']]] = None) -> 'Workspace':
382
+ """
383
+ Get an existing Workspace resource's state with the given name, id, and optional extra
384
+ properties used to qualify the lookup.
385
+
386
+ :param str resource_name: The unique name of the resulting resource.
387
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
388
+ :param pulumi.ResourceOptions opts: Options for the resource.
389
+ :param pulumi.Input[str] dataset: Identifies the dataset addressed by this request. Must be in the format
390
+ 'projects/{project}/locations/{location}/datasets/{dataset}'
391
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
392
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The user labels. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg",
393
+ "count": "3" } **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
394
+ Please refer to the field 'effective_labels' for all of the labels present on the resource.
395
+ :param pulumi.Input[str] name: The name of the workspace, in the format 'projects/{projectId}/locations/{location}/datasets/{datasetId}/dataMapperWorkspaces/{workspaceId}'
396
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
397
+ and default labels configured on the provider.
398
+ :param pulumi.Input[Union['WorkspaceSettingsArgs', 'WorkspaceSettingsArgsDict']] settings: Settings associated with this workspace.
399
+ Structure is documented below.
400
+ """
401
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
402
+
403
+ __props__ = _WorkspaceState.__new__(_WorkspaceState)
404
+
405
+ __props__.__dict__["dataset"] = dataset
406
+ __props__.__dict__["effective_labels"] = effective_labels
407
+ __props__.__dict__["labels"] = labels
408
+ __props__.__dict__["name"] = name
409
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
410
+ __props__.__dict__["settings"] = settings
411
+ return Workspace(resource_name, opts=opts, __props__=__props__)
412
+
413
+ @property
414
+ @pulumi.getter
415
+ def dataset(self) -> pulumi.Output[str]:
416
+ """
417
+ Identifies the dataset addressed by this request. Must be in the format
418
+ 'projects/{project}/locations/{location}/datasets/{dataset}'
419
+ """
420
+ return pulumi.get(self, "dataset")
421
+
422
+ @property
423
+ @pulumi.getter(name="effectiveLabels")
424
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
425
+ """
426
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
427
+ """
428
+ return pulumi.get(self, "effective_labels")
429
+
430
+ @property
431
+ @pulumi.getter
432
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
433
+ """
434
+ The user labels. An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg",
435
+ "count": "3" } **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
436
+ Please refer to the field 'effective_labels' for all of the labels present on the resource.
437
+ """
438
+ return pulumi.get(self, "labels")
439
+
440
+ @property
441
+ @pulumi.getter
442
+ def name(self) -> pulumi.Output[str]:
443
+ """
444
+ The name of the workspace, in the format 'projects/{projectId}/locations/{location}/datasets/{datasetId}/dataMapperWorkspaces/{workspaceId}'
445
+ """
446
+ return pulumi.get(self, "name")
447
+
448
+ @property
449
+ @pulumi.getter(name="pulumiLabels")
450
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
451
+ """
452
+ The combination of labels configured directly on the resource
453
+ and default labels configured on the provider.
454
+ """
455
+ return pulumi.get(self, "pulumi_labels")
456
+
457
+ @property
458
+ @pulumi.getter
459
+ def settings(self) -> pulumi.Output['outputs.WorkspaceSettings']:
460
+ """
461
+ Settings associated with this workspace.
462
+ Structure is documented below.
463
+ """
464
+ return pulumi.get(self, "settings")
465
+