pulumi-gcp 8.23.0a1742538920__py3-none-any.whl → 8.24.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/alloydb/_inputs.py +27 -1
  3. pulumi_gcp/alloydb/outputs.py +33 -2
  4. pulumi_gcp/applicationintegration/client.py +18 -24
  5. pulumi_gcp/bigquery/_inputs.py +178 -0
  6. pulumi_gcp/bigquery/outputs.py +127 -0
  7. pulumi_gcp/bigquery/reservation.py +189 -1
  8. pulumi_gcp/bigquery/table.py +61 -0
  9. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +11 -7
  10. pulumi_gcp/bigtable/table.py +7 -7
  11. pulumi_gcp/chronicle/data_access_label.py +16 -0
  12. pulumi_gcp/clouddeploy/_inputs.py +20 -0
  13. pulumi_gcp/clouddeploy/outputs.py +15 -1
  14. pulumi_gcp/cloudfunctions/function.py +11 -11
  15. pulumi_gcp/cloudfunctionsv2/function.py +24 -24
  16. pulumi_gcp/cloudidentity/get_group_transitive_memberships.py +41 -2
  17. pulumi_gcp/cloudidentity/outputs.py +18 -38
  18. pulumi_gcp/cloudrunv2/service.py +14 -14
  19. pulumi_gcp/compute/__init__.py +1 -0
  20. pulumi_gcp/compute/_inputs.py +616 -18
  21. pulumi_gcp/compute/firewall_policy.py +20 -0
  22. pulumi_gcp/compute/get_images.py +172 -0
  23. pulumi_gcp/compute/get_resource_policy.py +15 -4
  24. pulumi_gcp/compute/image.py +54 -0
  25. pulumi_gcp/compute/interconnect.py +14 -7
  26. pulumi_gcp/compute/outputs.py +710 -18
  27. pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
  28. pulumi_gcp/compute/resource_policy.py +169 -3
  29. pulumi_gcp/compute/router_route_policy.py +16 -0
  30. pulumi_gcp/compute/subnetwork.py +109 -1
  31. pulumi_gcp/compute/target_https_proxy.py +7 -7
  32. pulumi_gcp/config/__init__.pyi +8 -0
  33. pulumi_gcp/config/vars.py +16 -0
  34. pulumi_gcp/container/_inputs.py +265 -4
  35. pulumi_gcp/container/cluster.py +54 -0
  36. pulumi_gcp/container/get_attached_versions.py +2 -2
  37. pulumi_gcp/container/get_cluster.py +12 -1
  38. pulumi_gcp/container/outputs.py +301 -6
  39. pulumi_gcp/dataform/repository.py +49 -0
  40. pulumi_gcp/dataproc/_inputs.py +23 -0
  41. pulumi_gcp/dataproc/get_metastore_service.py +26 -4
  42. pulumi_gcp/dataproc/metastore_federation.py +56 -0
  43. pulumi_gcp/dataproc/metastore_service.py +58 -2
  44. pulumi_gcp/dataproc/outputs.py +27 -0
  45. pulumi_gcp/eventarc/__init__.py +1 -0
  46. pulumi_gcp/eventarc/_inputs.py +1758 -0
  47. pulumi_gcp/eventarc/outputs.py +1337 -0
  48. pulumi_gcp/eventarc/pipeline.py +1596 -0
  49. pulumi_gcp/firebase/__init__.py +1 -0
  50. pulumi_gcp/firebase/_inputs.py +154 -0
  51. pulumi_gcp/firebase/app_hosting_backend.py +1303 -0
  52. pulumi_gcp/firebase/hosting_version.py +2 -2
  53. pulumi_gcp/firebase/outputs.py +127 -0
  54. pulumi_gcp/kms/get_key_rings.py +39 -2
  55. pulumi_gcp/lustre/__init__.py +8 -0
  56. pulumi_gcp/lustre/instance.py +983 -0
  57. pulumi_gcp/managedkafka/__init__.py +2 -0
  58. pulumi_gcp/managedkafka/_inputs.py +263 -0
  59. pulumi_gcp/managedkafka/connect_cluster.py +795 -0
  60. pulumi_gcp/managedkafka/connector.py +695 -0
  61. pulumi_gcp/managedkafka/outputs.py +248 -0
  62. pulumi_gcp/memorystore/_inputs.py +419 -0
  63. pulumi_gcp/memorystore/get_instance.py +23 -1
  64. pulumi_gcp/memorystore/instance.py +144 -14
  65. pulumi_gcp/memorystore/outputs.py +544 -0
  66. pulumi_gcp/monitoring/uptime_check_config.py +2 -2
  67. pulumi_gcp/networkmanagement/_inputs.py +422 -91
  68. pulumi_gcp/networkmanagement/connectivity_test.py +233 -211
  69. pulumi_gcp/networkmanagement/outputs.py +280 -61
  70. pulumi_gcp/networksecurity/_inputs.py +1277 -242
  71. pulumi_gcp/networksecurity/gateway_security_policy.py +0 -7
  72. pulumi_gcp/networksecurity/intercept_deployment_group.py +44 -16
  73. pulumi_gcp/networksecurity/intercept_endpoint_group.py +90 -36
  74. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +53 -8
  75. pulumi_gcp/networksecurity/mirroring_deployment.py +22 -0
  76. pulumi_gcp/networksecurity/mirroring_deployment_group.py +20 -0
  77. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +24 -0
  78. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +28 -0
  79. pulumi_gcp/networksecurity/outputs.py +723 -8
  80. pulumi_gcp/networksecurity/tls_inspection_policy.py +14 -0
  81. pulumi_gcp/networkservices/gateway.py +242 -120
  82. pulumi_gcp/organizations/__init__.py +1 -0
  83. pulumi_gcp/organizations/get_iam_custom_role.py +198 -0
  84. pulumi_gcp/osconfig/__init__.py +1 -0
  85. pulumi_gcp/osconfig/_inputs.py +5413 -0
  86. pulumi_gcp/osconfig/outputs.py +3962 -0
  87. pulumi_gcp/osconfig/v2_policy_orchestrator.py +971 -0
  88. pulumi_gcp/projects/__init__.py +2 -0
  89. pulumi_gcp/projects/get_iam_custom_role.py +198 -0
  90. pulumi_gcp/projects/get_iam_custom_roles.py +164 -0
  91. pulumi_gcp/projects/outputs.py +96 -0
  92. pulumi_gcp/provider.py +80 -0
  93. pulumi_gcp/pulumi-plugin.json +1 -1
  94. pulumi_gcp/servicenetworking/peered_dns_domain.py +4 -0
  95. pulumi_gcp/sql/outputs.py +8 -8
  96. pulumi_gcp/storage/__init__.py +2 -0
  97. pulumi_gcp/storage/_inputs.py +740 -6
  98. pulumi_gcp/storage/control_project_intelligence_config.py +366 -0
  99. pulumi_gcp/storage/get_control_project_intelligence_config.py +130 -0
  100. pulumi_gcp/storage/insights_report_config.py +121 -20
  101. pulumi_gcp/storage/outputs.py +723 -4
  102. pulumi_gcp/workflows/workflow.py +75 -7
  103. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/METADATA +1 -1
  104. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/RECORD +106 -93
  105. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/WHEEL +1 -1
  106. {pulumi_gcp-8.23.0a1742538920.dist-info → pulumi_gcp-8.24.0.dist-info}/top_level.txt +0 -0
