pulumi-gcp 8.14.0a1736853524__py3-none-any.whl → 8.14.0a1736952890__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 (62) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/applicationintegration/_inputs.py +3 -3
  3. pulumi_gcp/applicationintegration/outputs.py +2 -2
  4. pulumi_gcp/beyondcorp/__init__.py +1 -0
  5. pulumi_gcp/beyondcorp/_inputs.py +93 -0
  6. pulumi_gcp/beyondcorp/outputs.py +89 -0
  7. pulumi_gcp/beyondcorp/security_gateway.py +670 -0
  8. pulumi_gcp/blockchainnodeengine/_inputs.py +3 -3
  9. pulumi_gcp/blockchainnodeengine/outputs.py +2 -2
  10. pulumi_gcp/certificateauthority/_inputs.py +6 -6
  11. pulumi_gcp/certificateauthority/outputs.py +4 -4
  12. pulumi_gcp/certificatemanager/_inputs.py +3 -3
  13. pulumi_gcp/certificatemanager/outputs.py +2 -2
  14. pulumi_gcp/chronicle/__init__.py +2 -0
  15. pulumi_gcp/chronicle/_inputs.py +388 -0
  16. pulumi_gcp/chronicle/data_access_label.py +690 -0
  17. pulumi_gcp/chronicle/data_access_scope.py +1094 -0
  18. pulumi_gcp/chronicle/outputs.py +322 -0
  19. pulumi_gcp/chronicle/watchlist.py +68 -45
  20. pulumi_gcp/cloudbuild/_inputs.py +3 -3
  21. pulumi_gcp/cloudbuild/outputs.py +2 -2
  22. pulumi_gcp/cloudquota/__init__.py +1 -0
  23. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +336 -0
  24. pulumi_gcp/compute/_inputs.py +33 -33
  25. pulumi_gcp/compute/instance_group_manager.py +9 -9
  26. pulumi_gcp/compute/outputs.py +22 -22
  27. pulumi_gcp/compute/region_instance_group_manager.py +9 -9
  28. pulumi_gcp/datacatalog/_inputs.py +3 -3
  29. pulumi_gcp/datacatalog/outputs.py +2 -2
  30. pulumi_gcp/developerconnect/_inputs.py +910 -42
  31. pulumi_gcp/developerconnect/connection.py +614 -86
  32. pulumi_gcp/developerconnect/git_repository_link.py +4 -0
  33. pulumi_gcp/developerconnect/outputs.py +717 -28
  34. pulumi_gcp/dns/_inputs.py +124 -20
  35. pulumi_gcp/dns/outputs.py +90 -16
  36. pulumi_gcp/dns/record_set.py +82 -0
  37. pulumi_gcp/edgecontainer/_inputs.py +3 -3
  38. pulumi_gcp/edgecontainer/outputs.py +2 -2
  39. pulumi_gcp/gkeonprem/_inputs.py +15 -15
  40. pulumi_gcp/gkeonprem/outputs.py +10 -10
  41. pulumi_gcp/gkeonprem/v_mware_cluster.py +1 -1
  42. pulumi_gcp/iap/_inputs.py +9 -3
  43. pulumi_gcp/iap/outputs.py +6 -2
  44. pulumi_gcp/iap/settings.py +63 -63
  45. pulumi_gcp/identityplatform/_inputs.py +9 -9
  46. pulumi_gcp/identityplatform/outputs.py +6 -6
  47. pulumi_gcp/integrationconnectors/_inputs.py +6 -6
  48. pulumi_gcp/integrationconnectors/outputs.py +4 -4
  49. pulumi_gcp/monitoring/_inputs.py +3 -3
  50. pulumi_gcp/monitoring/outputs.py +2 -2
  51. pulumi_gcp/oracledatabase/_inputs.py +3 -3
  52. pulumi_gcp/oracledatabase/outputs.py +2 -2
  53. pulumi_gcp/pulumi-plugin.json +1 -1
  54. pulumi_gcp/sql/_inputs.py +20 -0
  55. pulumi_gcp/sql/database_instance.py +2 -2
  56. pulumi_gcp/sql/outputs.py +36 -0
  57. pulumi_gcp/transcoder/_inputs.py +6 -6
  58. pulumi_gcp/transcoder/outputs.py +4 -4
  59. {pulumi_gcp-8.14.0a1736853524.dist-info → pulumi_gcp-8.14.0a1736952890.dist-info}/METADATA +1 -1
  60. {pulumi_gcp-8.14.0a1736853524.dist-info → pulumi_gcp-8.14.0a1736952890.dist-info}/RECORD +62 -58
  61. {pulumi_gcp-8.14.0a1736853524.dist-info → pulumi_gcp-8.14.0a1736952890.dist-info}/WHEEL +0 -0
  62. {pulumi_gcp-8.14.0a1736853524.dist-info → pulumi_gcp-8.14.0a1736952890.dist-info}/top_level.txt +0 -0
@@ -24,33 +24,45 @@ class ConnectionArgs:
24
24
  connection_id: pulumi.Input[str],
25
25
  location: pulumi.Input[str],
26
26
  annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
27
+ crypto_key_config: Optional[pulumi.Input['ConnectionCryptoKeyConfigArgs']] = None,
27
28
  disabled: Optional[pulumi.Input[bool]] = None,
28
29
  etag: Optional[pulumi.Input[str]] = None,
29
30
  github_config: Optional[pulumi.Input['ConnectionGithubConfigArgs']] = None,
31
+ github_enterprise_config: Optional[pulumi.Input['ConnectionGithubEnterpriseConfigArgs']] = None,
32
+ gitlab_config: Optional[pulumi.Input['ConnectionGitlabConfigArgs']] = None,
33
+ gitlab_enterprise_config: Optional[pulumi.Input['ConnectionGitlabEnterpriseConfigArgs']] = None,
30
34
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
31
35
  project: Optional[pulumi.Input[str]] = None):
32
36
  """
33
37
  The set of arguments for constructing a Connection resource.
34
- :param pulumi.Input[str] connection_id: Required. Id of the requesting object. If auto-generating Id server-side,
35
- remove this field and connection_id from the method_signature of Create RPC.
38
+ :param pulumi.Input[str] connection_id: Required. Id of the requesting object
39
+ If auto-generating Id server-side, remove this field and
40
+ connection_id from the method_signature of Create RPC
36
41
 
37
42
 
38
43
  - - -
39
- :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource
40
- within its parent collection as described in https://google.aip.dev/122. See documentation
41
- for resource type `developerconnect.googleapis.com/GitRepositoryLink`.
44
+ :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
42
45
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. Allows clients to store small amounts of arbitrary data.
43
-
44
46
  **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
45
47
  Please refer to the field `effective_annotations` for all of the annotations present on the resource.
46
- :param pulumi.Input[bool] disabled: Optional. If disabled is set to true, functionality is disabled for this connection. Repository based API methods and webhooks processing for repositories in this connection will be disabled.
47
- :param pulumi.Input[str] etag: Optional. This checksum is computed by the server based on the value
48
- of other fields, and may be sent on update and delete requests to ensure the
48
+ :param pulumi.Input['ConnectionCryptoKeyConfigArgs'] crypto_key_config: The crypto key configuration. This field is used by the Customer-managed
49
+ encryption keys (CMEK) feature.
50
+ Structure is documented below.
51
+ :param pulumi.Input[bool] disabled: Optional. If disabled is set to true, functionality is disabled for this connection.
52
+ Repository based API methods and webhooks processing for repositories in
53
+ this connection will be disabled.
54
+ :param pulumi.Input[str] etag: Optional. This checksum is computed by the server based on the value of other
55
+ fields, and may be sent on update and delete requests to ensure the
49
56
  client has an up-to-date value before proceeding.
50
57
  :param pulumi.Input['ConnectionGithubConfigArgs'] github_config: Configuration for connections to github.com.
51
58
  Structure is documented below.
59
+ :param pulumi.Input['ConnectionGithubEnterpriseConfigArgs'] github_enterprise_config: Configuration for connections to an instance of GitHub Enterprise.
60
+ Structure is documented below.
61
+ :param pulumi.Input['ConnectionGitlabConfigArgs'] gitlab_config: Configuration for connections to gitlab.com.
62
+ Structure is documented below.
63
+ :param pulumi.Input['ConnectionGitlabEnterpriseConfigArgs'] gitlab_enterprise_config: Configuration for connections to an instance of GitLab Enterprise.
64
+ Structure is documented below.
52
65
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels as key value pairs
53
-
54
66
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
55
67
  Please refer to the field `effective_labels` for all of the labels present on the resource.
56
68
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
@@ -60,12 +72,20 @@ class ConnectionArgs:
60
72
  pulumi.set(__self__, "location", location)
61
73
  if annotations is not None:
62
74
  pulumi.set(__self__, "annotations", annotations)
75
+ if crypto_key_config is not None:
76
+ pulumi.set(__self__, "crypto_key_config", crypto_key_config)
63
77
  if disabled is not None:
64
78
  pulumi.set(__self__, "disabled", disabled)
65
79
  if etag is not None:
66
80
  pulumi.set(__self__, "etag", etag)
67
81
  if github_config is not None:
68
82
  pulumi.set(__self__, "github_config", github_config)
83
+ if github_enterprise_config is not None:
84
+ pulumi.set(__self__, "github_enterprise_config", github_enterprise_config)
85
+ if gitlab_config is not None:
86
+ pulumi.set(__self__, "gitlab_config", gitlab_config)
87
+ if gitlab_enterprise_config is not None:
88
+ pulumi.set(__self__, "gitlab_enterprise_config", gitlab_enterprise_config)
69
89
  if labels is not None:
70
90
  pulumi.set(__self__, "labels", labels)
71
91
  if project is not None:
@@ -75,8 +95,9 @@ class ConnectionArgs:
75
95
  @pulumi.getter(name="connectionId")
76
96
  def connection_id(self) -> pulumi.Input[str]:
77
97
  """
