pulumi-gcp 7.5.0a1704283083__py3-none-any.whl → 7.6.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. pulumi_gcp/__init__.py +99 -0
  2. pulumi_gcp/bigqueryanalyticshub/_inputs.py +40 -0
  3. pulumi_gcp/bigqueryanalyticshub/listing.py +117 -3
  4. pulumi_gcp/bigqueryanalyticshub/outputs.py +49 -0
  5. pulumi_gcp/clouddeploy/__init__.py +1 -0
  6. pulumi_gcp/clouddeploy/_inputs.py +239 -0
  7. pulumi_gcp/clouddeploy/automation.py +1103 -0
  8. pulumi_gcp/clouddeploy/outputs.py +246 -0
  9. pulumi_gcp/clouddomains/__init__.py +10 -0
  10. pulumi_gcp/clouddomains/_inputs.py +1098 -0
  11. pulumi_gcp/clouddomains/outputs.py +1156 -0
  12. pulumi_gcp/clouddomains/registration.py +1068 -0
  13. pulumi_gcp/cloudrunv2/job.py +4 -4
  14. pulumi_gcp/composer/_inputs.py +79 -1
  15. pulumi_gcp/composer/outputs.py +131 -4
  16. pulumi_gcp/compute/__init__.py +1 -0
  17. pulumi_gcp/compute/_inputs.py +180 -0
  18. pulumi_gcp/compute/get_instance_template.py +11 -1
  19. pulumi_gcp/compute/get_region_instance_template.py +11 -1
  20. pulumi_gcp/compute/get_reservation.py +212 -0
  21. pulumi_gcp/compute/instance_template.py +47 -0
  22. pulumi_gcp/compute/network_firewall_policy.py +20 -22
  23. pulumi_gcp/compute/outputs.py +325 -0
  24. pulumi_gcp/compute/region_instance_template.py +47 -0
  25. pulumi_gcp/compute/region_network_firewall_policy.py +31 -35
  26. pulumi_gcp/compute/router_peer.py +54 -0
  27. pulumi_gcp/compute/vpn_tunnel.py +8 -4
  28. pulumi_gcp/config/__init__.pyi +2 -0
  29. pulumi_gcp/config/vars.py +4 -0
  30. pulumi_gcp/container/_inputs.py +23 -0
  31. pulumi_gcp/container/aws_node_pool.py +7 -7
  32. pulumi_gcp/container/cluster.py +68 -14
  33. pulumi_gcp/container/get_cluster.py +11 -1
  34. pulumi_gcp/container/outputs.py +49 -0
  35. pulumi_gcp/dataflow/pipeline.py +1 -1
  36. pulumi_gcp/dataproc/_inputs.py +413 -39
  37. pulumi_gcp/dataproc/metastore_service.py +63 -0
  38. pulumi_gcp/dataproc/outputs.py +461 -39
  39. pulumi_gcp/dns/__init__.py +1 -0
  40. pulumi_gcp/dns/_inputs.py +94 -0
  41. pulumi_gcp/dns/get_managed_zones.py +89 -0
  42. pulumi_gcp/dns/outputs.py +62 -0
  43. pulumi_gcp/edgecontainer/vpn_connection.py +10 -10
  44. pulumi_gcp/filestore/__init__.py +1 -0
  45. pulumi_gcp/filestore/get_instance.py +258 -0
  46. pulumi_gcp/filestore/instance.py +7 -7
  47. pulumi_gcp/filestore/outputs.py +126 -0
  48. pulumi_gcp/gkebackup/backup_plan.py +24 -8
  49. pulumi_gcp/gkebackup/restore_plan.py +36 -12
  50. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +36 -12
  51. pulumi_gcp/gkebackup/restore_plan_iam_member.py +36 -12
  52. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +36 -12
  53. pulumi_gcp/gkehub/_inputs.py +502 -2
  54. pulumi_gcp/gkehub/feature.py +34 -0
  55. pulumi_gcp/gkehub/feature_membership.py +177 -0
  56. pulumi_gcp/gkehub/membership.py +18 -6
  57. pulumi_gcp/gkehub/outputs.py +502 -2
  58. pulumi_gcp/gkeonprem/_inputs.py +21 -25
  59. pulumi_gcp/gkeonprem/outputs.py +34 -25
  60. pulumi_gcp/gkeonprem/v_mware_node_pool.py +34 -0
  61. pulumi_gcp/integrationconnectors/__init__.py +1 -0
  62. pulumi_gcp/integrationconnectors/endpoint_attachment.py +669 -0
  63. pulumi_gcp/kms/_inputs.py +42 -0
  64. pulumi_gcp/kms/crypto_key.py +36 -0
  65. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  66. pulumi_gcp/kms/outputs.py +62 -0
  67. pulumi_gcp/logging/__init__.py +2 -0
  68. pulumi_gcp/logging/folder_settings.py +490 -0
  69. pulumi_gcp/logging/folder_sink.py +21 -21
  70. pulumi_gcp/logging/organization_settings.py +484 -0
  71. pulumi_gcp/logging/organization_sink.py +21 -21
  72. pulumi_gcp/logging/project_sink.py +7 -14
  73. pulumi_gcp/netapp/__init__.py +3 -0
  74. pulumi_gcp/netapp/active_directory.py +1413 -0
  75. pulumi_gcp/netapp/backup_vault.py +593 -0
  76. pulumi_gcp/netapp/kmsconfig.py +649 -0
  77. pulumi_gcp/orgpolicy/policy.py +28 -0
  78. pulumi_gcp/provider.py +20 -0
  79. pulumi_gcp/pubsub/subscription.py +29 -37
  80. pulumi_gcp/serviceaccount/account.py +47 -0
  81. pulumi_gcp/servicenetworking/connection.py +55 -1
  82. pulumi_gcp/sql/database_instance.py +2 -2
  83. pulumi_gcp/sql/ssl_cert.py +1 -1
  84. pulumi_gcp/sql/user.py +7 -7
  85. pulumi_gcp/storage/transfer_job.py +24 -5
  86. pulumi_gcp/vertex/__init__.py +3 -0
  87. pulumi_gcp/vertex/_inputs.py +339 -0
  88. pulumi_gcp/vertex/ai_feature_group.py +710 -0
  89. pulumi_gcp/vertex/ai_feature_online_store.py +962 -0
  90. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +804 -0
  91. pulumi_gcp/vertex/outputs.py +406 -0
  92. pulumi_gcp/vmwareengine/__init__.py +2 -0
  93. pulumi_gcp/vmwareengine/_inputs.py +84 -0
  94. pulumi_gcp/vmwareengine/external_access_rule.py +947 -0
  95. pulumi_gcp/vmwareengine/get_external_access_rule.py +245 -0
  96. pulumi_gcp/vmwareengine/outputs.py +146 -0
  97. pulumi_gcp/workflows/workflow.py +7 -7
  98. {pulumi_gcp-7.5.0a1704283083.dist-info → pulumi_gcp-7.6.0.dist-info}/METADATA +1 -1
  99. {pulumi_gcp-7.5.0a1704283083.dist-info → pulumi_gcp-7.6.0.dist-info}/RECORD +101 -82
  100. {pulumi_gcp-7.5.0a1704283083.dist-info → pulumi_gcp-7.6.0.dist-info}/WHEEL +0 -0
  101. {pulumi_gcp-7.5.0a1704283083.dist-info → pulumi_gcp-7.6.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,649 @@
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 pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+
12
+ __all__ = ['KmsconfigArgs', 'Kmsconfig']
13
+
14
+ @pulumi.input_type
15
+ class KmsconfigArgs:
16
+ def __init__(__self__, *,
17
+ crypto_key_name: pulumi.Input[str],
18
+ location: pulumi.Input[str],
19
+ description: Optional[pulumi.Input[str]] = None,
20
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
21
+ name: Optional[pulumi.Input[str]] = None,
22
+ project: Optional[pulumi.Input[str]] = None):
23
+ """
24
+ The set of arguments for constructing a Kmsconfig resource.
25
+ :param pulumi.Input[str] crypto_key_name: Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.
26
+ :param pulumi.Input[str] location: Name of the policy location. CMEK policies apply to the whole region.
27
+ :param pulumi.Input[str] description: Description for the CMEK policy.
28
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
29
+
30
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
31
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
32
+ :param pulumi.Input[str] name: Name of the CMEK policy.
33
+
34
+
35
+ - - -
36
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
37
+ If it is not provided, the provider project is used.
38
+ """
39
+ pulumi.set(__self__, "crypto_key_name", crypto_key_name)
40
+ pulumi.set(__self__, "location", location)
41
+ if description is not None:
42
+ pulumi.set(__self__, "description", description)
43
+ if labels is not None:
44
+ pulumi.set(__self__, "labels", labels)
45
+ if name is not None:
46
+ pulumi.set(__self__, "name", name)
47
+ if project is not None:
48
+ pulumi.set(__self__, "project", project)
49
+
50
+ @property
51
+ @pulumi.getter(name="cryptoKeyName")
52
+ def crypto_key_name(self) -> pulumi.Input[str]:
53
+ """
54
+ Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.
55
+ """
56
+ return pulumi.get(self, "crypto_key_name")
57
+
58
+ @crypto_key_name.setter
59
+ def crypto_key_name(self, value: pulumi.Input[str]):
60
+ pulumi.set(self, "crypto_key_name", value)
61
+
62
+ @property
63
+ @pulumi.getter
64
+ def location(self) -> pulumi.Input[str]:
65
+ """
66
+ Name of the policy location. CMEK policies apply to the whole region.
67
+ """
68
+ return pulumi.get(self, "location")
69
+
70
+ @location.setter
71
+ def location(self, value: pulumi.Input[str]):
72
+ pulumi.set(self, "location", value)
73
+
74
+ @property
75
+ @pulumi.getter
76
+ def description(self) -> Optional[pulumi.Input[str]]:
77
+ """
78
+ Description for the CMEK policy.
79
+ """
80
+ return pulumi.get(self, "description")
81
+
82
+ @description.setter
83
+ def description(self, value: Optional[pulumi.Input[str]]):
84
+ pulumi.set(self, "description", value)
85
+
86
+ @property
87
+ @pulumi.getter
88
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
89
+ """
90
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
91
+
92
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
93
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
94
+ """
95
+ return pulumi.get(self, "labels")
96
+
97
+ @labels.setter
98
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
99
+ pulumi.set(self, "labels", value)
100
+
101
+ @property
102
+ @pulumi.getter
103
+ def name(self) -> Optional[pulumi.Input[str]]:
104
+ """
105
+ Name of the CMEK policy.
106
+
107
+
108
+ - - -
109
+ """
110
+ return pulumi.get(self, "name")
111
+
112
+ @name.setter
113
+ def name(self, value: Optional[pulumi.Input[str]]):
114
+ pulumi.set(self, "name", value)
115
+
116
+ @property
117
+ @pulumi.getter
118
+ def project(self) -> Optional[pulumi.Input[str]]:
119
+ """
120
+ The ID of the project in which the resource belongs.
121
+ If it is not provided, the provider project is used.
122
+ """
123
+ return pulumi.get(self, "project")
124
+
125
+ @project.setter
126
+ def project(self, value: Optional[pulumi.Input[str]]):
127
+ pulumi.set(self, "project", value)
128
+
129
+
130
+ @pulumi.input_type
131
+ class _KmsconfigState:
132
+ def __init__(__self__, *,
133
+ crypto_key_name: Optional[pulumi.Input[str]] = None,
134
+ description: Optional[pulumi.Input[str]] = None,
135
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
136
+ instructions: Optional[pulumi.Input[str]] = None,
137
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
138
+ location: Optional[pulumi.Input[str]] = None,
139
+ name: Optional[pulumi.Input[str]] = None,
140
+ project: Optional[pulumi.Input[str]] = None,
141
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
142
+ service_account: Optional[pulumi.Input[str]] = None):
143
+ """
144
+ Input properties used for looking up and filtering Kmsconfig resources.
145
+ :param pulumi.Input[str] crypto_key_name: Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.
146
+ :param pulumi.Input[str] description: Description for the CMEK policy.
147
+ :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.
148
+ :param pulumi.Input[str] instructions: Access to the key needs to be granted. The instructions contain gcloud commands to run to grant access.
149
+ To make the policy work, a CMEK policy check is required, which verifies key access.
150
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
151
+
152
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
153
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
154
+ :param pulumi.Input[str] location: Name of the policy location. CMEK policies apply to the whole region.
155
+ :param pulumi.Input[str] name: Name of the CMEK policy.
156
+
157
+
158
+ - - -
159
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
160
+ If it is not provided, the provider project is used.
161
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
162
+ and default labels configured on the provider.
163
+ :param pulumi.Input[str] service_account: The Service account which needs to have access to the provided KMS key.
164
+ """
165
+ if crypto_key_name is not None:
166
+ pulumi.set(__self__, "crypto_key_name", crypto_key_name)
167
+ if description is not None:
168
+ pulumi.set(__self__, "description", description)
169
+ if effective_labels is not None:
170
+ pulumi.set(__self__, "effective_labels", effective_labels)
171
+ if instructions is not None:
172
+ pulumi.set(__self__, "instructions", instructions)
173
+ if labels is not None:
174
+ pulumi.set(__self__, "labels", labels)
175
+ if location is not None:
176
+ pulumi.set(__self__, "location", location)
177
+ if name is not None:
178
+ pulumi.set(__self__, "name", name)
179
+ if project is not None:
180
+ pulumi.set(__self__, "project", project)
181
+ if pulumi_labels is not None:
182
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
183
+ if service_account is not None:
184
+ pulumi.set(__self__, "service_account", service_account)
185
+
186
+ @property
187
+ @pulumi.getter(name="cryptoKeyName")
188
+ def crypto_key_name(self) -> Optional[pulumi.Input[str]]:
189
+ """
190
+ Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.
191
+ """
192
+ return pulumi.get(self, "crypto_key_name")
193
+
194
+ @crypto_key_name.setter
195
+ def crypto_key_name(self, value: Optional[pulumi.Input[str]]):
196
+ pulumi.set(self, "crypto_key_name", value)
197
+
198
+ @property
199
+ @pulumi.getter
200
+ def description(self) -> Optional[pulumi.Input[str]]:
201
+ """
202
+ Description for the CMEK policy.
203
+ """
204
+ return pulumi.get(self, "description")
205
+
206
+ @description.setter
207
+ def description(self, value: Optional[pulumi.Input[str]]):
208
+ pulumi.set(self, "description", value)
209
+
210
+ @property
211
+ @pulumi.getter(name="effectiveLabels")
212
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
213
+ """
214
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
215
+ """
216
+ return pulumi.get(self, "effective_labels")
217
+
218
+ @effective_labels.setter
219
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
220
+ pulumi.set(self, "effective_labels", value)
221
+
222
+ @property
223
+ @pulumi.getter
224
+ def instructions(self) -> Optional[pulumi.Input[str]]:
225
+ """
226
+ Access to the key needs to be granted. The instructions contain gcloud commands to run to grant access.
227
+ To make the policy work, a CMEK policy check is required, which verifies key access.
228
+ """
229
+ return pulumi.get(self, "instructions")
230
+
231
+ @instructions.setter
232
+ def instructions(self, value: Optional[pulumi.Input[str]]):
233
+ pulumi.set(self, "instructions", value)
234
+
235
+ @property
236
+ @pulumi.getter
237
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
238
+ """
239
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
240
+
241
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
242
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
243
+ """
244
+ return pulumi.get(self, "labels")
245
+
246
+ @labels.setter
247
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
248
+ pulumi.set(self, "labels", value)
249
+
250
+ @property
251
+ @pulumi.getter
252
+ def location(self) -> Optional[pulumi.Input[str]]:
253
+ """
254
+ Name of the policy location. CMEK policies apply to the whole region.
255
+ """
256
+ return pulumi.get(self, "location")
257
+
258
+ @location.setter
259
+ def location(self, value: Optional[pulumi.Input[str]]):
260
+ pulumi.set(self, "location", value)
261
+
262
+ @property
263
+ @pulumi.getter
264
+ def name(self) -> Optional[pulumi.Input[str]]:
265
+ """
266
+ Name of the CMEK policy.
267
+
268
+
269
+ - - -
270
+ """
271
+ return pulumi.get(self, "name")
272
+
273
+ @name.setter
274
+ def name(self, value: Optional[pulumi.Input[str]]):
275
+ pulumi.set(self, "name", value)
276
+
277
+ @property
278
+ @pulumi.getter
279
+ def project(self) -> Optional[pulumi.Input[str]]:
280
+ """
281
+ The ID of the project in which the resource belongs.
282
+ If it is not provided, the provider project is used.
283
+ """
284
+ return pulumi.get(self, "project")
285
+
286
+ @project.setter
287
+ def project(self, value: Optional[pulumi.Input[str]]):
288
+ pulumi.set(self, "project", value)
289
+
290
+ @property
291
+ @pulumi.getter(name="pulumiLabels")
292
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
293
+ """
294
+ The combination of labels configured directly on the resource
295
+ and default labels configured on the provider.
296
+ """
297
+ return pulumi.get(self, "pulumi_labels")
298
+
299
+ @pulumi_labels.setter
300
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
301
+ pulumi.set(self, "pulumi_labels", value)
302
+
303
+ @property
304
+ @pulumi.getter(name="serviceAccount")
305
+ def service_account(self) -> Optional[pulumi.Input[str]]:
306
+ """
307
+ The Service account which needs to have access to the provided KMS key.
308
+ """
309
+ return pulumi.get(self, "service_account")
310
+
311
+ @service_account.setter
312
+ def service_account(self, value: Optional[pulumi.Input[str]]):
313
+ pulumi.set(self, "service_account", value)
314
+
315
+
316
+ class Kmsconfig(pulumi.CustomResource):
317
+ @overload
318
+ def __init__(__self__,
319
+ resource_name: str,
320
+ opts: Optional[pulumi.ResourceOptions] = None,
321
+ crypto_key_name: Optional[pulumi.Input[str]] = None,
322
+ description: Optional[pulumi.Input[str]] = None,
323
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
324
+ location: Optional[pulumi.Input[str]] = None,
325
+ name: Optional[pulumi.Input[str]] = None,
326
+ project: Optional[pulumi.Input[str]] = None,
327
+ __props__=None):
328
+ """
329
+ NetApp Volumes always encrypts your data at rest using volume-specific keys.
330
+
331
+ A CMEK policy (customer-managed encryption key) warps such volume-specific keys in a key stored in Cloud Key Management Service (KMS).
332
+
333
+ To get more information about kmsconfig, see:
334
+
335
+ * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.kmsConfigs)
336
+ * How-to Guides
337
+ * [Documentation](https://cloud.google.com/netapp/volumes/docs/configure-and-use/cmek/cmek-overview)
338
+
339
+ ## Example Usage
340
+ ### Kms Config Create
341
+
342
+ ```python
343
+ import pulumi
344
+ import pulumi_gcp as gcp
345
+
346
+ keyring = gcp.kms.KeyRing("keyring", location="us-central1")
347
+ crypto_key = gcp.kms.CryptoKey("cryptoKey", key_ring=keyring.id)
348
+ # rotation_period = "100000s"
349
+ kms_config = gcp.netapp.Kmsconfig("kmsConfig",
350
+ description="this is a test description",
351
+ crypto_key_name=crypto_key.id,
352
+ location="us-central1")
353
+ ```
354
+
355
+ ## Import
356
+
357
+ kmsconfig can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}` * `{{project}}/{{location}}/{{name}}` * `{{location}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import kmsconfig using one of the formats above. For exampletf import {
358
+
359
+ id = "projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}"
360
+
361
+ to = google_netapp_kmsconfig.default }
362
+
363
+ ```sh
364
+ $ pulumi import gcp:netapp/kmsconfig:Kmsconfig When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), kmsconfig can be imported using one of the formats above. For example
365
+ ```
366
+
367
+ ```sh
368
+ $ pulumi import gcp:netapp/kmsconfig:Kmsconfig default projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}
369
+ ```
370
+
371
+ ```sh
372
+ $ pulumi import gcp:netapp/kmsconfig:Kmsconfig default {{project}}/{{location}}/{{name}}
373
+ ```
374
+
375
+ ```sh
376
+ $ pulumi import gcp:netapp/kmsconfig:Kmsconfig default {{location}}/{{name}}
377
+ ```
378
+
379
+ :param str resource_name: The name of the resource.
380
+ :param pulumi.ResourceOptions opts: Options for the resource.
381
+ :param pulumi.Input[str] crypto_key_name: Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.
382
+ :param pulumi.Input[str] description: Description for the CMEK policy.
383
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
384
+
385
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
386
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
387
+ :param pulumi.Input[str] location: Name of the policy location. CMEK policies apply to the whole region.
388
+ :param pulumi.Input[str] name: Name of the CMEK policy.
389
+
390
+
391
+ - - -
392
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
393
+ If it is not provided, the provider project is used.
394
+ """
395
+ ...
396
+ @overload
397
+ def __init__(__self__,
398
+ resource_name: str,
399
+ args: KmsconfigArgs,
400
+ opts: Optional[pulumi.ResourceOptions] = None):
401
+ """
402
+ NetApp Volumes always encrypts your data at rest using volume-specific keys.
403
+
404
+ A CMEK policy (customer-managed encryption key) warps such volume-specific keys in a key stored in Cloud Key Management Service (KMS).
405
+
406
+ To get more information about kmsconfig, see:
407
+
408
+ * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.kmsConfigs)
409
+ * How-to Guides
410
+ * [Documentation](https://cloud.google.com/netapp/volumes/docs/configure-and-use/cmek/cmek-overview)
411
+
412
+ ## Example Usage
413
+ ### Kms Config Create
414
+
415
+ ```python
416
+ import pulumi
417
+ import pulumi_gcp as gcp
418
+
419
+ keyring = gcp.kms.KeyRing("keyring", location="us-central1")
420
+ crypto_key = gcp.kms.CryptoKey("cryptoKey", key_ring=keyring.id)
421
+ # rotation_period = "100000s"
422
+ kms_config = gcp.netapp.Kmsconfig("kmsConfig",
423
+ description="this is a test description",
424
+ crypto_key_name=crypto_key.id,
425
+ location="us-central1")
426
+ ```
427
+
428
+ ## Import
429
+
430
+ kmsconfig can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}` * `{{project}}/{{location}}/{{name}}` * `{{location}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import kmsconfig using one of the formats above. For exampletf import {
431
+
432
+ id = "projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}"
433
+
434
+ to = google_netapp_kmsconfig.default }
435
+
436
+ ```sh
437
+ $ pulumi import gcp:netapp/kmsconfig:Kmsconfig When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), kmsconfig can be imported using one of the formats above. For example
438
+ ```
439
+
440
+ ```sh
441
+ $ pulumi import gcp:netapp/kmsconfig:Kmsconfig default projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}
442
+ ```
443
+
444
+ ```sh
445
+ $ pulumi import gcp:netapp/kmsconfig:Kmsconfig default {{project}}/{{location}}/{{name}}
446
+ ```
447
+
448
+ ```sh
449
+ $ pulumi import gcp:netapp/kmsconfig:Kmsconfig default {{location}}/{{name}}
450
+ ```
451
+
452
+ :param str resource_name: The name of the resource.
453
+ :param KmsconfigArgs args: The arguments to use to populate this resource's properties.
454
+ :param pulumi.ResourceOptions opts: Options for the resource.
455
+ """
456
+ ...
457
+ def __init__(__self__, resource_name: str, *args, **kwargs):
458
+ resource_args, opts = _utilities.get_resource_args_opts(KmsconfigArgs, pulumi.ResourceOptions, *args, **kwargs)
459
+ if resource_args is not None:
460
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
461
+ else:
462
+ __self__._internal_init(resource_name, *args, **kwargs)
463
+
464
+ def _internal_init(__self__,
465
+ resource_name: str,
466
+ opts: Optional[pulumi.ResourceOptions] = None,
467
+ crypto_key_name: Optional[pulumi.Input[str]] = None,
468
+ description: Optional[pulumi.Input[str]] = None,
469
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
470
+ location: Optional[pulumi.Input[str]] = None,
471
+ name: Optional[pulumi.Input[str]] = None,
472
+ project: Optional[pulumi.Input[str]] = None,
473
+ __props__=None):
474
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
475
+ if not isinstance(opts, pulumi.ResourceOptions):
476
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
477
+ if opts.id is None:
478
+ if __props__ is not None:
479
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
480
+ __props__ = KmsconfigArgs.__new__(KmsconfigArgs)
481
+
482
+ if crypto_key_name is None and not opts.urn:
483
+ raise TypeError("Missing required property 'crypto_key_name'")
484
+ __props__.__dict__["crypto_key_name"] = crypto_key_name
485
+ __props__.__dict__["description"] = description
486
+ __props__.__dict__["labels"] = labels
487
+ if location is None and not opts.urn:
488
+ raise TypeError("Missing required property 'location'")
489
+ __props__.__dict__["location"] = location
490
+ __props__.__dict__["name"] = name
491
+ __props__.__dict__["project"] = project
492
+ __props__.__dict__["effective_labels"] = None
493
+ __props__.__dict__["instructions"] = None
494
+ __props__.__dict__["pulumi_labels"] = None
495
+ __props__.__dict__["service_account"] = None
496
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
497
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
498
+ super(Kmsconfig, __self__).__init__(
499
+ 'gcp:netapp/kmsconfig:Kmsconfig',
500
+ resource_name,
501
+ __props__,
502
+ opts)
503
+
504
+ @staticmethod
505
+ def get(resource_name: str,
506
+ id: pulumi.Input[str],
507
+ opts: Optional[pulumi.ResourceOptions] = None,
508
+ crypto_key_name: Optional[pulumi.Input[str]] = None,
509
+ description: Optional[pulumi.Input[str]] = None,
510
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
511
+ instructions: Optional[pulumi.Input[str]] = None,
512
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
513
+ location: Optional[pulumi.Input[str]] = None,
514
+ name: Optional[pulumi.Input[str]] = None,
515
+ project: Optional[pulumi.Input[str]] = None,
516
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
517
+ service_account: Optional[pulumi.Input[str]] = None) -> 'Kmsconfig':
518
+ """
519
+ Get an existing Kmsconfig resource's state with the given name, id, and optional extra
520
+ properties used to qualify the lookup.
521
+
522
+ :param str resource_name: The unique name of the resulting resource.
523
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
524
+ :param pulumi.ResourceOptions opts: Options for the resource.
525
+ :param pulumi.Input[str] crypto_key_name: Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.
526
+ :param pulumi.Input[str] description: Description for the CMEK policy.
527
+ :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.
528
+ :param pulumi.Input[str] instructions: Access to the key needs to be granted. The instructions contain gcloud commands to run to grant access.
529
+ To make the policy work, a CMEK policy check is required, which verifies key access.
530
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
531
+
532
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
533
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
534
+ :param pulumi.Input[str] location: Name of the policy location. CMEK policies apply to the whole region.
535
+ :param pulumi.Input[str] name: Name of the CMEK policy.
536
+
537
+
538
+ - - -
539
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
540
+ If it is not provided, the provider project is used.
541
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
542
+ and default labels configured on the provider.
543
+ :param pulumi.Input[str] service_account: The Service account which needs to have access to the provided KMS key.
544
+ """
545
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
546
+
547
+ __props__ = _KmsconfigState.__new__(_KmsconfigState)
548
+
549
+ __props__.__dict__["crypto_key_name"] = crypto_key_name
550
+ __props__.__dict__["description"] = description
551
+ __props__.__dict__["effective_labels"] = effective_labels
552
+ __props__.__dict__["instructions"] = instructions
553
+ __props__.__dict__["labels"] = labels
554
+ __props__.__dict__["location"] = location
555
+ __props__.__dict__["name"] = name
556
+ __props__.__dict__["project"] = project
557
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
558
+ __props__.__dict__["service_account"] = service_account
559
+ return Kmsconfig(resource_name, opts=opts, __props__=__props__)
560
+
561
+ @property
562
+ @pulumi.getter(name="cryptoKeyName")
563
+ def crypto_key_name(self) -> pulumi.Output[str]:
564
+ """
565
+ Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.
566
+ """
567
+ return pulumi.get(self, "crypto_key_name")
568
+
569
+ @property
570
+ @pulumi.getter
571
+ def description(self) -> pulumi.Output[Optional[str]]:
572
+ """
573
+ Description for the CMEK policy.
574
+ """
575
+ return pulumi.get(self, "description")
576
+
577
+ @property
578
+ @pulumi.getter(name="effectiveLabels")
579
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
580
+ """
581
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
582
+ """
583
+ return pulumi.get(self, "effective_labels")
584
+
585
+ @property
586
+ @pulumi.getter
587
+ def instructions(self) -> pulumi.Output[str]:
588
+ """
589
+ Access to the key needs to be granted. The instructions contain gcloud commands to run to grant access.
590
+ To make the policy work, a CMEK policy check is required, which verifies key access.
591
+ """
592
+ return pulumi.get(self, "instructions")
593
+
594
+ @property
595
+ @pulumi.getter
596
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
597
+ """
598
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
599
+
600
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
601
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
602
+ """
603
+ return pulumi.get(self, "labels")
604
+
605
+ @property
606
+ @pulumi.getter
607
+ def location(self) -> pulumi.Output[str]:
608
+ """
609
+ Name of the policy location. CMEK policies apply to the whole region.
610
+ """
611
+ return pulumi.get(self, "location")
612
+
613
+ @property
614
+ @pulumi.getter
615
+ def name(self) -> pulumi.Output[str]:
616
+ """
617
+ Name of the CMEK policy.
618
+
619
+
620
+ - - -
621
+ """
622
+ return pulumi.get(self, "name")
623
+
624
+ @property
625
+ @pulumi.getter
626
+ def project(self) -> pulumi.Output[str]:
627
+ """
628
+ The ID of the project in which the resource belongs.
629
+ If it is not provided, the provider project is used.
630
+ """
631
+ return pulumi.get(self, "project")
632
+
633
+ @property
634
+ @pulumi.getter(name="pulumiLabels")
635
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
636
+ """
637
+ The combination of labels configured directly on the resource
638
+ and default labels configured on the provider.
639
+ """
640
+ return pulumi.get(self, "pulumi_labels")
641
+
642
+ @property
643
+ @pulumi.getter(name="serviceAccount")
644
+ def service_account(self) -> pulumi.Output[str]:
645
+ """
646
+ The Service account which needs to have access to the provided KMS key.
647
+ """
648
+ return pulumi.get(self, "service_account")
649
+