@@ -18,6 +18,24 @@ from . import outputs
18
18
  __all__ = [
19
19
  'GoogleApiSourceLoggingConfig',
20
20
  'MessageBusLoggingConfig',
21
+ 'PipelineDestination',
22
+ 'PipelineDestinationAuthenticationConfig',
23
+ 'PipelineDestinationAuthenticationConfigGoogleOidc',
24
+ 'PipelineDestinationAuthenticationConfigOauthToken',
25
+ 'PipelineDestinationHttpEndpoint',
26
+ 'PipelineDestinationNetworkConfig',
27
+ 'PipelineDestinationOutputPayloadFormat',
28
+ 'PipelineDestinationOutputPayloadFormatAvro',
29
+ 'PipelineDestinationOutputPayloadFormatJson',
30
+ 'PipelineDestinationOutputPayloadFormatProtobuf',
31
+ 'PipelineInputPayloadFormat',
32
+ 'PipelineInputPayloadFormatAvro',
33
+ 'PipelineInputPayloadFormatJson',
34
+ 'PipelineInputPayloadFormatProtobuf',
35
+ 'PipelineLoggingConfig',
36
+ 'PipelineMediation',
37
+ 'PipelineMediationTransformation',
38
+ 'PipelineRetryPolicy',
21
39
  'TriggerDestination',
22
40
  'TriggerDestinationCloudRunService',
23
41
  'TriggerDestinationGke',
@@ -108,6 +126,1325 @@ class MessageBusLoggingConfig(dict):
108
126
  return pulumi.get(self, "log_severity")
109
127
 
110
128
 
129
+ @pulumi.output_type
130
+ class PipelineDestination(dict):
131
+ @staticmethod
132
+ def __key_warning(key: str):
133
+ suggest = None
134
+ if key == "authenticationConfig":
135
+ suggest = "authentication_config"
136
+ elif key == "httpEndpoint":
137
+ suggest = "http_endpoint"
138
+ elif key == "messageBus":
139
+ suggest = "message_bus"
140
+ elif key == "networkConfig":
141
+ suggest = "network_config"
142
+ elif key == "outputPayloadFormat":
143
+ suggest = "output_payload_format"
144
+
145
+ if suggest:
146
+ pulumi.log.warn(f"Key '{key}' not found in PipelineDestination. Access the value via the '{suggest}' property getter instead.")
147
+
148
+ def __getitem__(self, key: str) -> Any:
149
+ PipelineDestination.__key_warning(key)
150
+ return super().__getitem__(key)
151
+
152
+ def get(self, key: str, default = None) -> Any:
153
+ PipelineDestination.__key_warning(key)
154
+ return super().get(key, default)
155
+
156
+ def __init__(__self__, *,
157
+ authentication_config: Optional['outputs.PipelineDestinationAuthenticationConfig'] = None,
158
+ http_endpoint: Optional['outputs.PipelineDestinationHttpEndpoint'] = None,
159
+ message_bus: Optional[str] = None,
160
+ network_config: Optional['outputs.PipelineDestinationNetworkConfig'] = None,
161
+ output_payload_format: Optional['outputs.PipelineDestinationOutputPayloadFormat'] = None,
162
+ topic: Optional[str] = None,
163
+ workflow: Optional[str] = None):
164
+ """
165
+ :param 'PipelineDestinationAuthenticationConfigArgs' authentication_config: Represents a config used to authenticate message requests.
166
+ Structure is documented below.
167
+ :param 'PipelineDestinationHttpEndpointArgs' http_endpoint: Represents a HTTP endpoint destination.
168
+ Structure is documented below.
169
+ :param str message_bus: The resource name of the Message Bus to which events should be
170
+ published. The Message Bus resource should exist in the same project as
171
+ the Pipeline. Format:
172
+ `projects/{project}/locations/{location}/messageBuses/{message_bus}`
173
+ :param 'PipelineDestinationNetworkConfigArgs' network_config: Represents a network config to be used for destination resolution and
174
+ connectivity.
175
+ Structure is documented below.
176
+ :param 'PipelineDestinationOutputPayloadFormatArgs' output_payload_format: Represents the format of message data.
177
+ Structure is documented below.
178
+ :param str topic: The resource name of the Pub/Sub topic to which events should be
179
+ published. Format:
180
+ `projects/{project}/locations/{location}/topics/{topic}`
181
+ :param str workflow: The resource name of the Workflow whose Executions are triggered by
182
+ the events. The Workflow resource should be deployed in the same
183
+ project as the Pipeline. Format:
184
+ `projects/{project}/locations/{location}/workflows/{workflow}`
185
+ """
186
+ if authentication_config is not None:
187
+ pulumi.set(__self__, "authentication_config", authentication_config)
188
+ if http_endpoint is not None:
189
+ pulumi.set(__self__, "http_endpoint", http_endpoint)
190
+ if message_bus is not None:
191
+ pulumi.set(__self__, "message_bus", message_bus)
192
+ if network_config is not None:
193
+ pulumi.set(__self__, "network_config", network_config)
194
+ if output_payload_format is not None:
195
+ pulumi.set(__self__, "output_payload_format", output_payload_format)
196
+ if topic is not None:
197
+ pulumi.set(__self__, "topic", topic)
198
+ if workflow is not None:
199
+ pulumi.set(__self__, "workflow", workflow)
200
+
201
+ @property
202
+ @pulumi.getter(name="authenticationConfig")
203
+ def authentication_config(self) -> Optional['outputs.PipelineDestinationAuthenticationConfig']:
204
+ """
205
+ Represents a config used to authenticate message requests.
206
+ Structure is documented below.
207
+ """
208
+ return pulumi.get(self, "authentication_config")
209
+
210
+ @property
211
+ @pulumi.getter(name="httpEndpoint")
212
+ def http_endpoint(self) -> Optional['outputs.PipelineDestinationHttpEndpoint']:
213
+ """
214
+ Represents a HTTP endpoint destination.
215
+ Structure is documented below.
216
+ """
217
+ return pulumi.get(self, "http_endpoint")
218
+
219
+ @property
220
+ @pulumi.getter(name="messageBus")
221
+ def message_bus(self) -> Optional[str]:
222
+ """
223
+ The resource name of the Message Bus to which events should be
224
+ published. The Message Bus resource should exist in the same project as
225
+ the Pipeline. Format:
226
+ `projects/{project}/locations/{location}/messageBuses/{message_bus}`
227
+ """
228
+ return pulumi.get(self, "message_bus")
229
+
230
+ @property
231
+ @pulumi.getter(name="networkConfig")
232
+ def network_config(self) -> Optional['outputs.PipelineDestinationNetworkConfig']:
233
+ """
234
+ Represents a network config to be used for destination resolution and
235
+ connectivity.
236
+ Structure is documented below.
237
+ """
238
+ return pulumi.get(self, "network_config")
239
+
240
+ @property
241
+ @pulumi.getter(name="outputPayloadFormat")
242
+ def output_payload_format(self) -> Optional['outputs.PipelineDestinationOutputPayloadFormat']:
243
+ """
244
+ Represents the format of message data.
245
+ Structure is documented below.
246
+ """
247
+ return pulumi.get(self, "output_payload_format")
248
+
249
+ @property
250
+ @pulumi.getter
251
+ def topic(self) -> Optional[str]:
252
+ """
253
+ The resource name of the Pub/Sub topic to which events should be
254
+ published. Format:
255
+ `projects/{project}/locations/{location}/topics/{topic}`
256
+ """
257
+ return pulumi.get(self, "topic")
258
+
259
+ @property
260
+ @pulumi.getter
261
+ def workflow(self) -> Optional[str]:
262
+ """
263
+ The resource name of the Workflow whose Executions are triggered by
264
+ the events. The Workflow resource should be deployed in the same
265
+ project as the Pipeline. Format:
266
+ `projects/{project}/locations/{location}/workflows/{workflow}`
267
+ """
268
+ return pulumi.get(self, "workflow")
269
+
270
+
271
+ @pulumi.output_type
272
+ class PipelineDestinationAuthenticationConfig(dict):
273
+ @staticmethod
274
+ def __key_warning(key: str):
275
+ suggest = None
276
+ if key == "googleOidc":
277
+ suggest = "google_oidc"
278
+ elif key == "oauthToken":
279
+ suggest = "oauth_token"
280
+
281
+ if suggest:
282
+ pulumi.log.warn(f"Key '{key}' not found in PipelineDestinationAuthenticationConfig. Access the value via the '{suggest}' property getter instead.")
283
+
284
+ def __getitem__(self, key: str) -> Any:
285
+ PipelineDestinationAuthenticationConfig.__key_warning(key)
286
+ return super().__getitem__(key)
287
+
288
+ def get(self, key: str, default = None) -> Any:
289
+ PipelineDestinationAuthenticationConfig.__key_warning(key)
290
+ return super().get(key, default)
291
+
292
+ def __init__(__self__, *,
293
+ google_oidc: Optional['outputs.PipelineDestinationAuthenticationConfigGoogleOidc'] = None,
294
+ oauth_token: Optional['outputs.PipelineDestinationAuthenticationConfigOauthToken'] = None):
295
+ """
296
+ :param 'PipelineDestinationAuthenticationConfigGoogleOidcArgs' google_oidc: Represents a config used to authenticate with a Google OIDC token using
297
+ a GCP service account. Use this authentication method to invoke your
298
+ Cloud Run and Cloud Functions destinations or HTTP endpoints that
299
+ support Google OIDC.
300
+ Structure is documented below.
301
+ :param 'PipelineDestinationAuthenticationConfigOauthTokenArgs' oauth_token: Contains information needed for generating an
302
+ [OAuth token](https://developers.google.com/identity/protocols/OAuth2).
303
+ This type of authorization should generally only be used when calling
304
+ Google APIs hosted on *.googleapis.com.
305
+ Structure is documented below.
306
+ """
307
+ if google_oidc is not None:
308
+ pulumi.set(__self__, "google_oidc", google_oidc)
309
+ if oauth_token is not None:
310
+ pulumi.set(__self__, "oauth_token", oauth_token)
311
+
312
+ @property
313
+ @pulumi.getter(name="googleOidc")
314
+ def google_oidc(self) -> Optional['outputs.PipelineDestinationAuthenticationConfigGoogleOidc']:
315
+ """
316
+ Represents a config used to authenticate with a Google OIDC token using
317
+ a GCP service account. Use this authentication method to invoke your
318
+ Cloud Run and Cloud Functions destinations or HTTP endpoints that
319
+ support Google OIDC.
320
+ Structure is documented below.
321
+ """
322
+ return pulumi.get(self, "google_oidc")
323
+
324
+ @property
325
+ @pulumi.getter(name="oauthToken")
326
+ def oauth_token(self) -> Optional['outputs.PipelineDestinationAuthenticationConfigOauthToken']:
327
+ """
328
+ Contains information needed for generating an
329
+ [OAuth token](https://developers.google.com/identity/protocols/OAuth2).
330
+ This type of authorization should generally only be used when calling
331
+ Google APIs hosted on *.googleapis.com.
332
+ Structure is documented below.
333
+ """
334
+ return pulumi.get(self, "oauth_token")
335
+
336
+
337
+ @pulumi.output_type
338
+ class PipelineDestinationAuthenticationConfigGoogleOidc(dict):
339
+ @staticmethod
340
+ def __key_warning(key: str):
341
+ suggest = None
342
+ if key == "serviceAccount":
343
+ suggest = "service_account"
344
+
345
+ if suggest:
346
+ pulumi.log.warn(f"Key '{key}' not found in PipelineDestinationAuthenticationConfigGoogleOidc. Access the value via the '{suggest}' property getter instead.")
347
+
348
+ def __getitem__(self, key: str) -> Any:
349
+ PipelineDestinationAuthenticationConfigGoogleOidc.__key_warning(key)
350
+ return super().__getitem__(key)
351
+
352
+ def get(self, key: str, default = None) -> Any:
353
+ PipelineDestinationAuthenticationConfigGoogleOidc.__key_warning(key)
354
+ return super().get(key, default)
355
+
356
+ def __init__(__self__, *,
357
+ service_account: str,
358
+ audience: Optional[str] = None):
359
+ """
360
+ :param str service_account: Service account email used to generate the OIDC Token.
361
+ The principal who calls this API must have
362
+ iam.serviceAccounts.actAs permission in the service account. See
363
+ https://cloud.google.com/iam/docs/understanding-service-accounts
364
+ for more information. Eventarc service agents must have
365
+ roles/roles/iam.serviceAccountTokenCreator role to allow the
366
+ Pipeline to create OpenID tokens for authenticated requests.
367
+ :param str audience: Audience to be used to generate the OIDC Token. The audience claim
368
+ identifies the recipient that the JWT is intended for. If
369
+ unspecified, the destination URI will be used.
370
+ """
371
+ pulumi.set(__self__, "service_account", service_account)
372
+ if audience is not None:
373
+ pulumi.set(__self__, "audience", audience)
374
+
375
+ @property
376
+ @pulumi.getter(name="serviceAccount")
377
+ def service_account(self) -> str:
378
+ """
379
+ Service account email used to generate the OIDC Token.
380
+ The principal who calls this API must have
381
+ iam.serviceAccounts.actAs permission in the service account. See
382
+ https://cloud.google.com/iam/docs/understanding-service-accounts
383
+ for more information. Eventarc service agents must have
384
+ roles/roles/iam.serviceAccountTokenCreator role to allow the
385
+ Pipeline to create OpenID tokens for authenticated requests.
386
+ """
387
+ return pulumi.get(self, "service_account")
388
+
389
+ @property
390
+ @pulumi.getter
391
+ def audience(self) -> Optional[str]:
392
+ """
393
+ Audience to be used to generate the OIDC Token. The audience claim
394
+ identifies the recipient that the JWT is intended for. If
395
+ unspecified, the destination URI will be used.
396
+ """
397
+ return pulumi.get(self, "audience")
398
+
399
+
400
+ @pulumi.output_type
401
+ class PipelineDestinationAuthenticationConfigOauthToken(dict):
402
+ @staticmethod
403
+ def __key_warning(key: str):
404
+ suggest = None
405
+ if key == "serviceAccount":
406
+ suggest = "service_account"
407
+
408
+ if suggest:
409
+ pulumi.log.warn(f"Key '{key}' not found in PipelineDestinationAuthenticationConfigOauthToken. Access the value via the '{suggest}' property getter instead.")
410
+
411
+ def __getitem__(self, key: str) -> Any:
412
+ PipelineDestinationAuthenticationConfigOauthToken.__key_warning(key)
413
+ return super().__getitem__(key)
414
+
415
+ def get(self, key: str, default = None) -> Any:
416
+ PipelineDestinationAuthenticationConfigOauthToken.__key_warning(key)
417
+ return super().get(key, default)
418
+
419
+ def __init__(__self__, *,
420
+ service_account: str,
421
+ scope: Optional[str] = None):
422
+ """
423
+ :param str service_account: Service account email used to generate the [OAuth
424
+ token](https://developers.google.com/identity/protocols/OAuth2).
425
+ The principal who calls this API must have
426
+ iam.serviceAccounts.actAs permission in the service account. See
427
+ https://cloud.google.com/iam/docs/understanding-service-accounts
428
+ for more information. Eventarc service agents must have
429
+ roles/roles/iam.serviceAccountTokenCreator role to allow Pipeline
430
+ to create OAuth2 tokens for authenticated requests.
431
+ :param str scope: OAuth scope to be used for generating OAuth access token. If not
432
+ specified, "https://www.googleapis.com/auth/cloud-platform" will be
433
+ used.
434
+ """
435
+ pulumi.set(__self__, "service_account", service_account)
436
+ if scope is not None:
437
+ pulumi.set(__self__, "scope", scope)
438
+
439
+ @property
440
+ @pulumi.getter(name="serviceAccount")
441
+ def service_account(self) -> str:
442
+ """
443
+ Service account email used to generate the [OAuth
444
+ token](https://developers.google.com/identity/protocols/OAuth2).
445
+ The principal who calls this API must have
446
+ iam.serviceAccounts.actAs permission in the service account. See
447
+ https://cloud.google.com/iam/docs/understanding-service-accounts
448
+ for more information. Eventarc service agents must have
449
+ roles/roles/iam.serviceAccountTokenCreator role to allow Pipeline
450
+ to create OAuth2 tokens for authenticated requests.
451
+ """
452
+ return pulumi.get(self, "service_account")
453
+
454
+ @property
455
+ @pulumi.getter
456
+ def scope(self) -> Optional[str]:
457
+ """
458
+ OAuth scope to be used for generating OAuth access token. If not
459
+ specified, "https://www.googleapis.com/auth/cloud-platform" will be
460
+ used.
461
+ """
462
+ return pulumi.get(self, "scope")
463
+
464
+
465
+ @pulumi.output_type
466
+ class PipelineDestinationHttpEndpoint(dict):
467
+ @staticmethod
468
+ def __key_warning(key: str):
469
+ suggest = None
470
+ if key == "messageBindingTemplate":
471
+ suggest = "message_binding_template"
472
+
473
+ if suggest:
474
+ pulumi.log.warn(f"Key '{key}' not found in PipelineDestinationHttpEndpoint. Access the value via the '{suggest}' property getter instead.")
475
+
476
+ def __getitem__(self, key: str) -> Any:
477
+ PipelineDestinationHttpEndpoint.__key_warning(key)
478
+ return super().__getitem__(key)
479
+
480
+ def get(self, key: str, default = None) -> Any:
481
+ PipelineDestinationHttpEndpoint.__key_warning(key)
482
+ return super().get(key, default)
483
+
484
+ def __init__(__self__, *,
485
+ uri: str,
486
+ message_binding_template: Optional[str] = None):
487
+ """
488
+ :param str uri: The URI of the HTTP enpdoint.
489
+ The value must be a RFC2396 URI string.
490
+ Examples: `https://svc.us-central1.p.local:8080/route`.
491
+ Only the HTTPS protocol is supported.
492
+ :param str message_binding_template: The CEL expression used to modify how the destination-bound HTTP
493
+ request is constructed.
494
+ If a binding expression is not specified here, the message
495
+ is treated as a CloudEvent and is mapped to the HTTP request according
496
+ to the CloudEvent HTTP Protocol Binding Binary Content Mode
497
+ (https://github.com/cloudevents/spec/blob/main/cloudevents/bindings/http-protocol-binding.md#31-binary-content-mode).
498
+ In this representation, all fields except the `data` and
499
+ `datacontenttype` field on the message are mapped to HTTP request
500
+ headers with a prefix of `ce-`.
501
+ To construct the HTTP request payload and the value of the content-type
502
+ HTTP header, the payload format is defined as follows:
503
+ 1) Use the output_payload_format_type on the Pipeline.Destination if it
504
+ is set, else:
505
+ 2) Use the input_payload_format_type on the Pipeline if it is set,
506
+ else:
507
+ 3) Treat the payload as opaque binary data.
508
+ The `data` field of the message is converted to the payload format or
509
+ left as-is for case 3) and then attached as the payload of the HTTP
510
+ request. The `content-type` header on the HTTP request is set to the
511
+ payload format type or left empty for case 3). However, if a mediation
512
+ has updated the `datacontenttype` field on the message so that it is
513
+ not the same as the payload format type but it is still a prefix of the
514
+ payload format type, then the `content-type` header on the HTTP request
515
+ is set to this `datacontenttype` value. For example, if the
516
+ `datacontenttype` is "application/json" and the payload format type is
517
+ "application/json; charset=utf-8", then the `content-type` header on
518
+ the HTTP request is set to "application/json; charset=utf-8".
519
+ If a non-empty binding expression is specified then this expression is
520
+ used to modify the default CloudEvent HTTP Protocol Binding Binary
521
+ Content representation.
522
+ The result of the CEL expression must be a map of key/value pairs
523
+ which is used as follows:
524
+ - If a map named `headers` exists on the result of the expression,
525
+ then its key/value pairs are directly mapped to the HTTP request
526
+ headers. The headers values are constructed from the corresponding
527
+ value type's canonical representation. If the `headers` field doesn't
528
+ exist then the resulting HTTP request will be the headers of the
529
+ CloudEvent HTTP Binding Binary Content Mode representation of the final
530
+ message. Note: If the specified binding expression, has updated the
531
+ `datacontenttype` field on the message so that it is not the same as
532
+ the payload format type but it is still a prefix of the payload format
533
+ type, then the `content-type` header in the `headers` map is set to
534
+ this `datacontenttype` value.
535
+ - If a field named `body` exists on the result of the expression then
536
+ its value is directly mapped to the body of the request. If the value
537
+ of the `body` field is of type bytes or string then it is used for
538
+ the HTTP request body as-is, with no conversion. If the body field is
539
+ of any other type then it is converted to a JSON string. If the body
540
+ field does not exist then the resulting payload of the HTTP request
541
+ will be data value of the CloudEvent HTTP Binding Binary Content Mode
542
+ representation of the final message as described earlier.
543
+ - Any other fields in the resulting expression will be ignored.
544
+ The CEL expression may access the incoming CloudEvent message in its
545
+ definition, as follows:
546
+ - The `data` field of the incoming CloudEvent message can be accessed
547
+ using the `message.data` value. Subfields of `message.data` may also be
548
+ accessed if an input_payload_format has been specified on the Pipeline.
549
+ - Each attribute of the incoming CloudEvent message can be accessed
550
+ using the `message.` value, where is replaced with the
551
+ name of the attribute.
552
+ - Existing headers can be accessed in the CEL expression using the
553
+ `headers` variable. The `headers` variable defines a map of key/value
554
+ pairs corresponding to the HTTP headers of the CloudEvent HTTP Binding
555
+ Binary Content Mode representation of the final message as described
556
+ earlier. For example, the following CEL expression can be used to
557
+ construct an HTTP request by adding an additional header to the HTTP
558
+ headers of the CloudEvent HTTP Binding Binary Content Mode
559
+ representation of the final message and by overwriting the body of the
560
+ request:
561
+ ```
562
+ {
563
+ "headers": headers.merge({"new-header-key": "new-header-value"}),
564
+ "body": "new-body"
565
+ }
566
+ ```
567
+ - The default binding for the message payload can be accessed using the
568
+ `body` variable. It conatins a string representation of the message
569
+ payload in the format specified by the `output_payload_format` field.
570
+ If the `input_payload_format` field is not set, the `body`
571
+ variable contains the same message payload bytes that were published.
572
+ Additionally, the following CEL extension functions are provided for
573
+ use in this CEL expression:
574
+ - toBase64Url:
575
+ map.toBase64Url() > string
576
+ - Converts a CelValue to a base64url encoded string
577
+ - toJsonString: map.toJsonString() > string
578
+ - Converts a CelValue to a JSON string
579
+ - merge:
580
+ map1.merge(map2) > map3
581
+ - Merges the passed CEL map with the existing CEL map the
582
+ function is applied to.
583
+ - If the same key exists in both maps, if the key's value is type
584
+ map both maps are merged else the value from the passed map is
585
+ used.
586
+ - denormalize:
587
+ map.denormalize() > map
588
+ - Denormalizes a CEL map such that every value of type map or key
589
+ in the map is expanded to return a single level map.
590
+ - The resulting keys are "." separated indices of the map keys.
591
+ - For example:
592
+ {
593
+ "a": 1,
594
+ "b": {
595
+ "c": 2,
596
+ "d": 3
597
+ }
598
+ "e": [4, 5]
599
+ }
600
+ .denormalize()
601
+ > {
602
+ "a": 1,
603
+ "b.c": 2,
604
+ "b.d": 3,
605
+ "e.0": 4,
606
+ "e.1": 5
607
+ }
608
+ - setField:
609
+ map.setField(key, value) > message
610
+ - Sets the field of the message with the given key to the
611
+ given value.
612
+ - If the field is not present it will be added.
613
+ - If the field is present it will be overwritten.
614
+ - The key can be a dot separated path to set a field in a nested
615
+ message.
616
+ - Key must be of type string.
617
+ - Value may be any valid type.
618
+ - removeFields:
619
+ map.removeFields([key1, key2, ...]) > message
620
+ - Removes the fields of the map with the given keys.
621
+ - The keys can be a dot separated path to remove a field in a
622
+ nested message.
623
+ - If a key is not found it will be ignored.
624
+ - Keys must be of type string.
625
+ - toMap:
626
+ [map1, map2, ...].toMap() > map
627
+ - Converts a CEL list of CEL maps to a single CEL map
628
+ - toCloudEventJsonWithPayloadFormat:
629
+ message.toCloudEventJsonWithPayloadFormat() > map
630
+ - Converts a message to the corresponding structure of JSON
631
+ format for CloudEvents.
632
+ - It converts `data` to destination payload format
633
+ specified in `output_payload_format`. If `output_payload_format` is
634
+ not set, the data will remain unchanged.
635
+ - It also sets the corresponding datacontenttype of
636
+ the CloudEvent, as indicated by
637
+ `output_payload_format`. If no
638
+ `output_payload_format` is set it will use the value of the
639
+ "datacontenttype" attribute on the CloudEvent if present, else
640
+ remove "datacontenttype" attribute.
641
+ - This function expects that the content of the message will
642
+ adhere to the standard CloudEvent format. If it doesn't then this
643
+ function will fail.
644
+ - The result is a CEL map that corresponds to the JSON
645
+ representation of the CloudEvent. To convert that data to a JSON
646
+ string it can be chained with the toJsonString function.
647
+ The Pipeline expects that the message it receives adheres to the
648
+ standard CloudEvent format. If it doesn't then the outgoing message
649
+ request may fail with a persistent error.
650
+
651
+ - - -
652
+ """
653
+ pulumi.set(__self__, "uri", uri)
654
+ if message_binding_template is not None:
655
+ pulumi.set(__self__, "message_binding_template", message_binding_template)
656
+
657
+ @property
658
+ @pulumi.getter
659
+ def uri(self) -> str:
660
+ """
661
+ The URI of the HTTP enpdoint.
662
+ The value must be a RFC2396 URI string.
663
+ Examples: `https://svc.us-central1.p.local:8080/route`.
664
+ Only the HTTPS protocol is supported.
665
+ """
666
+ return pulumi.get(self, "uri")
667
+
668
+ @property
669
+ @pulumi.getter(name="messageBindingTemplate")
670
+ def message_binding_template(self) -> Optional[str]:
671
+ """
672
+ The CEL expression used to modify how the destination-bound HTTP
673
+ request is constructed.
674
+ If a binding expression is not specified here, the message
675
+ is treated as a CloudEvent and is mapped to the HTTP request according
676
+ to the CloudEvent HTTP Protocol Binding Binary Content Mode
677
+ (https://github.com/cloudevents/spec/blob/main/cloudevents/bindings/http-protocol-binding.md#31-binary-content-mode).
678
+ In this representation, all fields except the `data` and
679
+ `datacontenttype` field on the message are mapped to HTTP request
680
+ headers with a prefix of `ce-`.
681
+ To construct the HTTP request payload and the value of the content-type
682
+ HTTP header, the payload format is defined as follows:
683
+ 1) Use the output_payload_format_type on the Pipeline.Destination if it
684
+ is set, else:
685
+ 2) Use the input_payload_format_type on the Pipeline if it is set,
686
+ else:
687
+ 3) Treat the payload as opaque binary data.
688
+ The `data` field of the message is converted to the payload format or
689
+ left as-is for case 3) and then attached as the payload of the HTTP
690
+ request. The `content-type` header on the HTTP request is set to the
691
+ payload format type or left empty for case 3). However, if a mediation
692
+ has updated the `datacontenttype` field on the message so that it is
693
+ not the same as the payload format type but it is still a prefix of the
694
+ payload format type, then the `content-type` header on the HTTP request
695
+ is set to this `datacontenttype` value. For example, if the
696
+ `datacontenttype` is "application/json" and the payload format type is
697
+ "application/json; charset=utf-8", then the `content-type` header on
698
+ the HTTP request is set to "application/json; charset=utf-8".
699
+ If a non-empty binding expression is specified then this expression is
700
+ used to modify the default CloudEvent HTTP Protocol Binding Binary
701
+ Content representation.
702
+ The result of the CEL expression must be a map of key/value pairs
703
+ which is used as follows:
704
+ - If a map named `headers` exists on the result of the expression,
705
+ then its key/value pairs are directly mapped to the HTTP request
706
+ headers. The headers values are constructed from the corresponding
707
+ value type's canonical representation. If the `headers` field doesn't
708
+ exist then the resulting HTTP request will be the headers of the
709
+ CloudEvent HTTP Binding Binary Content Mode representation of the final
710
+ message. Note: If the specified binding expression, has updated the
711
+ `datacontenttype` field on the message so that it is not the same as
712
+ the payload format type but it is still a prefix of the payload format
713
+ type, then the `content-type` header in the `headers` map is set to
714
+ this `datacontenttype` value.
715
+ - If a field named `body` exists on the result of the expression then
716
+ its value is directly mapped to the body of the request. If the value
717
+ of the `body` field is of type bytes or string then it is used for
718
+ the HTTP request body as-is, with no conversion. If the body field is
719
+ of any other type then it is converted to a JSON string. If the body
720
+ field does not exist then the resulting payload of the HTTP request
721
+ will be data value of the CloudEvent HTTP Binding Binary Content Mode
722
+ representation of the final message as described earlier.
723
+ - Any other fields in the resulting expression will be ignored.
724
+ The CEL expression may access the incoming CloudEvent message in its
725
+ definition, as follows:
726
+ - The `data` field of the incoming CloudEvent message can be accessed
727
+ using the `message.data` value. Subfields of `message.data` may also be
728
+ accessed if an input_payload_format has been specified on the Pipeline.
729
+ - Each attribute of the incoming CloudEvent message can be accessed
730
+ using the `message.` value, where is replaced with the
731
+ name of the attribute.
732
+ - Existing headers can be accessed in the CEL expression using the
733
+ `headers` variable. The `headers` variable defines a map of key/value
734
+ pairs corresponding to the HTTP headers of the CloudEvent HTTP Binding
735
+ Binary Content Mode representation of the final message as described
736
+ earlier. For example, the following CEL expression can be used to
737
+ construct an HTTP request by adding an additional header to the HTTP
738
+ headers of the CloudEvent HTTP Binding Binary Content Mode
739
+ representation of the final message and by overwriting the body of the
740
+ request:
741
+ ```
742
+ {
743
+ "headers": headers.merge({"new-header-key": "new-header-value"}),
744
+ "body": "new-body"
745
+ }
746
+ ```
747
+ - The default binding for the message payload can be accessed using the
748
+ `body` variable. It conatins a string representation of the message
749
+ payload in the format specified by the `output_payload_format` field.
750
+ If the `input_payload_format` field is not set, the `body`
751
+ variable contains the same message payload bytes that were published.
752
+ Additionally, the following CEL extension functions are provided for
753
+ use in this CEL expression:
754
+ - toBase64Url:
755
+ map.toBase64Url() > string
756
+ - Converts a CelValue to a base64url encoded string
757
+ - toJsonString: map.toJsonString() > string
758
+ - Converts a CelValue to a JSON string
759
+ - merge:
760
+ map1.merge(map2) > map3
761
+ - Merges the passed CEL map with the existing CEL map the
762
+ function is applied to.
763
+ - If the same key exists in both maps, if the key's value is type
764
+ map both maps are merged else the value from the passed map is
765
+ used.
766
+ - denormalize:
767
+ map.denormalize() > map
768
+ - Denormalizes a CEL map such that every value of type map or key
769
+ in the map is expanded to return a single level map.
770
+ - The resulting keys are "." separated indices of the map keys.
771
+ - For example:
772
+ {
773
+ "a": 1,
774
+ "b": {
775
+ "c": 2,
776
+ "d": 3
777
+ }
778
+ "e": [4, 5]
779
+ }
780
+ .denormalize()
781
+ > {
782
+ "a": 1,
783
+ "b.c": 2,
784
+ "b.d": 3,
785
+ "e.0": 4,
786
+ "e.1": 5
787
+ }
788
+ - setField:
789
+ map.setField(key, value) > message
790
+ - Sets the field of the message with the given key to the
791
+ given value.
792
+ - If the field is not present it will be added.
793
+ - If the field is present it will be overwritten.
794
+ - The key can be a dot separated path to set a field in a nested
795
+ message.
796
+ - Key must be of type string.
797
+ - Value may be any valid type.
798
+ - removeFields:
799
+ map.removeFields([key1, key2, ...]) > message
800
+ - Removes the fields of the map with the given keys.
801
+ - The keys can be a dot separated path to remove a field in a
802
+ nested message.
803
+ - If a key is not found it will be ignored.
804
+ - Keys must be of type string.
805
+ - toMap:
806
+ [map1, map2, ...].toMap() > map
807
+ - Converts a CEL list of CEL maps to a single CEL map
808
+ - toCloudEventJsonWithPayloadFormat:
809
+ message.toCloudEventJsonWithPayloadFormat() > map
810
+ - Converts a message to the corresponding structure of JSON
811
+ format for CloudEvents.
812
+ - It converts `data` to destination payload format
813
+ specified in `output_payload_format`. If `output_payload_format` is
814
+ not set, the data will remain unchanged.
815
+ - It also sets the corresponding datacontenttype of
816
+ the CloudEvent, as indicated by
817
+ `output_payload_format`. If no
818
+ `output_payload_format` is set it will use the value of the
819
+ "datacontenttype" attribute on the CloudEvent if present, else
820
+ remove "datacontenttype" attribute.
821
+ - This function expects that the content of the message will
822
+ adhere to the standard CloudEvent format. If it doesn't then this
823
+ function will fail.
824
+ - The result is a CEL map that corresponds to the JSON
825
+ representation of the CloudEvent. To convert that data to a JSON
826
+ string it can be chained with the toJsonString function.
827
+ The Pipeline expects that the message it receives adheres to the
828
+ standard CloudEvent format. If it doesn't then the outgoing message
829
+ request may fail with a persistent error.
830
+
831
+ - - -
832
+ """
833
+ return pulumi.get(self, "message_binding_template")
834
+
835
+
836
+ @pulumi.output_type
837
+ class PipelineDestinationNetworkConfig(dict):
838
+ @staticmethod
839
+ def __key_warning(key: str):
840
+ suggest = None
841
+ if key == "networkAttachment":
842
+ suggest = "network_attachment"
843
+
844
+ if suggest:
845
+ pulumi.log.warn(f"Key '{key}' not found in PipelineDestinationNetworkConfig. Access the value via the '{suggest}' property getter instead.")
846
+
847
+ def __getitem__(self, key: str) -> Any:
848
+ PipelineDestinationNetworkConfig.__key_warning(key)
849
+ return super().__getitem__(key)
850
+
851
+ def get(self, key: str, default = None) -> Any:
852
+ PipelineDestinationNetworkConfig.__key_warning(key)
853
+ return super().get(key, default)
854
+
855
+ def __init__(__self__, *,
856
+ network_attachment: str):
857
+ """
858
+ :param str network_attachment: Name of the NetworkAttachment that allows access to the consumer VPC.
859
+ Format:
860
+ `projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}`
861
+ """
862
+ pulumi.set(__self__, "network_attachment", network_attachment)
863
+
864
+ @property
865
+ @pulumi.getter(name="networkAttachment")
866
+ def network_attachment(self) -> str:
867
+ """
868
+ Name of the NetworkAttachment that allows access to the consumer VPC.
869
+ Format:
870
+ `projects/{PROJECT_ID}/regions/{REGION}/networkAttachments/{NETWORK_ATTACHMENT_NAME}`
871
+ """
872
+ return pulumi.get(self, "network_attachment")
873
+
874
+
875
+ @pulumi.output_type
876
+ class PipelineDestinationOutputPayloadFormat(dict):
877
+ def __init__(__self__, *,
878
+ avro: Optional['outputs.PipelineDestinationOutputPayloadFormatAvro'] = None,
879
+ json: Optional['outputs.PipelineDestinationOutputPayloadFormatJson'] = None,
880
+ protobuf: Optional['outputs.PipelineDestinationOutputPayloadFormatProtobuf'] = None):
881
+ """
882
+ :param 'PipelineDestinationOutputPayloadFormatAvroArgs' avro: The format of an AVRO message payload.
883
+ Structure is documented below.
884
+ :param 'PipelineDestinationOutputPayloadFormatJsonArgs' json: The format of a JSON message payload.
885
+ :param 'PipelineDestinationOutputPayloadFormatProtobufArgs' protobuf: The format of a Protobuf message payload.
886
+ Structure is documented below.
887
+ """
888
+ if avro is not None:
889
+ pulumi.set(__self__, "avro", avro)
890
+ if json is not None:
891
+ pulumi.set(__self__, "json", json)
892
+ if protobuf is not None:
893
+ pulumi.set(__self__, "protobuf", protobuf)
894
+
895
+ @property
896
+ @pulumi.getter
897
+ def avro(self) -> Optional['outputs.PipelineDestinationOutputPayloadFormatAvro']:
898
+ """
899
+ The format of an AVRO message payload.
900
+ Structure is documented below.
901
+ """
902
+ return pulumi.get(self, "avro")
903
+
904
+ @property
905
+ @pulumi.getter
906
+ def json(self) -> Optional['outputs.PipelineDestinationOutputPayloadFormatJson']:
907
+ """
908
+ The format of a JSON message payload.
909
+ """
910
+ return pulumi.get(self, "json")
911
+
912
+ @property
913
+ @pulumi.getter
914
+ def protobuf(self) -> Optional['outputs.PipelineDestinationOutputPayloadFormatProtobuf']:
915
+ """
916
+ The format of a Protobuf message payload.
917
+ Structure is documented below.
918
+ """
919
+ return pulumi.get(self, "protobuf")
920
+
921
+
922
+ @pulumi.output_type
923
+ class PipelineDestinationOutputPayloadFormatAvro(dict):
924
+ @staticmethod
925
+ def __key_warning(key: str):
926
+ suggest = None
927
+ if key == "schemaDefinition":
928
+ suggest = "schema_definition"
929
+
930
+ if suggest:
931
+ pulumi.log.warn(f"Key '{key}' not found in PipelineDestinationOutputPayloadFormatAvro. Access the value via the '{suggest}' property getter instead.")
932
+
933
+ def __getitem__(self, key: str) -> Any:
934
+ PipelineDestinationOutputPayloadFormatAvro.__key_warning(key)
935
+ return super().__getitem__(key)
936
+
937
+ def get(self, key: str, default = None) -> Any:
938
+ PipelineDestinationOutputPayloadFormatAvro.__key_warning(key)
939
+ return super().get(key, default)
940
+
941
+ def __init__(__self__, *,
942
+ schema_definition: Optional[str] = None):
943
+ """
944
+ :param str schema_definition: The entire schema definition is stored in this field.
945
+ """
946
+ if schema_definition is not None:
947
+ pulumi.set(__self__, "schema_definition", schema_definition)
948
+
949
+ @property
950
+ @pulumi.getter(name="schemaDefinition")
951
+ def schema_definition(self) -> Optional[str]:
952
+ """
953
+ The entire schema definition is stored in this field.
954
+ """
955
+ return pulumi.get(self, "schema_definition")
956
+
957
+
958
+ @pulumi.output_type
959
+ class PipelineDestinationOutputPayloadFormatJson(dict):
960
+ def __init__(__self__):
961
+ pass
962
+
963
+
964
+ @pulumi.output_type
965
+ class PipelineDestinationOutputPayloadFormatProtobuf(dict):
966
+ @staticmethod
967
+ def __key_warning(key: str):
968
+ suggest = None
969
+ if key == "schemaDefinition":
970
+ suggest = "schema_definition"
971
+
972
+ if suggest:
973
+ pulumi.log.warn(f"Key '{key}' not found in PipelineDestinationOutputPayloadFormatProtobuf. Access the value via the '{suggest}' property getter instead.")
974
+
975
+ def __getitem__(self, key: str) -> Any:
976
+ PipelineDestinationOutputPayloadFormatProtobuf.__key_warning(key)
977
+ return super().__getitem__(key)
978
+
979
+ def get(self, key: str, default = None) -> Any:
980
+ PipelineDestinationOutputPayloadFormatProtobuf.__key_warning(key)
981
+ return super().get(key, default)
982
+
983
+ def __init__(__self__, *,
984
+ schema_definition: Optional[str] = None):
985
+ """
986
+ :param str schema_definition: The entire schema definition is stored in this field.
987
+ """
988
+ if schema_definition is not None:
989
+ pulumi.set(__self__, "schema_definition", schema_definition)
990
+
991
+ @property
992
+ @pulumi.getter(name="schemaDefinition")
993
+ def schema_definition(self) -> Optional[str]:
994
+ """
995
+ The entire schema definition is stored in this field.
996
+ """
997
+ return pulumi.get(self, "schema_definition")
998
+
999
+
1000
+ @pulumi.output_type
1001
+ class PipelineInputPayloadFormat(dict):
1002
+ def __init__(__self__, *,
1003
+ avro: Optional['outputs.PipelineInputPayloadFormatAvro'] = None,
1004
+ json: Optional['outputs.PipelineInputPayloadFormatJson'] = None,
1005
+ protobuf: Optional['outputs.PipelineInputPayloadFormatProtobuf'] = None):
1006
+ """
1007
+ :param 'PipelineInputPayloadFormatAvroArgs' avro: The format of an AVRO message payload.
1008
+ Structure is documented below.
1009
+ :param 'PipelineInputPayloadFormatJsonArgs' json: The format of a JSON message payload.
1010
+ :param 'PipelineInputPayloadFormatProtobufArgs' protobuf: The format of a Protobuf message payload.
1011
+ Structure is documented below.
1012
+ """
1013
+ if avro is not None:
1014
+ pulumi.set(__self__, "avro", avro)
1015
+ if json is not None:
1016
+ pulumi.set(__self__, "json", json)
1017
+ if protobuf is not None:
1018
+ pulumi.set(__self__, "protobuf", protobuf)
1019
+
1020
+ @property
1021
+ @pulumi.getter
1022
+ def avro(self) -> Optional['outputs.PipelineInputPayloadFormatAvro']:
1023
+ """
1024
+ The format of an AVRO message payload.
1025
+ Structure is documented below.
1026
+ """
1027
+ return pulumi.get(self, "avro")
1028
+
1029
+ @property
1030
+ @pulumi.getter
1031
+ def json(self) -> Optional['outputs.PipelineInputPayloadFormatJson']:
1032
+ """
1033
+ The format of a JSON message payload.
1034
+ """
1035
+ return pulumi.get(self, "json")
1036
+
1037
+ @property
1038
+ @pulumi.getter
1039
+ def protobuf(self) -> Optional['outputs.PipelineInputPayloadFormatProtobuf']:
1040
+ """
1041
+ The format of a Protobuf message payload.
1042
+ Structure is documented below.
1043
+ """
1044
+ return pulumi.get(self, "protobuf")
1045
+
1046
+
1047
+ @pulumi.output_type
1048
+ class PipelineInputPayloadFormatAvro(dict):
1049
+ @staticmethod
1050
+ def __key_warning(key: str):
1051
+ suggest = None
1052
+ if key == "schemaDefinition":
1053
+ suggest = "schema_definition"
1054
+
1055
+ if suggest:
1056
+ pulumi.log.warn(f"Key '{key}' not found in PipelineInputPayloadFormatAvro. Access the value via the '{suggest}' property getter instead.")
1057
+
1058
+ def __getitem__(self, key: str) -> Any:
1059
+ PipelineInputPayloadFormatAvro.__key_warning(key)
1060
+ return super().__getitem__(key)
1061
+
1062
+ def get(self, key: str, default = None) -> Any:
1063
+ PipelineInputPayloadFormatAvro.__key_warning(key)
1064
+ return super().get(key, default)
1065
+
1066
+ def __init__(__self__, *,
1067
+ schema_definition: Optional[str] = None):
1068
+ """
1069
+ :param str schema_definition: The entire schema definition is stored in this field.
1070
+ """
1071
+ if schema_definition is not None:
1072
+ pulumi.set(__self__, "schema_definition", schema_definition)
1073
+
1074
+ @property
1075
+ @pulumi.getter(name="schemaDefinition")
1076
+ def schema_definition(self) -> Optional[str]:
1077
+ """
1078
+ The entire schema definition is stored in this field.
1079
+ """
1080
+ return pulumi.get(self, "schema_definition")
1081
+
1082
+
1083
+ @pulumi.output_type
1084
+ class PipelineInputPayloadFormatJson(dict):
1085
+ def __init__(__self__):
1086
+ pass
1087
+
1088
+
1089
+ @pulumi.output_type
1090
+ class PipelineInputPayloadFormatProtobuf(dict):
1091
+ @staticmethod
1092
+ def __key_warning(key: str):
1093
+ suggest = None
1094
+ if key == "schemaDefinition":
1095
+ suggest = "schema_definition"
1096
+
1097
+ if suggest:
1098
+ pulumi.log.warn(f"Key '{key}' not found in PipelineInputPayloadFormatProtobuf. Access the value via the '{suggest}' property getter instead.")
1099
+
1100
+ def __getitem__(self, key: str) -> Any:
1101
+ PipelineInputPayloadFormatProtobuf.__key_warning(key)
1102
+ return super().__getitem__(key)
1103
+
1104
+ def get(self, key: str, default = None) -> Any:
1105
+ PipelineInputPayloadFormatProtobuf.__key_warning(key)
1106
+ return super().get(key, default)
1107
+
1108
+ def __init__(__self__, *,
1109
+ schema_definition: Optional[str] = None):
1110
+ """
1111
+ :param str schema_definition: The entire schema definition is stored in this field.
1112
+ """
1113
+ if schema_definition is not None:
1114
+ pulumi.set(__self__, "schema_definition", schema_definition)
1115
+
1116
+ @property
1117
+ @pulumi.getter(name="schemaDefinition")
1118
+ def schema_definition(self) -> Optional[str]:
1119
+ """
1120
+ The entire schema definition is stored in this field.
1121
+ """
1122
+ return pulumi.get(self, "schema_definition")
1123
+
1124
+
1125
+ @pulumi.output_type
1126
+ class PipelineLoggingConfig(dict):
1127
+ @staticmethod
1128
+ def __key_warning(key: str):
1129
+ suggest = None
1130
+ if key == "logSeverity":
1131
+ suggest = "log_severity"
1132
+
1133
+ if suggest:
1134
+ pulumi.log.warn(f"Key '{key}' not found in PipelineLoggingConfig. Access the value via the '{suggest}' property getter instead.")
1135
+
1136
+ def __getitem__(self, key: str) -> Any:
1137
+ PipelineLoggingConfig.__key_warning(key)
1138
+ return super().__getitem__(key)
1139
+
1140
+ def get(self, key: str, default = None) -> Any:
1141
+ PipelineLoggingConfig.__key_warning(key)
1142
+ return super().get(key, default)
1143
+
1144
+ def __init__(__self__, *,
1145
+ log_severity: Optional[str] = None):
1146
+ """
1147
+ :param str log_severity: The minimum severity of logs that will be sent to Stackdriver/Platform
1148
+ Telemetry. Logs at severitiy ≥ this value will be sent, unless it is NONE.
1149
+ Possible values are: `NONE`, `DEBUG`, `INFO`, `NOTICE`, `WARNING`, `ERROR`, `CRITICAL`, `ALERT`, `EMERGENCY`.
1150
+ """
1151
+ if log_severity is not None:
1152
+ pulumi.set(__self__, "log_severity", log_severity)
1153
+
1154
+ @property
1155
+ @pulumi.getter(name="logSeverity")
1156
+ def log_severity(self) -> Optional[str]:
1157
+ """
1158
+ The minimum severity of logs that will be sent to Stackdriver/Platform
1159
+ Telemetry. Logs at severitiy ≥ this value will be sent, unless it is NONE.
1160
+ Possible values are: `NONE`, `DEBUG`, `INFO`, `NOTICE`, `WARNING`, `ERROR`, `CRITICAL`, `ALERT`, `EMERGENCY`.
1161
+ """
1162
+ return pulumi.get(self, "log_severity")
1163
+
1164
+
1165
+ @pulumi.output_type
1166
+ class PipelineMediation(dict):
1167
+ def __init__(__self__, *,
1168
+ transformation: Optional['outputs.PipelineMediationTransformation'] = None):
1169
+ """
1170
+ :param 'PipelineMediationTransformationArgs' transformation: Transformation defines the way to transform an incoming message.
1171
+ Structure is documented below.
1172
+ """
1173
+ if transformation is not None:
1174
+ pulumi.set(__self__, "transformation", transformation)
1175
+
1176
+ @property
1177
+ @pulumi.getter
1178
+ def transformation(self) -> Optional['outputs.PipelineMediationTransformation']:
1179
+ """
1180
+ Transformation defines the way to transform an incoming message.
1181
+ Structure is documented below.
1182
+ """
1183
+ return pulumi.get(self, "transformation")
1184
+
1185
+
1186
+ @pulumi.output_type
1187
+ class PipelineMediationTransformation(dict):
1188
+ @staticmethod
1189
+ def __key_warning(key: str):
1190
+ suggest = None
1191
+ if key == "transformationTemplate":
1192
+ suggest = "transformation_template"
1193
+
1194
+ if suggest:
1195
+ pulumi.log.warn(f"Key '{key}' not found in PipelineMediationTransformation. Access the value via the '{suggest}' property getter instead.")
1196
+
1197
+ def __getitem__(self, key: str) -> Any:
1198
+ PipelineMediationTransformation.__key_warning(key)
1199
+ return super().__getitem__(key)
1200
+
1201
+ def get(self, key: str, default = None) -> Any:
1202
+ PipelineMediationTransformation.__key_warning(key)
1203
+ return super().get(key, default)
1204
+
1205
+ def __init__(__self__, *,
1206
+ transformation_template: Optional[str] = None):
1207
+ """
1208
+ :param str transformation_template: The CEL expression template to apply to transform messages.
1209
+ The following CEL extension functions are provided for
1210
+ use in this CEL expression:
1211
+ - merge:
1212
+ map1.merge(map2) > map3
1213
+ - Merges the passed CEL map with the existing CEL map the
1214
+ function is applied to.
1215
+ - If the same key exists in both maps, if the key's value is type
1216
+ map both maps are merged else the value from the passed map is
1217
+ used.
1218
+ - denormalize:
1219
+ map.denormalize() > map
1220
+ - Denormalizes a CEL map such that every value of type map or key
1221
+ in the map is expanded to return a single level map.
1222
+ - The resulting keys are "." separated indices of the map keys.
1223
+ - For example:
1224
+ {
1225
+ "a": 1,
1226
+ "b": {
1227
+ "c": 2,
1228
+ "d": 3
1229
+ }
1230
+ "e": [4, 5]
1231
+ }
1232
+ .denormalize()
1233
+ > {
1234
+ "a": 1,
1235
+ "b.c": 2,
1236
+ "b.d": 3,
1237
+ "e.0": 4,
1238
+ "e.1": 5
1239
+ }
1240
+ - setField:
1241
+ map.setField(key, value) > message
1242
+ - Sets the field of the message with the given key to the
1243
+ given value.
1244
+ - If the field is not present it will be added.
1245
+ - If the field is present it will be overwritten.
1246
+ - The key can be a dot separated path to set a field in a nested
1247
+ message.
1248
+ - Key must be of type string.
1249
+ - Value may be any valid type.
1250
+ - removeFields:
1251
+ map.removeFields([key1, key2, ...]) > message
1252
+ - Removes the fields of the map with the given keys.
1253
+ - The keys can be a dot separated path to remove a field in a
1254
+ nested message.
1255
+ - If a key is not found it will be ignored.
1256
+ - Keys must be of type string.
1257
+ - toMap:
1258
+ [map1, map2, ...].toMap() > map
1259
+ - Converts a CEL list of CEL maps to a single CEL map
1260
+ - toDestinationPayloadFormat():
1261
+ message.data.toDestinationPayloadFormat() > string or bytes
1262
+ - Converts the message data to the destination payload format
1263
+ specified in Pipeline.Destination.output_payload_format
1264
+ - This function is meant to be applied to the message.data field.
1265
+ - If the destination payload format is not set, the function will
1266
+ return the message data unchanged.
1267
+ - toCloudEventJsonWithPayloadFormat:
1268
+ message.toCloudEventJsonWithPayloadFormat() > map
1269
+ - Converts a message to the corresponding structure of JSON
1270
+ format for CloudEvents
1271
+ - This function applies toDestinationPayloadFormat() to the
1272
+ message data. It also sets the corresponding datacontenttype of
1273
+ the CloudEvent, as indicated by
1274
+ Pipeline.Destination.output_payload_format. If no
1275
+ output_payload_format is set it will use the existing
1276
+ datacontenttype on the CloudEvent if present, else leave
1277
+ datacontenttype absent.
1278
+ - This function expects that the content of the message will
1279
+ adhere to the standard CloudEvent format. If it doesn't then this
1280
+ function will fail.
1281
+ - The result is a CEL map that corresponds to the JSON
1282
+ representation of the CloudEvent. To convert that data to a JSON
1283
+ string it can be chained with the toJsonString function.
1284
+ """
1285
+ if transformation_template is not None:
1286
+ pulumi.set(__self__, "transformation_template", transformation_template)
1287
+
1288
+ @property
1289
+ @pulumi.getter(name="transformationTemplate")
1290
+ def transformation_template(self) -> Optional[str]:
1291
+ """
1292
+ The CEL expression template to apply to transform messages.
1293
+ The following CEL extension functions are provided for
1294
+ use in this CEL expression:
1295
+ - merge:
1296
+ map1.merge(map2) > map3
1297
+ - Merges the passed CEL map with the existing CEL map the
1298
+ function is applied to.
1299
+ - If the same key exists in both maps, if the key's value is type
1300
+ map both maps are merged else the value from the passed map is
1301
+ used.
1302
+ - denormalize:
1303
+ map.denormalize() > map
1304
+ - Denormalizes a CEL map such that every value of type map or key
1305
+ in the map is expanded to return a single level map.
1306
+ - The resulting keys are "." separated indices of the map keys.
1307
+ - For example:
1308
+ {
1309
+ "a": 1,
1310
+ "b": {
1311
+ "c": 2,
1312
+ "d": 3
1313
+ }
1314
+ "e": [4, 5]
1315
+ }
1316
+ .denormalize()
1317
+ > {
1318
+ "a": 1,
1319
+ "b.c": 2,
1320
+ "b.d": 3,
1321
+ "e.0": 4,
1322
+ "e.1": 5
1323
+ }
1324
+ - setField:
1325
+ map.setField(key, value) > message
1326
+ - Sets the field of the message with the given key to the
1327
+ given value.
1328
+ - If the field is not present it will be added.
1329
+ - If the field is present it will be overwritten.
1330
+ - The key can be a dot separated path to set a field in a nested
1331
+ message.
1332
+ - Key must be of type string.
1333
+ - Value may be any valid type.
1334
+ - removeFields:
1335
+ map.removeFields([key1, key2, ...]) > message
1336
+ - Removes the fields of the map with the given keys.
1337
+ - The keys can be a dot separated path to remove a field in a
1338
+ nested message.
1339
+ - If a key is not found it will be ignored.
1340
+ - Keys must be of type string.
1341
+ - toMap:
1342
+ [map1, map2, ...].toMap() > map
1343
+ - Converts a CEL list of CEL maps to a single CEL map
1344
+ - toDestinationPayloadFormat():
1345
+ message.data.toDestinationPayloadFormat() > string or bytes
1346
+ - Converts the message data to the destination payload format
1347
+ specified in Pipeline.Destination.output_payload_format
1348
+ - This function is meant to be applied to the message.data field.
1349
+ - If the destination payload format is not set, the function will
1350
+ return the message data unchanged.
1351
+ - toCloudEventJsonWithPayloadFormat:
1352
+ message.toCloudEventJsonWithPayloadFormat() > map
1353
+ - Converts a message to the corresponding structure of JSON
1354
+ format for CloudEvents
1355
+ - This function applies toDestinationPayloadFormat() to the
1356
+ message data. It also sets the corresponding datacontenttype of
1357
+ the CloudEvent, as indicated by
1358
+ Pipeline.Destination.output_payload_format. If no
1359
+ output_payload_format is set it will use the existing
1360
+ datacontenttype on the CloudEvent if present, else leave
1361
+ datacontenttype absent.
1362
+ - This function expects that the content of the message will
1363
+ adhere to the standard CloudEvent format. If it doesn't then this
1364
+ function will fail.
1365
+ - The result is a CEL map that corresponds to the JSON
1366
+ representation of the CloudEvent. To convert that data to a JSON
1367
+ string it can be chained with the toJsonString function.
1368
+ """
1369
+ return pulumi.get(self, "transformation_template")
1370
+
1371
+
1372
+ @pulumi.output_type
1373
+ class PipelineRetryPolicy(dict):
1374
+ @staticmethod
1375
+ def __key_warning(key: str):
1376
+ suggest = None
1377
+ if key == "maxAttempts":
1378
+ suggest = "max_attempts"
1379
+ elif key == "maxRetryDelay":
1380
+ suggest = "max_retry_delay"
1381
+ elif key == "minRetryDelay":
1382
+ suggest = "min_retry_delay"
1383
+
1384
+ if suggest:
1385
+ pulumi.log.warn(f"Key '{key}' not found in PipelineRetryPolicy. Access the value via the '{suggest}' property getter instead.")
1386
+
1387
+ def __getitem__(self, key: str) -> Any:
1388
+ PipelineRetryPolicy.__key_warning(key)
1389
+ return super().__getitem__(key)
1390
+
1391
+ def get(self, key: str, default = None) -> Any:
1392
+ PipelineRetryPolicy.__key_warning(key)
1393
+ return super().get(key, default)
1394
+
1395
+ def __init__(__self__, *,
1396
+ max_attempts: Optional[int] = None,
1397
+ max_retry_delay: Optional[str] = None,
1398
+ min_retry_delay: Optional[str] = None):
1399
+ """
1400
+ :param int max_attempts: The maximum number of delivery attempts for any message. The value must
1401
+ be between 1 and 100.
1402
+ The default value for this field is 5.
1403
+ :param str max_retry_delay: The maximum amount of seconds to wait between retry attempts. The value
1404
+ must be between 1 and 600.
1405
+ The default value for this field is 60.
1406
+ :param str min_retry_delay: The minimum amount of seconds to wait between retry attempts. The value
1407
+ must be between 1 and 600.
1408
+ The default value for this field is 5.
1409
+ """
1410
+ if max_attempts is not None:
1411
+ pulumi.set(__self__, "max_attempts", max_attempts)
1412
+ if max_retry_delay is not None:
1413
+ pulumi.set(__self__, "max_retry_delay", max_retry_delay)
1414
+ if min_retry_delay is not None:
1415
+ pulumi.set(__self__, "min_retry_delay", min_retry_delay)
1416
+
1417
+ @property
1418
+ @pulumi.getter(name="maxAttempts")
1419
+ def max_attempts(self) -> Optional[int]:
1420
+ """
1421
+ The maximum number of delivery attempts for any message. The value must
1422
+ be between 1 and 100.
1423
+ The default value for this field is 5.
1424
+ """
1425
+ return pulumi.get(self, "max_attempts")
1426
+
1427
+ @property
1428
+ @pulumi.getter(name="maxRetryDelay")
1429
+ def max_retry_delay(self) -> Optional[str]:
1430
+ """
1431
+ The maximum amount of seconds to wait between retry attempts. The value
1432
+ must be between 1 and 600.
1433
+ The default value for this field is 60.
1434
+ """
1435
+ return pulumi.get(self, "max_retry_delay")
1436
+
1437
+ @property
1438
+ @pulumi.getter(name="minRetryDelay")
1439
+ def min_retry_delay(self) -> Optional[str]:
1440
+ """
1441
+ The minimum amount of seconds to wait between retry attempts. The value
1442
+ must be between 1 and 600.
1443
+ The default value for this field is 5.
1444
+ """
1445
+ return pulumi.get(self, "min_retry_delay")
1446
+
1447
+
111
1448
  @pulumi.output_type
112
1449
  class TriggerDestination(dict):
113
1450
  @staticmethod