78
- Required. Id of the requesting object. If auto-generating Id server-side,
79
- remove this field and connection_id from the method_signature of Create RPC.
98
+ Required. Id of the requesting object
99
+ If auto-generating Id server-side, remove this field and
100
+ connection_id from the method_signature of Create RPC
80
101
 
81
102
 
82
103
  - - -
@@ -91,9 +112,7 @@ class ConnectionArgs:
91
112
  @pulumi.getter
92
113
  def location(self) -> pulumi.Input[str]:
93
114
  """
94
- Resource ID segment making up resource `name`. It identifies the resource
95
- within its parent collection as described in https://google.aip.dev/122. See documentation
96
- for resource type `developerconnect.googleapis.com/GitRepositoryLink`.
115
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
97
116
  """
98
117
  return pulumi.get(self, "location")
99
118
 
@@ -106,7 +125,6 @@ class ConnectionArgs:
106
125
  def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
107
126
  """
108
127
  Optional. Allows clients to store small amounts of arbitrary data.
109
-
110
128
  **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
111
129
  Please refer to the field `effective_annotations` for all of the annotations present on the resource.
112
130
  """
@@ -116,11 +134,27 @@ class ConnectionArgs:
116
134
  def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
117
135
  pulumi.set(self, "annotations", value)
118
136
 
137
+ @property
138
+ @pulumi.getter(name="cryptoKeyConfig")
139
+ def crypto_key_config(self) -> Optional[pulumi.Input['ConnectionCryptoKeyConfigArgs']]:
140
+ """
141
+ The crypto key configuration. This field is used by the Customer-managed
142
+ encryption keys (CMEK) feature.
143
+ Structure is documented below.
144
+ """
145
+ return pulumi.get(self, "crypto_key_config")
146
+
147
+ @crypto_key_config.setter
148
+ def crypto_key_config(self, value: Optional[pulumi.Input['ConnectionCryptoKeyConfigArgs']]):
149
+ pulumi.set(self, "crypto_key_config", value)
150
+
119
151
  @property
120
152
  @pulumi.getter
121
153
  def disabled(self) -> Optional[pulumi.Input[bool]]:
122
154
  """
123
- Optional. If disabled is set to true, functionality is disabled for this connection. Repository based API methods and webhooks processing for repositories in this connection will be disabled.
155
+ Optional. If disabled is set to true, functionality is disabled for this connection.
156
+ Repository based API methods and webhooks processing for repositories in
157
+ this connection will be disabled.
124
158
  """
125
159
  return pulumi.get(self, "disabled")
126
160
 
@@ -132,8 +166,8 @@ class ConnectionArgs:
132
166
  @pulumi.getter
133
167
  def etag(self) -> Optional[pulumi.Input[str]]:
134
168
  """
135
- Optional. This checksum is computed by the server based on the value
136
- of other fields, and may be sent on update and delete requests to ensure the
169
+ Optional. This checksum is computed by the server based on the value of other
170
+ fields, and may be sent on update and delete requests to ensure the
137
171
  client has an up-to-date value before proceeding.
138
172
  """
139
173
  return pulumi.get(self, "etag")
@@ -155,12 +189,50 @@ class ConnectionArgs:
155
189
  def github_config(self, value: Optional[pulumi.Input['ConnectionGithubConfigArgs']]):
156
190
  pulumi.set(self, "github_config", value)
157
191
 
192
+ @property
193
+ @pulumi.getter(name="githubEnterpriseConfig")
194
+ def github_enterprise_config(self) -> Optional[pulumi.Input['ConnectionGithubEnterpriseConfigArgs']]:
195
+ """
196
+ Configuration for connections to an instance of GitHub Enterprise.
197
+ Structure is documented below.
198
+ """
199
+ return pulumi.get(self, "github_enterprise_config")
200
+
201
+ @github_enterprise_config.setter
202
+ def github_enterprise_config(self, value: Optional[pulumi.Input['ConnectionGithubEnterpriseConfigArgs']]):
203
+ pulumi.set(self, "github_enterprise_config", value)
204
+
205
+ @property
206
+ @pulumi.getter(name="gitlabConfig")
207
+ def gitlab_config(self) -> Optional[pulumi.Input['ConnectionGitlabConfigArgs']]:
208
+ """
209
+ Configuration for connections to gitlab.com.
210
+ Structure is documented below.
211
+ """
212
+ return pulumi.get(self, "gitlab_config")
213
+
214
+ @gitlab_config.setter
215
+ def gitlab_config(self, value: Optional[pulumi.Input['ConnectionGitlabConfigArgs']]):
216
+ pulumi.set(self, "gitlab_config", value)
217
+
218
+ @property
219
+ @pulumi.getter(name="gitlabEnterpriseConfig")
220
+ def gitlab_enterprise_config(self) -> Optional[pulumi.Input['ConnectionGitlabEnterpriseConfigArgs']]:
221
+ """
222
+ Configuration for connections to an instance of GitLab Enterprise.
223
+ Structure is documented below.
224
+ """
225
+ return pulumi.get(self, "gitlab_enterprise_config")
226
+
227
+ @gitlab_enterprise_config.setter
228
+ def gitlab_enterprise_config(self, value: Optional[pulumi.Input['ConnectionGitlabEnterpriseConfigArgs']]):
229
+ pulumi.set(self, "gitlab_enterprise_config", value)
230
+
158
231
  @property
159
232
  @pulumi.getter
160
233
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
161
234
  """
162
235
  Optional. Labels as key value pairs
163
-
164
236
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
165
237
  Please refer to the field `effective_labels` for all of the labels present on the resource.
166
238
  """
@@ -190,12 +262,16 @@ class _ConnectionState:
190
262
  annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
191
263
  connection_id: Optional[pulumi.Input[str]] = None,
192
264
  create_time: Optional[pulumi.Input[str]] = None,
265
+ crypto_key_config: Optional[pulumi.Input['ConnectionCryptoKeyConfigArgs']] = None,
193
266
  delete_time: Optional[pulumi.Input[str]] = None,
194
267
  disabled: Optional[pulumi.Input[bool]] = None,
195
268
  effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
196
269
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
197
270
  etag: Optional[pulumi.Input[str]] = None,
198
271
  github_config: Optional[pulumi.Input['ConnectionGithubConfigArgs']] = None,
272
+ github_enterprise_config: Optional[pulumi.Input['ConnectionGithubEnterpriseConfigArgs']] = None,
273
+ gitlab_config: Optional[pulumi.Input['ConnectionGitlabConfigArgs']] = None,
274
+ gitlab_enterprise_config: Optional[pulumi.Input['ConnectionGitlabEnterpriseConfigArgs']] = None,
199
275
  installation_states: Optional[pulumi.Input[Sequence[pulumi.Input['ConnectionInstallationStateArgs']]]] = None,
200
276
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
201
277
  location: Optional[pulumi.Input[str]] = None,
@@ -208,41 +284,50 @@ class _ConnectionState:
208
284
  """
209
285
  Input properties used for looking up and filtering Connection resources.
210
286
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. Allows clients to store small amounts of arbitrary data.
211
-
212
287
  **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
213
288
  Please refer to the field `effective_annotations` for all of the annotations present on the resource.
214
- :param pulumi.Input[str] connection_id: Required. Id of the requesting object. If auto-generating Id server-side,
215
- remove this field and connection_id from the method_signature of Create RPC.
289
+ :param pulumi.Input[str] connection_id: Required. Id of the requesting object
290
+ If auto-generating Id server-side, remove this field and
291
+ connection_id from the method_signature of Create RPC
216
292
 
217
293
 
218
294
  - - -
219
295
  :param pulumi.Input[str] create_time: Output only. [Output only] Create timestamp
296
+ :param pulumi.Input['ConnectionCryptoKeyConfigArgs'] crypto_key_config: The crypto key configuration. This field is used by the Customer-managed
297
+ encryption keys (CMEK) feature.
298
+ Structure is documented below.
220
299
  :param pulumi.Input[str] delete_time: Output only. [Output only] Delete timestamp
221
- :param pulumi.Input[bool] disabled: Optional. If disabled is set to true, functionality is disabled for this connection. Repository based API methods and webhooks processing for repositories in this connection will be disabled.
300
+ :param pulumi.Input[bool] disabled: Optional. If disabled is set to true, functionality is disabled for this connection.
301
+ Repository based API methods and webhooks processing for repositories in
302
+ this connection will be disabled.
222
303
  :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.
223
- :param pulumi.Input[str] etag: Optional. This checksum is computed by the server based on the value
224
- of other fields, and may be sent on update and delete requests to ensure the
304
+ :param pulumi.Input[str] etag: Optional. This checksum is computed by the server based on the value of other
305
+ fields, and may be sent on update and delete requests to ensure the
225
306
  client has an up-to-date value before proceeding.
226
307
  :param pulumi.Input['ConnectionGithubConfigArgs'] github_config: Configuration for connections to github.com.
227
308
  Structure is documented below.
228
- :param pulumi.Input[Sequence[pulumi.Input['ConnectionInstallationStateArgs']]] installation_states: Describes stage and necessary actions to be taken by the user to complete the installation.
229
- Used for GitHub and GitHub Enterprise based connections.
309
+ :param pulumi.Input['ConnectionGithubEnterpriseConfigArgs'] github_enterprise_config: Configuration for connections to an instance of GitHub Enterprise.
310
+ Structure is documented below.
311
+ :param pulumi.Input['ConnectionGitlabConfigArgs'] gitlab_config: Configuration for connections to gitlab.com.
312
+ Structure is documented below.
313
+ :param pulumi.Input['ConnectionGitlabEnterpriseConfigArgs'] gitlab_enterprise_config: Configuration for connections to an instance of GitLab Enterprise.
314
+ Structure is documented below.
315
+ :param pulumi.Input[Sequence[pulumi.Input['ConnectionInstallationStateArgs']]] installation_states: Describes stage and necessary actions to be taken by the
316
+ user to complete the installation. Used for GitHub and GitHub Enterprise
317
+ based connections.
230
318
  Structure is documented below.
231
319
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels as key value pairs
232
-
233
320
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
234
321
  Please refer to the field `effective_labels` for all of the labels present on the resource.
235
- :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource
236
- within its parent collection as described in https://google.aip.dev/122. See documentation
237
- for resource type `developerconnect.googleapis.com/GitRepositoryLink`.
322
+ :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
238
323
  :param pulumi.Input[str] name: Identifier. The resource name of the connection, in the format
239
324
  `projects/{project}/locations/{location}/connections/{connection_id}`.
240
325
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
241
326
  If it is not provided, the provider project is used.
242
327
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
243
328
  and default labels configured on the provider.
244
- :param pulumi.Input[bool] reconciling: Output only. Set to true when the connection is being set up or updated
245
- in the background.
329
+ :param pulumi.Input[bool] reconciling: Output only. Set to true when the connection is being set up or updated in the
330
+ background.
246
331
  :param pulumi.Input[str] uid: Output only. A system-assigned unique identifier for a the GitRepositoryLink.
247
332
  :param pulumi.Input[str] update_time: Output only. [Output only] Update timestamp
248
333
  """
@@ -252,6 +337,8 @@ class _ConnectionState:
252
337
  pulumi.set(__self__, "connection_id", connection_id)
253
338
  if create_time is not None:
254
339
  pulumi.set(__self__, "create_time", create_time)
340
+ if crypto_key_config is not None:
341
+ pulumi.set(__self__, "crypto_key_config", crypto_key_config)
255
342
  if delete_time is not None:
256
343
  pulumi.set(__self__, "delete_time", delete_time)
257
344
  if disabled is not None:
@@ -264,6 +351,12 @@ class _ConnectionState:
264
351
  pulumi.set(__self__, "etag", etag)
265
352
  if github_config is not None:
266
353
  pulumi.set(__self__, "github_config", github_config)
354
+ if github_enterprise_config is not None:
355
+ pulumi.set(__self__, "github_enterprise_config", github_enterprise_config)
356
+ if gitlab_config is not None:
357
+ pulumi.set(__self__, "gitlab_config", gitlab_config)
358
+ if gitlab_enterprise_config is not None:
359
+ pulumi.set(__self__, "gitlab_enterprise_config", gitlab_enterprise_config)
267
360
  if installation_states is not None:
268
361
  pulumi.set(__self__, "installation_states", installation_states)
269
362
  if labels is not None:
@@ -288,7 +381,6 @@ class _ConnectionState:
288
381
  def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
289
382
  """
290
383
  Optional. Allows clients to store small amounts of arbitrary data.
291
-
292
384
  **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
293
385
  Please refer to the field `effective_annotations` for all of the annotations present on the resource.
294
386
  """
@@ -302,8 +394,9 @@ class _ConnectionState:
302
394
  @pulumi.getter(name="connectionId")
303
395
  def connection_id(self) -> Optional[pulumi.Input[str]]:
304
396
  """
305
- Required. Id of the requesting object. If auto-generating Id server-side,
306
- remove this field and connection_id from the method_signature of Create RPC.
397
+ Required. Id of the requesting object
398
+ If auto-generating Id server-side, remove this field and
399
+ connection_id from the method_signature of Create RPC
307
400
 
308
401
 
309
402
  - - -
@@ -326,6 +419,20 @@ class _ConnectionState:
326
419
  def create_time(self, value: Optional[pulumi.Input[str]]):
327
420
  pulumi.set(self, "create_time", value)
328
421
 
422
+ @property
423
+ @pulumi.getter(name="cryptoKeyConfig")
424
+ def crypto_key_config(self) -> Optional[pulumi.Input['ConnectionCryptoKeyConfigArgs']]:
425
+ """
426
+ The crypto key configuration. This field is used by the Customer-managed
427
+ encryption keys (CMEK) feature.
428
+ Structure is documented below.
429
+ """
430
+ return pulumi.get(self, "crypto_key_config")
431
+
432
+ @crypto_key_config.setter
433
+ def crypto_key_config(self, value: Optional[pulumi.Input['ConnectionCryptoKeyConfigArgs']]):
434
+ pulumi.set(self, "crypto_key_config", value)
435
+
329
436
  @property
330
437
  @pulumi.getter(name="deleteTime")
331
438
  def delete_time(self) -> Optional[pulumi.Input[str]]:
@@ -342,7 +449,9 @@ class _ConnectionState:
342
449
  @pulumi.getter
343
450
  def disabled(self) -> Optional[pulumi.Input[bool]]:
344
451
  """
345
- Optional. If disabled is set to true, functionality is disabled for this connection. Repository based API methods and webhooks processing for repositories in this connection will be disabled.
452
+ Optional. If disabled is set to true, functionality is disabled for this connection.
453
+ Repository based API methods and webhooks processing for repositories in
454
+ this connection will be disabled.
346
455
  """
347
456
  return pulumi.get(self, "disabled")
348
457
 
@@ -375,8 +484,8 @@ class _ConnectionState:
375
484
  @pulumi.getter
376
485
  def etag(self) -> Optional[pulumi.Input[str]]:
377
486
  """
378
- Optional. This checksum is computed by the server based on the value
379
- of other fields, and may be sent on update and delete requests to ensure the
487
+ Optional. This checksum is computed by the server based on the value of other
488
+ fields, and may be sent on update and delete requests to ensure the
380
489
  client has an up-to-date value before proceeding.
381
490
  """
382
491
  return pulumi.get(self, "etag")
@@ -398,12 +507,52 @@ class _ConnectionState:
398
507
  def github_config(self, value: Optional[pulumi.Input['ConnectionGithubConfigArgs']]):
399
508
  pulumi.set(self, "github_config", value)
400
509
 
510
+ @property
511
+ @pulumi.getter(name="githubEnterpriseConfig")
512
+ def github_enterprise_config(self) -> Optional[pulumi.Input['ConnectionGithubEnterpriseConfigArgs']]:
513
+ """
514
+ Configuration for connections to an instance of GitHub Enterprise.
515
+ Structure is documented below.
516
+ """
517
+ return pulumi.get(self, "github_enterprise_config")
518
+
519
+ @github_enterprise_config.setter
520
+ def github_enterprise_config(self, value: Optional[pulumi.Input['ConnectionGithubEnterpriseConfigArgs']]):
521
+ pulumi.set(self, "github_enterprise_config", value)
522
+
523
+ @property
524
+ @pulumi.getter(name="gitlabConfig")
525
+ def gitlab_config(self) -> Optional[pulumi.Input['ConnectionGitlabConfigArgs']]:
526
+ """
527
+ Configuration for connections to gitlab.com.
528
+ Structure is documented below.
529
+ """
530
+ return pulumi.get(self, "gitlab_config")
531
+
532
+ @gitlab_config.setter
533
+ def gitlab_config(self, value: Optional[pulumi.Input['ConnectionGitlabConfigArgs']]):
534
+ pulumi.set(self, "gitlab_config", value)
535
+
536
+ @property
537
+ @pulumi.getter(name="gitlabEnterpriseConfig")
538
+ def gitlab_enterprise_config(self) -> Optional[pulumi.Input['ConnectionGitlabEnterpriseConfigArgs']]:
539
+ """
540
+ Configuration for connections to an instance of GitLab Enterprise.
541
+ Structure is documented below.
542
+ """
543
+ return pulumi.get(self, "gitlab_enterprise_config")
544
+
545
+ @gitlab_enterprise_config.setter
546
+ def gitlab_enterprise_config(self, value: Optional[pulumi.Input['ConnectionGitlabEnterpriseConfigArgs']]):
547
+ pulumi.set(self, "gitlab_enterprise_config", value)
548
+
401
549
  @property
402
550
  @pulumi.getter(name="installationStates")
403
551
  def installation_states(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ConnectionInstallationStateArgs']]]]:
404
552
  """
405
- Describes stage and necessary actions to be taken by the user to complete the installation.
406
- Used for GitHub and GitHub Enterprise based connections.
553
+ Describes stage and necessary actions to be taken by the
554
+ user to complete the installation. Used for GitHub and GitHub Enterprise
555
+ based connections.
407
556
  Structure is documented below.
408
557
  """
409
558
  return pulumi.get(self, "installation_states")
@@ -417,7 +566,6 @@ class _ConnectionState:
417
566
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
418
567
  """
419
568
  Optional. Labels as key value pairs
420
-
421
569
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
422
570
  Please refer to the field `effective_labels` for all of the labels present on the resource.
423
571
  """
@@ -431,9 +579,7 @@ class _ConnectionState:
431
579
  @pulumi.getter
432
580
  def location(self) -> Optional[pulumi.Input[str]]:
433
581
  """
434
- Resource ID segment making up resource `name`. It identifies the resource
435
- within its parent collection as described in https://google.aip.dev/122. See documentation
436
- for resource type `developerconnect.googleapis.com/GitRepositoryLink`.
582
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
437
583
  """
438
584
  return pulumi.get(self, "location")
439
585
 
@@ -484,8 +630,8 @@ class _ConnectionState:
484
630
  @pulumi.getter
485
631
  def reconciling(self) -> Optional[pulumi.Input[bool]]:
486
632
  """
487
- Output only. Set to true when the connection is being set up or updated
488
- in the background.
633
+ Output only. Set to true when the connection is being set up or updated in the
634
+ background.
489
635
  """
490
636
  return pulumi.get(self, "reconciling")
491
637
 
@@ -525,14 +671,20 @@ class Connection(pulumi.CustomResource):
525
671
  opts: Optional[pulumi.ResourceOptions] = None,
526
672
  annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
527
673
  connection_id: Optional[pulumi.Input[str]] = None,
674
+ crypto_key_config: Optional[pulumi.Input[Union['ConnectionCryptoKeyConfigArgs', 'ConnectionCryptoKeyConfigArgsDict']]] = None,
528
675
  disabled: Optional[pulumi.Input[bool]] = None,
529
676
  etag: Optional[pulumi.Input[str]] = None,
530
677
  github_config: Optional[pulumi.Input[Union['ConnectionGithubConfigArgs', 'ConnectionGithubConfigArgsDict']]] = None,
678
+ github_enterprise_config: Optional[pulumi.Input[Union['ConnectionGithubEnterpriseConfigArgs', 'ConnectionGithubEnterpriseConfigArgsDict']]] = None,
679
+ gitlab_config: Optional[pulumi.Input[Union['ConnectionGitlabConfigArgs', 'ConnectionGitlabConfigArgsDict']]] = None,
680
+ gitlab_enterprise_config: Optional[pulumi.Input[Union['ConnectionGitlabEnterpriseConfigArgs', 'ConnectionGitlabEnterpriseConfigArgsDict']]] = None,
531
681
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
532
682
  location: Optional[pulumi.Input[str]] = None,
533
683
  project: Optional[pulumi.Input[str]] = None,
534
684
  __props__=None):
535
685
  """
686
+ A connection for GitHub, GitHub Enterprise, GitLab, and GitLab Enterprise.
687
+
536
688
  ## Example Usage
537
689
 
538
690
  ### Developer Connect Connection New
@@ -607,7 +759,159 @@ class Connection(pulumi.CustomResource):
607
759
  },
608
760
  })
609
761
  ```
762
+ ### Developer Connect Connection Github
763
+
764
+ ```python
765
+ import pulumi
766
+ import pulumi_gcp as gcp
767
+
768
+ my_connection = gcp.developerconnect.Connection("my-connection",
769
+ location="us-central1",
770
+ connection_id="tf-test-connection",
771
+ github_config={
772
+ "github_app": "DEVELOPER_CONNECT",
773
+ "authorizer_credential": {
774
+ "oauth_token_secret_version": "projects/devconnect-terraform-creds/secrets/tf-test-do-not-change-github-oauthtoken-e0b9e7/versions/1",
775
+ },
776
+ })
777
+ ```
778
+ ### Developer Connect Connection Github Doc
779
+
780
+ ```python
781
+ import pulumi
782
+ import pulumi_gcp as gcp
783
+ import pulumi_std as std
784
+
785
+ github_token_secret = gcp.secretmanager.Secret("github-token-secret",
786
+ secret_id="github-token-secret",
787
+ replication={
788
+ "auto": {},
789
+ })
790
+ github_token_secret_version = gcp.secretmanager.SecretVersion("github-token-secret-version",
791
+ secret=github_token_secret.id,
792
+ secret_data=std.file(input="my-github-token.txt").result)
793
+ p4sa_secret_accessor = gcp.organizations.get_iam_policy(bindings=[{
794
+ "role": "roles/secretmanager.secretAccessor",
795
+ "members": ["serviceAccount:service-123456789@gcp-sa-devconnect.iam.gserviceaccount.com"],
796
+ }])
797
+ policy = gcp.secretmanager.SecretIamPolicy("policy",
798
+ secret_id=github_token_secret.secret_id,
799
+ policy_data=p4sa_secret_accessor.policy_data)
800
+ my_connection = gcp.developerconnect.Connection("my-connection",
801
+ location="us-central1",
802
+ connection_id="my-connection",
803
+ github_config={
804
+ "github_app": "DEVELOPER_CONNECT",
805
+ "app_installation_id": "123123",
806
+ "authorizer_credential": {
807
+ "oauth_token_secret_version": github_token_secret_version.id,
808
+ },
809
+ })
810
+ ```
811
+ ### Developer Connect Connection Github Enterprise
812
+
813
+ ```python
814
+ import pulumi
815
+ import pulumi_gcp as gcp
816
+
817
+ my_connection = gcp.developerconnect.Connection("my-connection",
818
+ location="us-central1",
819
+ connection_id="tf-test-connection",
820
+ github_enterprise_config={
821
+ "host_uri": "https://ghe.proctor-staging-test.com",
822
+ "app_id": "864434",
823
+ "private_key_secret_version": "projects/devconnect-terraform-creds/secrets/tf-test-ghe-do-not-change-ghe-private-key-f522d2/versions/latest",
824
+ "webhook_secret_secret_version": "projects/devconnect-terraform-creds/secrets/tf-test-ghe-do-not-change-ghe-webhook-secret-3c806f/versions/latest",
825
+ "app_installation_id": "837537",
826
+ })
827
+ ```
828
+ ### Developer Connect Connection Github Enterprise Doc
829
+
830
+ ```python
831
+ import pulumi
832
+ import pulumi_gcp as gcp
833
+ import pulumi_std as std
834
+
835
+ private_key_secret = gcp.secretmanager.Secret("private-key-secret",
836
+ secret_id="ghe-pk-secret",
837
+ replication={
838
+ "auto": {},
839
+ })
840
+ private_key_secret_version = gcp.secretmanager.SecretVersion("private-key-secret-version",
841
+ secret=private_key_secret.id,
842
+ secret_data=std.file(input="private-key.pem").result)
843
+ webhook_secret_secret = gcp.secretmanager.Secret("webhook-secret-secret",
844
+ secret_id="ghe-token-secret",
845
+ replication={
846
+ "auto": {},
847
+ })
848
+ webhook_secret_secret_version = gcp.secretmanager.SecretVersion("webhook-secret-secret-version",
849
+ secret=webhook_secret_secret.id,
850
+ secret_data="<webhook-secret-data>")
851
+ p4sa_secret_accessor = gcp.organizations.get_iam_policy(bindings=[{
852
+ "role": "roles/secretmanager.secretAccessor",
853
+ "members": ["serviceAccount:service-123456789@gcp-sa-devconnect.iam.gserviceaccount.com"],
854
+ }])
855
+ policy_pk = gcp.secretmanager.SecretIamPolicy("policy-pk",
856
+ secret_id=private_key_secret.secret_id,
857
+ policy_data=p4sa_secret_accessor.policy_data)
858
+ policy_whs = gcp.secretmanager.SecretIamPolicy("policy-whs",
859
+ secret_id=webhook_secret_secret.secret_id,
860
+ policy_data=p4sa_secret_accessor.policy_data)
861
+ my_connection = gcp.developerconnect.Connection("my-connection",
862
+ location="us-central1",
863
+ connection_id="my-connection",
864
+ github_enterprise_config={
865
+ "host_uri": "https://ghe.com",
866
+ "private_key_secret_version": private_key_secret_version.id,
867
+ "webhook_secret_secret_version": webhook_secret_secret_version.id,
868
+ "app_id": "100",
869
+ "app_installation_id": "123123",
870
+ },
871
+ opts = pulumi.ResourceOptions(depends_on=[
872
+ policy_pk,
873
+ policy_whs,
874
+ ]))
875
+ ```
876
+ ### Developer Connect Connection Gitlab
877
+
878
+ ```python
879
+ import pulumi
880
+ import pulumi_gcp as gcp
881
+
882
+ my_connection = gcp.developerconnect.Connection("my-connection",
883
+ location="us-central1",
884
+ connection_id="tf-test-connection",
885
+ gitlab_config={
886
+ "webhook_secret_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-webhook/versions/latest",
887
+ "read_authorizer_credential": {
888
+ "user_token_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-read-cred/versions/latest",
889
+ },
890
+ "authorizer_credential": {
891
+ "user_token_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-auth-cred/versions/latest",
892
+ },
893
+ })
894
+ ```
895
+ ### Developer Connect Connection Gitlab Enterprise
896
+
897
+ ```python
898
+ import pulumi
899
+ import pulumi_gcp as gcp
610
900
 
901
+ my_connection = gcp.developerconnect.Connection("my-connection",
902
+ location="us-central1",
903
+ connection_id="tf-test-connection",
904
+ gitlab_enterprise_config={
905
+ "host_uri": "https://gle-us-central1.gcb-test.com",
906
+ "webhook_secret_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-enterprise-webhook/versions/latest",
907
+ "read_authorizer_credential": {
908
+ "user_token_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-enterprise-read-cred/versions/latest",
909
+ },
910
+ "authorizer_credential": {
911
+ "user_token_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-enterprise-auth-cred/versions/latest",
912
+ },
913
+ })
914
+ ```
611
915
  ## Import
612
916
 
613
917
  Connection can be imported using any of these accepted formats:
@@ -635,27 +939,35 @@ class Connection(pulumi.CustomResource):
635
939
  :param str resource_name: The name of the resource.
636
940
  :param pulumi.ResourceOptions opts: Options for the resource.
637
941
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. Allows clients to store small amounts of arbitrary data.
638
-
639
942
  **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
640
943
  Please refer to the field `effective_annotations` for all of the annotations present on the resource.
641
- :param pulumi.Input[str] connection_id: Required. Id of the requesting object. If auto-generating Id server-side,
642
- remove this field and connection_id from the method_signature of Create RPC.
944
+ :param pulumi.Input[str] connection_id: Required. Id of the requesting object
945
+ If auto-generating Id server-side, remove this field and
946
+ connection_id from the method_signature of Create RPC
643
947
 
644
948
 
645
949
  - - -
646
- :param pulumi.Input[bool] disabled: Optional. If disabled is set to true, functionality is disabled for this connection. Repository based API methods and webhooks processing for repositories in this connection will be disabled.
647
- :param pulumi.Input[str] etag: Optional. This checksum is computed by the server based on the value
648
- of other fields, and may be sent on update and delete requests to ensure the
950
+ :param pulumi.Input[Union['ConnectionCryptoKeyConfigArgs', 'ConnectionCryptoKeyConfigArgsDict']] crypto_key_config: The crypto key configuration. This field is used by the Customer-managed
951
+ encryption keys (CMEK) feature.
952
+ Structure is documented below.
953
+ :param pulumi.Input[bool] disabled: Optional. If disabled is set to true, functionality is disabled for this connection.
954
+ Repository based API methods and webhooks processing for repositories in
955
+ this connection will be disabled.
956
+ :param pulumi.Input[str] etag: Optional. This checksum is computed by the server based on the value of other
957
+ fields, and may be sent on update and delete requests to ensure the
649
958
  client has an up-to-date value before proceeding.
650
959
  :param pulumi.Input[Union['ConnectionGithubConfigArgs', 'ConnectionGithubConfigArgsDict']] github_config: Configuration for connections to github.com.
651
960
  Structure is documented below.
961
+ :param pulumi.Input[Union['ConnectionGithubEnterpriseConfigArgs', 'ConnectionGithubEnterpriseConfigArgsDict']] github_enterprise_config: Configuration for connections to an instance of GitHub Enterprise.
962
+ Structure is documented below.
963
+ :param pulumi.Input[Union['ConnectionGitlabConfigArgs', 'ConnectionGitlabConfigArgsDict']] gitlab_config: Configuration for connections to gitlab.com.
964
+ Structure is documented below.
965
+ :param pulumi.Input[Union['ConnectionGitlabEnterpriseConfigArgs', 'ConnectionGitlabEnterpriseConfigArgsDict']] gitlab_enterprise_config: Configuration for connections to an instance of GitLab Enterprise.
966
+ Structure is documented below.
652
967
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels as key value pairs
653
-
654
968
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
655
969
  Please refer to the field `effective_labels` for all of the labels present on the resource.
656
- :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource
657
- within its parent collection as described in https://google.aip.dev/122. See documentation
658
- for resource type `developerconnect.googleapis.com/GitRepositoryLink`.
970
+ :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
659
971
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
660
972
  If it is not provided, the provider project is used.
661
973
  """
@@ -666,6 +978,8 @@ class Connection(pulumi.CustomResource):
666
978
  args: ConnectionArgs,
667
979
  opts: Optional[pulumi.ResourceOptions] = None):
668
980
  """
981
+ A connection for GitHub, GitHub Enterprise, GitLab, and GitLab Enterprise.
982
+
669
983
  ## Example Usage
670
984
 
671
985
  ### Developer Connect Connection New
@@ -740,7 +1054,159 @@ class Connection(pulumi.CustomResource):
740
1054
  },
741
1055
  })
742
1056
  ```
1057
+ ### Developer Connect Connection Github
1058
+
1059
+ ```python
1060
+ import pulumi
1061
+ import pulumi_gcp as gcp
1062
+
1063
+ my_connection = gcp.developerconnect.Connection("my-connection",
1064
+ location="us-central1",
1065
+ connection_id="tf-test-connection",
1066
+ github_config={
1067
+ "github_app": "DEVELOPER_CONNECT",
1068
+ "authorizer_credential": {
1069
+ "oauth_token_secret_version": "projects/devconnect-terraform-creds/secrets/tf-test-do-not-change-github-oauthtoken-e0b9e7/versions/1",
1070
+ },
1071
+ })
1072
+ ```
1073
+ ### Developer Connect Connection Github Doc
1074
+
1075
+ ```python
1076
+ import pulumi
1077
+ import pulumi_gcp as gcp
1078
+ import pulumi_std as std
1079
+
1080
+ github_token_secret = gcp.secretmanager.Secret("github-token-secret",
1081
+ secret_id="github-token-secret",
1082
+ replication={
1083
+ "auto": {},
1084
+ })
1085
+ github_token_secret_version = gcp.secretmanager.SecretVersion("github-token-secret-version",
1086
+ secret=github_token_secret.id,
1087
+ secret_data=std.file(input="my-github-token.txt").result)
1088
+ p4sa_secret_accessor = gcp.organizations.get_iam_policy(bindings=[{
1089
+ "role": "roles/secretmanager.secretAccessor",
1090
+ "members": ["serviceAccount:service-123456789@gcp-sa-devconnect.iam.gserviceaccount.com"],
1091
+ }])
1092
+ policy = gcp.secretmanager.SecretIamPolicy("policy",
1093
+ secret_id=github_token_secret.secret_id,
1094
+ policy_data=p4sa_secret_accessor.policy_data)
1095
+ my_connection = gcp.developerconnect.Connection("my-connection",
1096
+ location="us-central1",
1097
+ connection_id="my-connection",
1098
+ github_config={
1099
+ "github_app": "DEVELOPER_CONNECT",
1100
+ "app_installation_id": "123123",
1101
+ "authorizer_credential": {
1102
+ "oauth_token_secret_version": github_token_secret_version.id,
1103
+ },
1104
+ })
1105
+ ```
1106
+ ### Developer Connect Connection Github Enterprise
1107
+
1108
+ ```python
1109
+ import pulumi
1110
+ import pulumi_gcp as gcp
1111
+
1112
+ my_connection = gcp.developerconnect.Connection("my-connection",
1113
+ location="us-central1",
1114
+ connection_id="tf-test-connection",
1115
+ github_enterprise_config={
1116
+ "host_uri": "https://ghe.proctor-staging-test.com",
1117
+ "app_id": "864434",
1118
+ "private_key_secret_version": "projects/devconnect-terraform-creds/secrets/tf-test-ghe-do-not-change-ghe-private-key-f522d2/versions/latest",
1119
+ "webhook_secret_secret_version": "projects/devconnect-terraform-creds/secrets/tf-test-ghe-do-not-change-ghe-webhook-secret-3c806f/versions/latest",
1120
+ "app_installation_id": "837537",
1121
+ })
1122
+ ```
1123
+ ### Developer Connect Connection Github Enterprise Doc
743
1124
 
1125
+ ```python
1126
+ import pulumi
1127
+ import pulumi_gcp as gcp
1128
+ import pulumi_std as std
1129
+
1130
+ private_key_secret = gcp.secretmanager.Secret("private-key-secret",
1131
+ secret_id="ghe-pk-secret",
1132
+ replication={
1133
+ "auto": {},
1134
+ })
1135
+ private_key_secret_version = gcp.secretmanager.SecretVersion("private-key-secret-version",
1136
+ secret=private_key_secret.id,
1137
+ secret_data=std.file(input="private-key.pem").result)
1138
+ webhook_secret_secret = gcp.secretmanager.Secret("webhook-secret-secret",
1139
+ secret_id="ghe-token-secret",
1140
+ replication={
1141
+ "auto": {},
1142
+ })
1143
+ webhook_secret_secret_version = gcp.secretmanager.SecretVersion("webhook-secret-secret-version",
1144
+ secret=webhook_secret_secret.id,
1145
+ secret_data="<webhook-secret-data>")
1146
+ p4sa_secret_accessor = gcp.organizations.get_iam_policy(bindings=[{
1147
+ "role": "roles/secretmanager.secretAccessor",
1148
+ "members": ["serviceAccount:service-123456789@gcp-sa-devconnect.iam.gserviceaccount.com"],
1149
+ }])
1150
+ policy_pk = gcp.secretmanager.SecretIamPolicy("policy-pk",
1151
+ secret_id=private_key_secret.secret_id,
1152
+ policy_data=p4sa_secret_accessor.policy_data)
1153
+ policy_whs = gcp.secretmanager.SecretIamPolicy("policy-whs",
1154
+ secret_id=webhook_secret_secret.secret_id,
1155
+ policy_data=p4sa_secret_accessor.policy_data)
1156
+ my_connection = gcp.developerconnect.Connection("my-connection",
1157
+ location="us-central1",
1158
+ connection_id="my-connection",
1159
+ github_enterprise_config={
1160
+ "host_uri": "https://ghe.com",
1161
+ "private_key_secret_version": private_key_secret_version.id,
1162
+ "webhook_secret_secret_version": webhook_secret_secret_version.id,
1163
+ "app_id": "100",
1164
+ "app_installation_id": "123123",
1165
+ },
1166
+ opts = pulumi.ResourceOptions(depends_on=[
1167
+ policy_pk,
1168
+ policy_whs,
1169
+ ]))
1170
+ ```
1171
+ ### Developer Connect Connection Gitlab
1172
+
1173
+ ```python
1174
+ import pulumi
1175
+ import pulumi_gcp as gcp
1176
+
1177
+ my_connection = gcp.developerconnect.Connection("my-connection",
1178
+ location="us-central1",
1179
+ connection_id="tf-test-connection",
1180
+ gitlab_config={
1181
+ "webhook_secret_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-webhook/versions/latest",
1182
+ "read_authorizer_credential": {
1183
+ "user_token_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-read-cred/versions/latest",
1184
+ },
1185
+ "authorizer_credential": {
1186
+ "user_token_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-auth-cred/versions/latest",
1187
+ },
1188
+ })
1189
+ ```
1190
+ ### Developer Connect Connection Gitlab Enterprise
1191
+
1192
+ ```python
1193
+ import pulumi
1194
+ import pulumi_gcp as gcp
1195
+
1196
+ my_connection = gcp.developerconnect.Connection("my-connection",
1197
+ location="us-central1",
1198
+ connection_id="tf-test-connection",
1199
+ gitlab_enterprise_config={
1200
+ "host_uri": "https://gle-us-central1.gcb-test.com",
1201
+ "webhook_secret_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-enterprise-webhook/versions/latest",
1202
+ "read_authorizer_credential": {
1203
+ "user_token_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-enterprise-read-cred/versions/latest",
1204
+ },
1205
+ "authorizer_credential": {
1206
+ "user_token_secret_version": "projects/devconnect-terraform-creds/secrets/gitlab-enterprise-auth-cred/versions/latest",
1207
+ },
1208
+ })
1209
+ ```
744
1210
  ## Import
745
1211
 
746
1212
  Connection can be imported using any of these accepted formats:
@@ -782,9 +1248,13 @@ class Connection(pulumi.CustomResource):
782
1248
  opts: Optional[pulumi.ResourceOptions] = None,
783
1249
  annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
784
1250
  connection_id: Optional[pulumi.Input[str]] = None,
1251
+ crypto_key_config: Optional[pulumi.Input[Union['ConnectionCryptoKeyConfigArgs', 'ConnectionCryptoKeyConfigArgsDict']]] = None,
785
1252
  disabled: Optional[pulumi.Input[bool]] = None,
786
1253
  etag: Optional[pulumi.Input[str]] = None,
787
1254
  github_config: Optional[pulumi.Input[Union['ConnectionGithubConfigArgs', 'ConnectionGithubConfigArgsDict']]] = None,
1255
+ github_enterprise_config: Optional[pulumi.Input[Union['ConnectionGithubEnterpriseConfigArgs', 'ConnectionGithubEnterpriseConfigArgsDict']]] = None,
1256
+ gitlab_config: Optional[pulumi.Input[Union['ConnectionGitlabConfigArgs', 'ConnectionGitlabConfigArgsDict']]] = None,
1257
+ gitlab_enterprise_config: Optional[pulumi.Input[Union['ConnectionGitlabEnterpriseConfigArgs', 'ConnectionGitlabEnterpriseConfigArgsDict']]] = None,
788
1258
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
789
1259
  location: Optional[pulumi.Input[str]] = None,
790
1260
  project: Optional[pulumi.Input[str]] = None,
@@ -801,9 +1271,13 @@ class Connection(pulumi.CustomResource):
801
1271
  if connection_id is None and not opts.urn:
802
1272
  raise TypeError("Missing required property 'connection_id'")
803
1273
  __props__.__dict__["connection_id"] = connection_id
1274
+ __props__.__dict__["crypto_key_config"] = crypto_key_config
804
1275
  __props__.__dict__["disabled"] = disabled
805
1276
  __props__.__dict__["etag"] = etag
806
1277
  __props__.__dict__["github_config"] = github_config
1278
+ __props__.__dict__["github_enterprise_config"] = github_enterprise_config
1279
+ __props__.__dict__["gitlab_config"] = gitlab_config
1280
+ __props__.__dict__["gitlab_enterprise_config"] = gitlab_enterprise_config
807
1281
  __props__.__dict__["labels"] = labels
808
1282
  if location is None and not opts.urn:
809
1283
  raise TypeError("Missing required property 'location'")
@@ -834,12 +1308,16 @@ class Connection(pulumi.CustomResource):
834
1308
  annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
835
1309
  connection_id: Optional[pulumi.Input[str]] = None,
836
1310
  create_time: Optional[pulumi.Input[str]] = None,
1311
+ crypto_key_config: Optional[pulumi.Input[Union['ConnectionCryptoKeyConfigArgs', 'ConnectionCryptoKeyConfigArgsDict']]] = None,
837
1312
  delete_time: Optional[pulumi.Input[str]] = None,
838
1313
  disabled: Optional[pulumi.Input[bool]] = None,
839
1314
  effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
840
1315
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
841
1316
  etag: Optional[pulumi.Input[str]] = None,
842
1317
  github_config: Optional[pulumi.Input[Union['ConnectionGithubConfigArgs', 'ConnectionGithubConfigArgsDict']]] = None,
1318
+ github_enterprise_config: Optional[pulumi.Input[Union['ConnectionGithubEnterpriseConfigArgs', 'ConnectionGithubEnterpriseConfigArgsDict']]] = None,
1319
+ gitlab_config: Optional[pulumi.Input[Union['ConnectionGitlabConfigArgs', 'ConnectionGitlabConfigArgsDict']]] = None,
1320
+ gitlab_enterprise_config: Optional[pulumi.Input[Union['ConnectionGitlabEnterpriseConfigArgs', 'ConnectionGitlabEnterpriseConfigArgsDict']]] = None,
843
1321
  installation_states: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ConnectionInstallationStateArgs', 'ConnectionInstallationStateArgsDict']]]]] = None,
844
1322
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
845
1323
  location: Optional[pulumi.Input[str]] = None,
@@ -857,41 +1335,50 @@ class Connection(pulumi.CustomResource):
857
1335
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
858
1336
  :param pulumi.ResourceOptions opts: Options for the resource.
859
1337
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. Allows clients to store small amounts of arbitrary data.
860
-
861
1338
  **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
862
1339
  Please refer to the field `effective_annotations` for all of the annotations present on the resource.
863
- :param pulumi.Input[str] connection_id: Required. Id of the requesting object. If auto-generating Id server-side,
864
- remove this field and connection_id from the method_signature of Create RPC.
1340
+ :param pulumi.Input[str] connection_id: Required. Id of the requesting object
1341
+ If auto-generating Id server-side, remove this field and
1342
+ connection_id from the method_signature of Create RPC
865
1343
 
866
1344
 
867
1345
  - - -
868
1346
  :param pulumi.Input[str] create_time: Output only. [Output only] Create timestamp
1347
+ :param pulumi.Input[Union['ConnectionCryptoKeyConfigArgs', 'ConnectionCryptoKeyConfigArgsDict']] crypto_key_config: The crypto key configuration. This field is used by the Customer-managed
1348
+ encryption keys (CMEK) feature.
1349
+ Structure is documented below.
869
1350
  :param pulumi.Input[str] delete_time: Output only. [Output only] Delete timestamp
870
- :param pulumi.Input[bool] disabled: Optional. If disabled is set to true, functionality is disabled for this connection. Repository based API methods and webhooks processing for repositories in this connection will be disabled.
1351
+ :param pulumi.Input[bool] disabled: Optional. If disabled is set to true, functionality is disabled for this connection.
1352
+ Repository based API methods and webhooks processing for repositories in
1353
+ this connection will be disabled.
871
1354
  :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.
872
- :param pulumi.Input[str] etag: Optional. This checksum is computed by the server based on the value
873
- of other fields, and may be sent on update and delete requests to ensure the
1355
+ :param pulumi.Input[str] etag: Optional. This checksum is computed by the server based on the value of other
1356
+ fields, and may be sent on update and delete requests to ensure the
874
1357
  client has an up-to-date value before proceeding.
875
1358
  :param pulumi.Input[Union['ConnectionGithubConfigArgs', 'ConnectionGithubConfigArgsDict']] github_config: Configuration for connections to github.com.
876
1359
  Structure is documented below.
877
- :param pulumi.Input[Sequence[pulumi.Input[Union['ConnectionInstallationStateArgs', 'ConnectionInstallationStateArgsDict']]]] installation_states: Describes stage and necessary actions to be taken by the user to complete the installation.
878
- Used for GitHub and GitHub Enterprise based connections.
1360
+ :param pulumi.Input[Union['ConnectionGithubEnterpriseConfigArgs', 'ConnectionGithubEnterpriseConfigArgsDict']] github_enterprise_config: Configuration for connections to an instance of GitHub Enterprise.
1361
+ Structure is documented below.
1362
+ :param pulumi.Input[Union['ConnectionGitlabConfigArgs', 'ConnectionGitlabConfigArgsDict']] gitlab_config: Configuration for connections to gitlab.com.
1363
+ Structure is documented below.
1364
+ :param pulumi.Input[Union['ConnectionGitlabEnterpriseConfigArgs', 'ConnectionGitlabEnterpriseConfigArgsDict']] gitlab_enterprise_config: Configuration for connections to an instance of GitLab Enterprise.
1365
+ Structure is documented below.
1366
+ :param pulumi.Input[Sequence[pulumi.Input[Union['ConnectionInstallationStateArgs', 'ConnectionInstallationStateArgsDict']]]] installation_states: Describes stage and necessary actions to be taken by the
1367
+ user to complete the installation. Used for GitHub and GitHub Enterprise
1368
+ based connections.
879
1369
  Structure is documented below.
880
1370
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels as key value pairs
881
-
882
1371
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
883
1372
  Please refer to the field `effective_labels` for all of the labels present on the resource.
884
- :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource
885
- within its parent collection as described in https://google.aip.dev/122. See documentation
886
- for resource type `developerconnect.googleapis.com/GitRepositoryLink`.
1373
+ :param pulumi.Input[str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
887
1374
  :param pulumi.Input[str] name: Identifier. The resource name of the connection, in the format
888
1375
  `projects/{project}/locations/{location}/connections/{connection_id}`.
889
1376
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
890
1377
  If it is not provided, the provider project is used.
891
1378
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
892
1379
  and default labels configured on the provider.
893
- :param pulumi.Input[bool] reconciling: Output only. Set to true when the connection is being set up or updated
894
- in the background.
1380
+ :param pulumi.Input[bool] reconciling: Output only. Set to true when the connection is being set up or updated in the
1381
+ background.
895
1382
  :param pulumi.Input[str] uid: Output only. A system-assigned unique identifier for a the GitRepositoryLink.
896
1383
  :param pulumi.Input[str] update_time: Output only. [Output only] Update timestamp
897
1384
  """
@@ -902,12 +1389,16 @@ class Connection(pulumi.CustomResource):
902
1389
  __props__.__dict__["annotations"] = annotations
903
1390
  __props__.__dict__["connection_id"] = connection_id
904
1391
  __props__.__dict__["create_time"] = create_time
1392
+ __props__.__dict__["crypto_key_config"] = crypto_key_config
905
1393
  __props__.__dict__["delete_time"] = delete_time
906
1394
  __props__.__dict__["disabled"] = disabled
907
1395
  __props__.__dict__["effective_annotations"] = effective_annotations
908
1396
  __props__.__dict__["effective_labels"] = effective_labels
909
1397
  __props__.__dict__["etag"] = etag
910
1398
  __props__.__dict__["github_config"] = github_config
1399
+ __props__.__dict__["github_enterprise_config"] = github_enterprise_config
1400
+ __props__.__dict__["gitlab_config"] = gitlab_config
1401
+ __props__.__dict__["gitlab_enterprise_config"] = gitlab_enterprise_config
911
1402
  __props__.__dict__["installation_states"] = installation_states
912
1403
  __props__.__dict__["labels"] = labels
913
1404
  __props__.__dict__["location"] = location
@@ -924,7 +1415,6 @@ class Connection(pulumi.CustomResource):
924
1415
  def annotations(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
925
1416
  """
926
1417
  Optional. Allows clients to store small amounts of arbitrary data.
927
-
928
1418
  **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
929
1419
  Please refer to the field `effective_annotations` for all of the annotations present on the resource.
930
1420
  """
@@ -934,8 +1424,9 @@ class Connection(pulumi.CustomResource):
934
1424
  @pulumi.getter(name="connectionId")
935
1425
  def connection_id(self) -> pulumi.Output[str]:
936
1426
  """
937
- Required. Id of the requesting object. If auto-generating Id server-side,
938
- remove this field and connection_id from the method_signature of Create RPC.
1427
+ Required. Id of the requesting object
1428
+ If auto-generating Id server-side, remove this field and
1429
+ connection_id from the method_signature of Create RPC
939
1430
 
940
1431
 
941
1432
  - - -
@@ -950,6 +1441,16 @@ class Connection(pulumi.CustomResource):
950
1441
  """
951
1442
  return pulumi.get(self, "create_time")
952
1443
 
1444
+ @property
1445
+ @pulumi.getter(name="cryptoKeyConfig")
1446
+ def crypto_key_config(self) -> pulumi.Output[Optional['outputs.ConnectionCryptoKeyConfig']]:
1447
+ """
1448
+ The crypto key configuration. This field is used by the Customer-managed
1449
+ encryption keys (CMEK) feature.
1450
+ Structure is documented below.
1451
+ """
1452
+ return pulumi.get(self, "crypto_key_config")
1453
+
953
1454
  @property
954
1455
  @pulumi.getter(name="deleteTime")
955
1456
  def delete_time(self) -> pulumi.Output[str]:
@@ -962,7 +1463,9 @@ class Connection(pulumi.CustomResource):
962
1463
  @pulumi.getter
963
1464
  def disabled(self) -> pulumi.Output[Optional[bool]]:
964
1465
  """
965
- Optional. If disabled is set to true, functionality is disabled for this connection. Repository based API methods and webhooks processing for repositories in this connection will be disabled.
1466
+ Optional. If disabled is set to true, functionality is disabled for this connection.
1467
+ Repository based API methods and webhooks processing for repositories in
1468
+ this connection will be disabled.
966
1469
  """
967
1470
  return pulumi.get(self, "disabled")
968
1471
 
@@ -983,8 +1486,8 @@ class Connection(pulumi.CustomResource):
983
1486
  @pulumi.getter
984
1487
  def etag(self) -> pulumi.Output[Optional[str]]:
985
1488
  """
986
- Optional. This checksum is computed by the server based on the value
987
- of other fields, and may be sent on update and delete requests to ensure the
1489
+ Optional. This checksum is computed by the server based on the value of other
1490
+ fields, and may be sent on update and delete requests to ensure the
988
1491
  client has an up-to-date value before proceeding.
989
1492
  """
990
1493
  return pulumi.get(self, "etag")
@@ -998,12 +1501,40 @@ class Connection(pulumi.CustomResource):
998
1501
  """
999
1502
  return pulumi.get(self, "github_config")
1000
1503
 
1504
+ @property
1505
+ @pulumi.getter(name="githubEnterpriseConfig")
1506
+ def github_enterprise_config(self) -> pulumi.Output[Optional['outputs.ConnectionGithubEnterpriseConfig']]:
1507
+ """
1508
+ Configuration for connections to an instance of GitHub Enterprise.
1509
+ Structure is documented below.
1510
+ """
1511
+ return pulumi.get(self, "github_enterprise_config")
1512
+
1513
+ @property
1514
+ @pulumi.getter(name="gitlabConfig")
1515
+ def gitlab_config(self) -> pulumi.Output[Optional['outputs.ConnectionGitlabConfig']]:
1516
+ """
1517
+ Configuration for connections to gitlab.com.
1518
+ Structure is documented below.
1519
+ """
1520
+ return pulumi.get(self, "gitlab_config")
1521
+
1522
+ @property
1523
+ @pulumi.getter(name="gitlabEnterpriseConfig")
1524
+ def gitlab_enterprise_config(self) -> pulumi.Output[Optional['outputs.ConnectionGitlabEnterpriseConfig']]:
1525
+ """
1526
+ Configuration for connections to an instance of GitLab Enterprise.
1527
+ Structure is documented below.
1528
+ """
1529
+ return pulumi.get(self, "gitlab_enterprise_config")
1530
+
1001
1531
  @property
1002
1532
  @pulumi.getter(name="installationStates")
1003
1533
  def installation_states(self) -> pulumi.Output[Sequence['outputs.ConnectionInstallationState']]:
1004
1534
  """
1005
- Describes stage and necessary actions to be taken by the user to complete the installation.
1006
- Used for GitHub and GitHub Enterprise based connections.
1535
+ Describes stage and necessary actions to be taken by the
1536
+ user to complete the installation. Used for GitHub and GitHub Enterprise
1537
+ based connections.
1007
1538
  Structure is documented below.
1008
1539
  """
1009
1540
  return pulumi.get(self, "installation_states")
@@ -1013,7 +1544,6 @@ class Connection(pulumi.CustomResource):
1013
1544
  def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1014
1545
  """
1015
1546
  Optional. Labels as key value pairs
1016
-
1017
1547
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1018
1548
  Please refer to the field `effective_labels` for all of the labels present on the resource.
1019
1549
  """
@@ -1023,9 +1553,7 @@ class Connection(pulumi.CustomResource):
1023
1553
  @pulumi.getter
1024
1554
  def location(self) -> pulumi.Output[str]:
1025
1555
  """
1026
- Resource ID segment making up resource `name`. It identifies the resource
1027
- within its parent collection as described in https://google.aip.dev/122. See documentation
1028
- for resource type `developerconnect.googleapis.com/GitRepositoryLink`.
1556
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
1029
1557
  """
1030
1558
  return pulumi.get(self, "location")
1031
1559
 
@@ -1060,8 +1588,8 @@ class Connection(pulumi.CustomResource):
1060
1588
  @pulumi.getter
1061
1589
  def reconciling(self) -> pulumi.Output[bool]:
1062
1590
  """
1063
- Output only. Set to true when the connection is being set up or updated
1064
- in the background.
1591
+ Output only. Set to true when the connection is being set up or updated in the
1592
+ background.
1065
1593
  """
1066
1594
  return pulumi.get(self, "reconciling")
1067
1595