pulumi-gcp 8.7.0a1730183903__py3-none-any.whl → 8.7.0a1730196225__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 (111) hide show
  1. pulumi_gcp/__init__.py +70 -0
  2. pulumi_gcp/accesscontextmanager/service_perimeter.py +2 -0
  3. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +4 -0
  4. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +4 -0
  5. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +4 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +4 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeters.py +2 -0
  8. pulumi_gcp/apigee/__init__.py +2 -0
  9. pulumi_gcp/apigee/_inputs.py +108 -0
  10. pulumi_gcp/apigee/app_group.py +811 -0
  11. pulumi_gcp/apigee/developer.py +757 -0
  12. pulumi_gcp/apigee/outputs.py +64 -0
  13. pulumi_gcp/artifactregistry/get_docker_image.py +40 -0
  14. pulumi_gcp/bigquery/connection.py +12 -12
  15. pulumi_gcp/bigquery/job.py +6 -6
  16. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  17. pulumi_gcp/cloudrunv2/service.py +92 -0
  18. pulumi_gcp/compute/_inputs.py +214 -116
  19. pulumi_gcp/compute/backend_service.py +76 -0
  20. pulumi_gcp/compute/get_backend_service.py +12 -1
  21. pulumi_gcp/compute/get_instance.py +29 -1
  22. pulumi_gcp/compute/get_instance_template.py +29 -1
  23. pulumi_gcp/compute/get_region_instance_group_manager.py +0 -18
  24. pulumi_gcp/compute/get_region_instance_template.py +29 -1
  25. pulumi_gcp/compute/instance.py +89 -0
  26. pulumi_gcp/compute/instance_from_machine_image.py +82 -0
  27. pulumi_gcp/compute/instance_from_template.py +82 -0
  28. pulumi_gcp/compute/instance_template.py +75 -0
  29. pulumi_gcp/compute/network_firewall_policy_association.py +76 -50
  30. pulumi_gcp/compute/network_firewall_policy_rule.py +149 -103
  31. pulumi_gcp/compute/outputs.py +170 -80
  32. pulumi_gcp/compute/region_backend_service.py +94 -0
  33. pulumi_gcp/compute/region_instance_template.py +75 -0
  34. pulumi_gcp/compute/region_network_endpoint_group.py +6 -4
  35. pulumi_gcp/compute/region_network_firewall_policy_association.py +104 -54
  36. pulumi_gcp/compute/region_network_firewall_policy_rule.py +160 -107
  37. pulumi_gcp/config/__init__.pyi +4 -0
  38. pulumi_gcp/config/vars.py +8 -0
  39. pulumi_gcp/container/attached_cluster.py +9 -6
  40. pulumi_gcp/container/outputs.py +2 -2
  41. pulumi_gcp/datastream/stream.py +2 -2
  42. pulumi_gcp/diagflow/_inputs.py +472 -2
  43. pulumi_gcp/diagflow/cx_agent.py +64 -4
  44. pulumi_gcp/diagflow/cx_flow.py +30 -0
  45. pulumi_gcp/diagflow/outputs.py +378 -2
  46. pulumi_gcp/gkehub/feature.py +2 -4
  47. pulumi_gcp/iam/workload_identity_pool_provider.py +56 -0
  48. pulumi_gcp/looker/instance.py +104 -2
  49. pulumi_gcp/monitoring/_inputs.py +23 -0
  50. pulumi_gcp/monitoring/get_secret_version.py +22 -3
  51. pulumi_gcp/monitoring/outputs.py +16 -0
  52. pulumi_gcp/networkconnectivity/__init__.py +1 -0
  53. pulumi_gcp/networkconnectivity/_inputs.py +148 -0
  54. pulumi_gcp/networkconnectivity/group.py +764 -0
  55. pulumi_gcp/networkconnectivity/outputs.py +125 -0
  56. pulumi_gcp/networkconnectivity/spoke.py +144 -0
  57. pulumi_gcp/networksecurity/server_tls_policy.py +2 -2
  58. pulumi_gcp/oracledatabase/__init__.py +20 -0
  59. pulumi_gcp/oracledatabase/_inputs.py +4745 -0
  60. pulumi_gcp/oracledatabase/autonomous_database.py +983 -0
  61. pulumi_gcp/oracledatabase/cloud_exadata_infrastructure.py +842 -0
  62. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +1086 -0
  63. pulumi_gcp/oracledatabase/get_autonomous_database.py +290 -0
  64. pulumi_gcp/oracledatabase/get_autonomous_databases.py +150 -0
  65. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructure.py +257 -0
  66. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructures.py +150 -0
  67. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +290 -0
  68. pulumi_gcp/oracledatabase/get_cloud_vm_clusters.py +150 -0
  69. pulumi_gcp/oracledatabase/get_db_nodes.py +245 -0
  70. pulumi_gcp/oracledatabase/get_db_servers.py +245 -0
  71. pulumi_gcp/oracledatabase/outputs.py +9304 -0
  72. pulumi_gcp/organizations/folder.py +7 -7
  73. pulumi_gcp/organizations/project.py +7 -7
  74. pulumi_gcp/orgpolicy/_inputs.py +3 -3
  75. pulumi_gcp/orgpolicy/outputs.py +2 -2
  76. pulumi_gcp/privilegedaccessmanager/get_entitlement.py +46 -2
  77. pulumi_gcp/provider.py +40 -0
  78. pulumi_gcp/pulumi-plugin.json +1 -1
  79. pulumi_gcp/secretmanager/get_regional_secret_version.py +24 -5
  80. pulumi_gcp/secretmanager/get_regional_secret_version_access.py +24 -5
  81. pulumi_gcp/secretmanager/get_secret_version.py +22 -3
  82. pulumi_gcp/secretmanager/get_secret_version_access.py +22 -3
  83. pulumi_gcp/secretmanager/regional_secret.py +2 -2
  84. pulumi_gcp/siteverification/get_token.py +0 -16
  85. pulumi_gcp/siteverification/owner.py +0 -16
  86. pulumi_gcp/spanner/_inputs.py +29 -5
  87. pulumi_gcp/spanner/outputs.py +20 -3
  88. pulumi_gcp/sql/_inputs.py +6 -6
  89. pulumi_gcp/sql/outputs.py +4 -4
  90. pulumi_gcp/sql/user.py +28 -21
  91. pulumi_gcp/storage/_inputs.py +36 -0
  92. pulumi_gcp/storage/bucket.py +47 -0
  93. pulumi_gcp/storage/get_bucket.py +12 -1
  94. pulumi_gcp/storage/outputs.py +40 -0
  95. pulumi_gcp/transcoder/__init__.py +11 -0
  96. pulumi_gcp/transcoder/_inputs.py +3991 -0
  97. pulumi_gcp/transcoder/job.py +2134 -0
  98. pulumi_gcp/transcoder/job_template.py +1524 -0
  99. pulumi_gcp/transcoder/outputs.py +2918 -0
  100. pulumi_gcp/vertex/ai_deployment_resource_pool.py +2 -2
  101. pulumi_gcp/vmwareengine/_inputs.py +440 -0
  102. pulumi_gcp/vmwareengine/cluster.py +100 -2
  103. pulumi_gcp/vmwareengine/get_cluster.py +12 -1
  104. pulumi_gcp/vmwareengine/outputs.py +615 -0
  105. pulumi_gcp/workstations/_inputs.py +54 -0
  106. pulumi_gcp/workstations/outputs.py +32 -0
  107. pulumi_gcp/workstations/workstation_config.py +205 -0
  108. {pulumi_gcp-8.7.0a1730183903.dist-info → pulumi_gcp-8.7.0a1730196225.dist-info}/METADATA +1 -1
  109. {pulumi_gcp-8.7.0a1730183903.dist-info → pulumi_gcp-8.7.0a1730196225.dist-info}/RECORD +111 -89
  110. {pulumi_gcp-8.7.0a1730183903.dist-info → pulumi_gcp-8.7.0a1730196225.dist-info}/WHEEL +1 -1
  111. {pulumi_gcp-8.7.0a1730183903.dist-info → pulumi_gcp-8.7.0a1730196225.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2918 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+
18
+ __all__ = [
19
+ 'JobConfig',
20
+ 'JobConfigAdBreak',
21
+ 'JobConfigEditList',
22
+ 'JobConfigElementaryStream',
23
+ 'JobConfigElementaryStreamAudioStream',
24
+ 'JobConfigElementaryStreamVideoStream',
25
+ 'JobConfigElementaryStreamVideoStreamH264',
26
+ 'JobConfigElementaryStreamVideoStreamH264Hlg',
27
+ 'JobConfigElementaryStreamVideoStreamH264Sdr',
28
+ 'JobConfigEncryption',
29
+ 'JobConfigEncryptionAes128',
30
+ 'JobConfigEncryptionDrmSystems',
31
+ 'JobConfigEncryptionDrmSystemsClearkey',
32
+ 'JobConfigEncryptionDrmSystemsFairplay',
33
+ 'JobConfigEncryptionDrmSystemsPlayready',
34
+ 'JobConfigEncryptionDrmSystemsWidevine',
35
+ 'JobConfigEncryptionMpegCenc',
36
+ 'JobConfigEncryptionSampleAes',
37
+ 'JobConfigEncryptionSecretManagerKeySource',
38
+ 'JobConfigInput',
39
+ 'JobConfigManifest',
40
+ 'JobConfigMuxStream',
41
+ 'JobConfigMuxStreamSegmentSettings',
42
+ 'JobConfigOutput',
43
+ 'JobConfigOverlay',
44
+ 'JobConfigOverlayAnimation',
45
+ 'JobConfigOverlayAnimationAnimationFade',
46
+ 'JobConfigOverlayAnimationAnimationFadeXy',
47
+ 'JobConfigOverlayImage',
48
+ 'JobConfigPubsubDestination',
49
+ 'JobTemplateConfig',
50
+ 'JobTemplateConfigAdBreak',
51
+ 'JobTemplateConfigEditList',
52
+ 'JobTemplateConfigElementaryStream',
53
+ 'JobTemplateConfigElementaryStreamAudioStream',
54
+ 'JobTemplateConfigElementaryStreamVideoStream',
55
+ 'JobTemplateConfigElementaryStreamVideoStreamH264',
56
+ 'JobTemplateConfigElementaryStreamVideoStreamH264Hlg',
57
+ 'JobTemplateConfigElementaryStreamVideoStreamH264Sdr',
58
+ 'JobTemplateConfigEncryption',
59
+ 'JobTemplateConfigEncryptionAes128',
60
+ 'JobTemplateConfigEncryptionDrmSystems',
61
+ 'JobTemplateConfigEncryptionDrmSystemsClearkey',
62
+ 'JobTemplateConfigEncryptionDrmSystemsFairplay',
63
+ 'JobTemplateConfigEncryptionDrmSystemsPlayready',
64
+ 'JobTemplateConfigEncryptionDrmSystemsWidevine',
65
+ 'JobTemplateConfigEncryptionMpegCenc',
66
+ 'JobTemplateConfigEncryptionSampleAes',
67
+ 'JobTemplateConfigEncryptionSecretManagerKeySource',
68
+ 'JobTemplateConfigInput',
69
+ 'JobTemplateConfigManifest',
70
+ 'JobTemplateConfigMuxStream',
71
+ 'JobTemplateConfigMuxStreamSegmentSettings',
72
+ 'JobTemplateConfigOutput',
73
+ 'JobTemplateConfigOverlay',
74
+ 'JobTemplateConfigOverlayAnimation',
75
+ 'JobTemplateConfigOverlayAnimationAnimationFade',
76
+ 'JobTemplateConfigOverlayAnimationAnimationFadeXy',
77
+ 'JobTemplateConfigOverlayImage',
78
+ 'JobTemplateConfigPubsubDestination',
79
+ ]
80
+
81
+ @pulumi.output_type
82
+ class JobConfig(dict):
83
+ @staticmethod
84
+ def __key_warning(key: str):
85
+ suggest = None
86
+ if key == "adBreaks":
87
+ suggest = "ad_breaks"
88
+ elif key == "editLists":
89
+ suggest = "edit_lists"
90
+ elif key == "elementaryStreams":
91
+ suggest = "elementary_streams"
92
+ elif key == "muxStreams":
93
+ suggest = "mux_streams"
94
+ elif key == "pubsubDestination":
95
+ suggest = "pubsub_destination"
96
+
97
+ if suggest:
98
+ pulumi.log.warn(f"Key '{key}' not found in JobConfig. Access the value via the '{suggest}' property getter instead.")
99
+
100
+ def __getitem__(self, key: str) -> Any:
101
+ JobConfig.__key_warning(key)
102
+ return super().__getitem__(key)
103
+
104
+ def get(self, key: str, default = None) -> Any:
105
+ JobConfig.__key_warning(key)
106
+ return super().get(key, default)
107
+
108
+ def __init__(__self__, *,
109
+ ad_breaks: Optional[Sequence['outputs.JobConfigAdBreak']] = None,
110
+ edit_lists: Optional[Sequence['outputs.JobConfigEditList']] = None,
111
+ elementary_streams: Optional[Sequence['outputs.JobConfigElementaryStream']] = None,
112
+ encryptions: Optional[Sequence['outputs.JobConfigEncryption']] = None,
113
+ inputs: Optional[Sequence['outputs.JobConfigInput']] = None,
114
+ manifests: Optional[Sequence['outputs.JobConfigManifest']] = None,
115
+ mux_streams: Optional[Sequence['outputs.JobConfigMuxStream']] = None,
116
+ output: Optional['outputs.JobConfigOutput'] = None,
117
+ overlays: Optional[Sequence['outputs.JobConfigOverlay']] = None,
118
+ pubsub_destination: Optional['outputs.JobConfigPubsubDestination'] = None):
119
+ """
120
+ :param Sequence['JobConfigAdBreakArgs'] ad_breaks: Ad break.
121
+ Structure is documented below.
122
+ :param Sequence['JobConfigEditListArgs'] edit_lists: List of input assets stored in Cloud Storage.
123
+ Structure is documented below.
124
+ :param Sequence['JobConfigElementaryStreamArgs'] elementary_streams: List of input assets stored in Cloud Storage.
125
+ Structure is documented below.
126
+ :param Sequence['JobConfigEncryptionArgs'] encryptions: List of encryption configurations for the content.
127
+ Structure is documented below.
128
+ :param Sequence['JobConfigInputArgs'] inputs: List of input assets stored in Cloud Storage.
129
+ Structure is documented below.
130
+ :param Sequence['JobConfigManifestArgs'] manifests: Manifest configuration.
131
+ Structure is documented below.
132
+ :param Sequence['JobConfigMuxStreamArgs'] mux_streams: Multiplexing settings for output stream.
133
+ Structure is documented below.
134
+ :param 'JobConfigOutputArgs' output: Location of output file(s) in a Cloud Storage bucket.
135
+ Structure is documented below.
136
+ :param Sequence['JobConfigOverlayArgs'] overlays: List of overlays on the output video, in descending Z-order.
137
+ Structure is documented below.
138
+ :param 'JobConfigPubsubDestinationArgs' pubsub_destination: Pub/Sub destination.
139
+ Structure is documented below.
140
+ """
141
+ if ad_breaks is not None:
142
+ pulumi.set(__self__, "ad_breaks", ad_breaks)
143
+ if edit_lists is not None:
144
+ pulumi.set(__self__, "edit_lists", edit_lists)
145
+ if elementary_streams is not None:
146
+ pulumi.set(__self__, "elementary_streams", elementary_streams)
147
+ if encryptions is not None:
148
+ pulumi.set(__self__, "encryptions", encryptions)
149
+ if inputs is not None:
150
+ pulumi.set(__self__, "inputs", inputs)
151
+ if manifests is not None:
152
+ pulumi.set(__self__, "manifests", manifests)
153
+ if mux_streams is not None:
154
+ pulumi.set(__self__, "mux_streams", mux_streams)
155
+ if output is not None:
156
+ pulumi.set(__self__, "output", output)
157
+ if overlays is not None:
158
+ pulumi.set(__self__, "overlays", overlays)
159
+ if pubsub_destination is not None:
160
+ pulumi.set(__self__, "pubsub_destination", pubsub_destination)
161
+
162
+ @property
163
+ @pulumi.getter(name="adBreaks")
164
+ def ad_breaks(self) -> Optional[Sequence['outputs.JobConfigAdBreak']]:
165
+ """
166
+ Ad break.
167
+ Structure is documented below.
168
+ """
169
+ return pulumi.get(self, "ad_breaks")
170
+
171
+ @property
172
+ @pulumi.getter(name="editLists")
173
+ def edit_lists(self) -> Optional[Sequence['outputs.JobConfigEditList']]:
174
+ """
175
+ List of input assets stored in Cloud Storage.
176
+ Structure is documented below.
177
+ """
178
+ return pulumi.get(self, "edit_lists")
179
+
180
+ @property
181
+ @pulumi.getter(name="elementaryStreams")
182
+ def elementary_streams(self) -> Optional[Sequence['outputs.JobConfigElementaryStream']]:
183
+ """
184
+ List of input assets stored in Cloud Storage.
185
+ Structure is documented below.
186
+ """
187
+ return pulumi.get(self, "elementary_streams")
188
+
189
+ @property
190
+ @pulumi.getter
191
+ def encryptions(self) -> Optional[Sequence['outputs.JobConfigEncryption']]:
192
+ """
193
+ List of encryption configurations for the content.
194
+ Structure is documented below.
195
+ """
196
+ return pulumi.get(self, "encryptions")
197
+
198
+ @property
199
+ @pulumi.getter
200
+ def inputs(self) -> Optional[Sequence['outputs.JobConfigInput']]:
201
+ """
202
+ List of input assets stored in Cloud Storage.
203
+ Structure is documented below.
204
+ """
205
+ return pulumi.get(self, "inputs")
206
+
207
+ @property
208
+ @pulumi.getter
209
+ def manifests(self) -> Optional[Sequence['outputs.JobConfigManifest']]:
210
+ """
211
+ Manifest configuration.
212
+ Structure is documented below.
213
+ """
214
+ return pulumi.get(self, "manifests")
215
+
216
+ @property
217
+ @pulumi.getter(name="muxStreams")
218
+ def mux_streams(self) -> Optional[Sequence['outputs.JobConfigMuxStream']]:
219
+ """
220
+ Multiplexing settings for output stream.
221
+ Structure is documented below.
222
+ """
223
+ return pulumi.get(self, "mux_streams")
224
+
225
+ @property
226
+ @pulumi.getter
227
+ def output(self) -> Optional['outputs.JobConfigOutput']:
228
+ """
229
+ Location of output file(s) in a Cloud Storage bucket.
230
+ Structure is documented below.
231
+ """
232
+ return pulumi.get(self, "output")
233
+
234
+ @property
235
+ @pulumi.getter
236
+ def overlays(self) -> Optional[Sequence['outputs.JobConfigOverlay']]:
237
+ """
238
+ List of overlays on the output video, in descending Z-order.
239
+ Structure is documented below.
240
+ """
241
+ return pulumi.get(self, "overlays")
242
+
243
+ @property
244
+ @pulumi.getter(name="pubsubDestination")
245
+ def pubsub_destination(self) -> Optional['outputs.JobConfigPubsubDestination']:
246
+ """
247
+ Pub/Sub destination.
248
+ Structure is documented below.
249
+ """
250
+ return pulumi.get(self, "pubsub_destination")
251
+
252
+
253
+ @pulumi.output_type
254
+ class JobConfigAdBreak(dict):
255
+ @staticmethod
256
+ def __key_warning(key: str):
257
+ suggest = None
258
+ if key == "startTimeOffset":
259
+ suggest = "start_time_offset"
260
+
261
+ if suggest:
262
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigAdBreak. Access the value via the '{suggest}' property getter instead.")
263
+
264
+ def __getitem__(self, key: str) -> Any:
265
+ JobConfigAdBreak.__key_warning(key)
266
+ return super().__getitem__(key)
267
+
268
+ def get(self, key: str, default = None) -> Any:
269
+ JobConfigAdBreak.__key_warning(key)
270
+ return super().get(key, default)
271
+
272
+ def __init__(__self__, *,
273
+ start_time_offset: Optional[str] = None):
274
+ """
275
+ :param str start_time_offset: Start time in seconds for the ad break, relative to the output file timeline
276
+ """
277
+ if start_time_offset is not None:
278
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
279
+
280
+ @property
281
+ @pulumi.getter(name="startTimeOffset")
282
+ def start_time_offset(self) -> Optional[str]:
283
+ """
284
+ Start time in seconds for the ad break, relative to the output file timeline
285
+ """
286
+ return pulumi.get(self, "start_time_offset")
287
+
288
+
289
+ @pulumi.output_type
290
+ class JobConfigEditList(dict):
291
+ @staticmethod
292
+ def __key_warning(key: str):
293
+ suggest = None
294
+ if key == "startTimeOffset":
295
+ suggest = "start_time_offset"
296
+
297
+ if suggest:
298
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigEditList. Access the value via the '{suggest}' property getter instead.")
299
+
300
+ def __getitem__(self, key: str) -> Any:
301
+ JobConfigEditList.__key_warning(key)
302
+ return super().__getitem__(key)
303
+
304
+ def get(self, key: str, default = None) -> Any:
305
+ JobConfigEditList.__key_warning(key)
306
+ return super().get(key, default)
307
+
308
+ def __init__(__self__, *,
309
+ inputs: Optional[Sequence[str]] = None,
310
+ key: Optional[str] = None,
311
+ start_time_offset: Optional[str] = None):
312
+ """
313
+ :param Sequence[str] inputs: List of values identifying files that should be used in this atom.
314
+ :param str key: A unique key for this atom.
315
+ :param str start_time_offset: Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.
316
+ """
317
+ if inputs is not None:
318
+ pulumi.set(__self__, "inputs", inputs)
319
+ if key is not None:
320
+ pulumi.set(__self__, "key", key)
321
+ if start_time_offset is not None:
322
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
323
+
324
+ @property
325
+ @pulumi.getter
326
+ def inputs(self) -> Optional[Sequence[str]]:
327
+ """
328
+ List of values identifying files that should be used in this atom.
329
+ """
330
+ return pulumi.get(self, "inputs")
331
+
332
+ @property
333
+ @pulumi.getter
334
+ def key(self) -> Optional[str]:
335
+ """
336
+ A unique key for this atom.
337
+ """
338
+ return pulumi.get(self, "key")
339
+
340
+ @property
341
+ @pulumi.getter(name="startTimeOffset")
342
+ def start_time_offset(self) -> Optional[str]:
343
+ """
344
+ Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.
345
+ """
346
+ return pulumi.get(self, "start_time_offset")
347
+
348
+
349
+ @pulumi.output_type
350
+ class JobConfigElementaryStream(dict):
351
+ @staticmethod
352
+ def __key_warning(key: str):
353
+ suggest = None
354
+ if key == "audioStream":
355
+ suggest = "audio_stream"
356
+ elif key == "videoStream":
357
+ suggest = "video_stream"
358
+
359
+ if suggest:
360
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigElementaryStream. Access the value via the '{suggest}' property getter instead.")
361
+
362
+ def __getitem__(self, key: str) -> Any:
363
+ JobConfigElementaryStream.__key_warning(key)
364
+ return super().__getitem__(key)
365
+
366
+ def get(self, key: str, default = None) -> Any:
367
+ JobConfigElementaryStream.__key_warning(key)
368
+ return super().get(key, default)
369
+
370
+ def __init__(__self__, *,
371
+ audio_stream: Optional['outputs.JobConfigElementaryStreamAudioStream'] = None,
372
+ key: Optional[str] = None,
373
+ video_stream: Optional['outputs.JobConfigElementaryStreamVideoStream'] = None):
374
+ """
375
+ :param 'JobConfigElementaryStreamAudioStreamArgs' audio_stream: Encoding of an audio stream.
376
+ Structure is documented below.
377
+ :param str key: A unique key for this atom.
378
+ :param 'JobConfigElementaryStreamVideoStreamArgs' video_stream: Encoding of a video stream.
379
+ Structure is documented below.
380
+ """
381
+ if audio_stream is not None:
382
+ pulumi.set(__self__, "audio_stream", audio_stream)
383
+ if key is not None:
384
+ pulumi.set(__self__, "key", key)
385
+ if video_stream is not None:
386
+ pulumi.set(__self__, "video_stream", video_stream)
387
+
388
+ @property
389
+ @pulumi.getter(name="audioStream")
390
+ def audio_stream(self) -> Optional['outputs.JobConfigElementaryStreamAudioStream']:
391
+ """
392
+ Encoding of an audio stream.
393
+ Structure is documented below.
394
+ """
395
+ return pulumi.get(self, "audio_stream")
396
+
397
+ @property
398
+ @pulumi.getter
399
+ def key(self) -> Optional[str]:
400
+ """
401
+ A unique key for this atom.
402
+ """
403
+ return pulumi.get(self, "key")
404
+
405
+ @property
406
+ @pulumi.getter(name="videoStream")
407
+ def video_stream(self) -> Optional['outputs.JobConfigElementaryStreamVideoStream']:
408
+ """
409
+ Encoding of a video stream.
410
+ Structure is documented below.
411
+ """
412
+ return pulumi.get(self, "video_stream")
413
+
414
+
415
+ @pulumi.output_type
416
+ class JobConfigElementaryStreamAudioStream(dict):
417
+ @staticmethod
418
+ def __key_warning(key: str):
419
+ suggest = None
420
+ if key == "bitrateBps":
421
+ suggest = "bitrate_bps"
422
+ elif key == "channelCount":
423
+ suggest = "channel_count"
424
+ elif key == "channelLayouts":
425
+ suggest = "channel_layouts"
426
+ elif key == "sampleRateHertz":
427
+ suggest = "sample_rate_hertz"
428
+
429
+ if suggest:
430
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigElementaryStreamAudioStream. Access the value via the '{suggest}' property getter instead.")
431
+
432
+ def __getitem__(self, key: str) -> Any:
433
+ JobConfigElementaryStreamAudioStream.__key_warning(key)
434
+ return super().__getitem__(key)
435
+
436
+ def get(self, key: str, default = None) -> Any:
437
+ JobConfigElementaryStreamAudioStream.__key_warning(key)
438
+ return super().get(key, default)
439
+
440
+ def __init__(__self__, *,
441
+ bitrate_bps: int,
442
+ channel_count: Optional[int] = None,
443
+ channel_layouts: Optional[Sequence[str]] = None,
444
+ codec: Optional[str] = None,
445
+ sample_rate_hertz: Optional[int] = None):
446
+ """
447
+ :param int bitrate_bps: Audio bitrate in bits per second.
448
+ :param int channel_count: Number of audio channels. The default is `2`.
449
+ :param Sequence[str] channel_layouts: A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
450
+ :param str codec: The codec for this audio stream. The default is `aac`.
451
+ :param int sample_rate_hertz: The audio sample rate in Hertz. The default is `48000`.
452
+ """
453
+ pulumi.set(__self__, "bitrate_bps", bitrate_bps)
454
+ if channel_count is not None:
455
+ pulumi.set(__self__, "channel_count", channel_count)
456
+ if channel_layouts is not None:
457
+ pulumi.set(__self__, "channel_layouts", channel_layouts)
458
+ if codec is not None:
459
+ pulumi.set(__self__, "codec", codec)
460
+ if sample_rate_hertz is not None:
461
+ pulumi.set(__self__, "sample_rate_hertz", sample_rate_hertz)
462
+
463
+ @property
464
+ @pulumi.getter(name="bitrateBps")
465
+ def bitrate_bps(self) -> int:
466
+ """
467
+ Audio bitrate in bits per second.
468
+ """
469
+ return pulumi.get(self, "bitrate_bps")
470
+
471
+ @property
472
+ @pulumi.getter(name="channelCount")
473
+ def channel_count(self) -> Optional[int]:
474
+ """
475
+ Number of audio channels. The default is `2`.
476
+ """
477
+ return pulumi.get(self, "channel_count")
478
+
479
+ @property
480
+ @pulumi.getter(name="channelLayouts")
481
+ def channel_layouts(self) -> Optional[Sequence[str]]:
482
+ """
483
+ A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
484
+ """
485
+ return pulumi.get(self, "channel_layouts")
486
+
487
+ @property
488
+ @pulumi.getter
489
+ def codec(self) -> Optional[str]:
490
+ """
491
+ The codec for this audio stream. The default is `aac`.
492
+ """
493
+ return pulumi.get(self, "codec")
494
+
495
+ @property
496
+ @pulumi.getter(name="sampleRateHertz")
497
+ def sample_rate_hertz(self) -> Optional[int]:
498
+ """
499
+ The audio sample rate in Hertz. The default is `48000`.
500
+ """
501
+ return pulumi.get(self, "sample_rate_hertz")
502
+
503
+
504
+ @pulumi.output_type
505
+ class JobConfigElementaryStreamVideoStream(dict):
506
+ def __init__(__self__, *,
507
+ h264: Optional['outputs.JobConfigElementaryStreamVideoStreamH264'] = None):
508
+ """
509
+ :param 'JobConfigElementaryStreamVideoStreamH264Args' h264: H264 codec settings
510
+ Structure is documented below.
511
+
512
+
513
+ <a name="nested_h264"></a>The `h264` block supports:
514
+ """
515
+ if h264 is not None:
516
+ pulumi.set(__self__, "h264", h264)
517
+
518
+ @property
519
+ @pulumi.getter
520
+ def h264(self) -> Optional['outputs.JobConfigElementaryStreamVideoStreamH264']:
521
+ """
522
+ H264 codec settings
523
+ Structure is documented below.
524
+
525
+
526
+ <a name="nested_h264"></a>The `h264` block supports:
527
+ """
528
+ return pulumi.get(self, "h264")
529
+
530
+
531
+ @pulumi.output_type
532
+ class JobConfigElementaryStreamVideoStreamH264(dict):
533
+ @staticmethod
534
+ def __key_warning(key: str):
535
+ suggest = None
536
+ if key == "bitrateBps":
537
+ suggest = "bitrate_bps"
538
+ elif key == "frameRate":
539
+ suggest = "frame_rate"
540
+ elif key == "crfLevel":
541
+ suggest = "crf_level"
542
+ elif key == "entropyCoder":
543
+ suggest = "entropy_coder"
544
+ elif key == "gopDuration":
545
+ suggest = "gop_duration"
546
+ elif key == "heightPixels":
547
+ suggest = "height_pixels"
548
+ elif key == "pixelFormat":
549
+ suggest = "pixel_format"
550
+ elif key == "rateControlMode":
551
+ suggest = "rate_control_mode"
552
+ elif key == "vbvFullnessBits":
553
+ suggest = "vbv_fullness_bits"
554
+ elif key == "vbvSizeBits":
555
+ suggest = "vbv_size_bits"
556
+ elif key == "widthPixels":
557
+ suggest = "width_pixels"
558
+
559
+ if suggest:
560
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigElementaryStreamVideoStreamH264. Access the value via the '{suggest}' property getter instead.")
561
+
562
+ def __getitem__(self, key: str) -> Any:
563
+ JobConfigElementaryStreamVideoStreamH264.__key_warning(key)
564
+ return super().__getitem__(key)
565
+
566
+ def get(self, key: str, default = None) -> Any:
567
+ JobConfigElementaryStreamVideoStreamH264.__key_warning(key)
568
+ return super().get(key, default)
569
+
570
+ def __init__(__self__, *,
571
+ bitrate_bps: int,
572
+ frame_rate: int,
573
+ crf_level: Optional[int] = None,
574
+ entropy_coder: Optional[str] = None,
575
+ gop_duration: Optional[str] = None,
576
+ height_pixels: Optional[int] = None,
577
+ hlg: Optional['outputs.JobConfigElementaryStreamVideoStreamH264Hlg'] = None,
578
+ pixel_format: Optional[str] = None,
579
+ preset: Optional[str] = None,
580
+ profile: Optional[str] = None,
581
+ rate_control_mode: Optional[str] = None,
582
+ sdr: Optional['outputs.JobConfigElementaryStreamVideoStreamH264Sdr'] = None,
583
+ vbv_fullness_bits: Optional[int] = None,
584
+ vbv_size_bits: Optional[int] = None,
585
+ width_pixels: Optional[int] = None):
586
+ """
587
+ :param int bitrate_bps: The video bitrate in bits per second.
588
+ :param int frame_rate: The target video frame rate in frames per second (FPS).
589
+ :param int crf_level: Target CRF level. The default is '21'.
590
+ :param str entropy_coder: The entropy coder to use. The default is 'cabac'.
591
+ :param str gop_duration: Select the GOP size based on the specified duration. The default is '3s'.
592
+ :param int height_pixels: The height of the video in pixels.
593
+ :param 'JobConfigElementaryStreamVideoStreamH264HlgArgs' hlg: HLG color format setting for H264.
594
+ :param str pixel_format: Pixel format to use. The default is 'yuv420p'.
595
+ :param str preset: Enforces the specified codec preset. The default is 'veryfast'.
596
+ :param str profile: Enforces the specified codec profile.
597
+ :param str rate_control_mode: Specify the mode. The default is 'vbr'.
598
+ :param 'JobConfigElementaryStreamVideoStreamH264SdrArgs' sdr: SDR color format setting for H264.
599
+ :param int vbv_fullness_bits: Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
600
+ :param int vbv_size_bits: Size of the Video Buffering Verifier (VBV) buffer in bits.
601
+ :param int width_pixels: The width of the video in pixels.
602
+ """
603
+ pulumi.set(__self__, "bitrate_bps", bitrate_bps)
604
+ pulumi.set(__self__, "frame_rate", frame_rate)
605
+ if crf_level is not None:
606
+ pulumi.set(__self__, "crf_level", crf_level)
607
+ if entropy_coder is not None:
608
+ pulumi.set(__self__, "entropy_coder", entropy_coder)
609
+ if gop_duration is not None:
610
+ pulumi.set(__self__, "gop_duration", gop_duration)
611
+ if height_pixels is not None:
612
+ pulumi.set(__self__, "height_pixels", height_pixels)
613
+ if hlg is not None:
614
+ pulumi.set(__self__, "hlg", hlg)
615
+ if pixel_format is not None:
616
+ pulumi.set(__self__, "pixel_format", pixel_format)
617
+ if preset is not None:
618
+ pulumi.set(__self__, "preset", preset)
619
+ if profile is not None:
620
+ pulumi.set(__self__, "profile", profile)
621
+ if rate_control_mode is not None:
622
+ pulumi.set(__self__, "rate_control_mode", rate_control_mode)
623
+ if sdr is not None:
624
+ pulumi.set(__self__, "sdr", sdr)
625
+ if vbv_fullness_bits is not None:
626
+ pulumi.set(__self__, "vbv_fullness_bits", vbv_fullness_bits)
627
+ if vbv_size_bits is not None:
628
+ pulumi.set(__self__, "vbv_size_bits", vbv_size_bits)
629
+ if width_pixels is not None:
630
+ pulumi.set(__self__, "width_pixels", width_pixels)
631
+
632
+ @property
633
+ @pulumi.getter(name="bitrateBps")
634
+ def bitrate_bps(self) -> int:
635
+ """
636
+ The video bitrate in bits per second.
637
+ """
638
+ return pulumi.get(self, "bitrate_bps")
639
+
640
+ @property
641
+ @pulumi.getter(name="frameRate")
642
+ def frame_rate(self) -> int:
643
+ """
644
+ The target video frame rate in frames per second (FPS).
645
+ """
646
+ return pulumi.get(self, "frame_rate")
647
+
648
+ @property
649
+ @pulumi.getter(name="crfLevel")
650
+ def crf_level(self) -> Optional[int]:
651
+ """
652
+ Target CRF level. The default is '21'.
653
+ """
654
+ return pulumi.get(self, "crf_level")
655
+
656
+ @property
657
+ @pulumi.getter(name="entropyCoder")
658
+ def entropy_coder(self) -> Optional[str]:
659
+ """
660
+ The entropy coder to use. The default is 'cabac'.
661
+ """
662
+ return pulumi.get(self, "entropy_coder")
663
+
664
+ @property
665
+ @pulumi.getter(name="gopDuration")
666
+ def gop_duration(self) -> Optional[str]:
667
+ """
668
+ Select the GOP size based on the specified duration. The default is '3s'.
669
+ """
670
+ return pulumi.get(self, "gop_duration")
671
+
672
+ @property
673
+ @pulumi.getter(name="heightPixels")
674
+ def height_pixels(self) -> Optional[int]:
675
+ """
676
+ The height of the video in pixels.
677
+ """
678
+ return pulumi.get(self, "height_pixels")
679
+
680
+ @property
681
+ @pulumi.getter
682
+ def hlg(self) -> Optional['outputs.JobConfigElementaryStreamVideoStreamH264Hlg']:
683
+ """
684
+ HLG color format setting for H264.
685
+ """
686
+ return pulumi.get(self, "hlg")
687
+
688
+ @property
689
+ @pulumi.getter(name="pixelFormat")
690
+ def pixel_format(self) -> Optional[str]:
691
+ """
692
+ Pixel format to use. The default is 'yuv420p'.
693
+ """
694
+ return pulumi.get(self, "pixel_format")
695
+
696
+ @property
697
+ @pulumi.getter
698
+ def preset(self) -> Optional[str]:
699
+ """
700
+ Enforces the specified codec preset. The default is 'veryfast'.
701
+ """
702
+ return pulumi.get(self, "preset")
703
+
704
+ @property
705
+ @pulumi.getter
706
+ def profile(self) -> Optional[str]:
707
+ """
708
+ Enforces the specified codec profile.
709
+ """
710
+ return pulumi.get(self, "profile")
711
+
712
+ @property
713
+ @pulumi.getter(name="rateControlMode")
714
+ def rate_control_mode(self) -> Optional[str]:
715
+ """
716
+ Specify the mode. The default is 'vbr'.
717
+ """
718
+ return pulumi.get(self, "rate_control_mode")
719
+
720
+ @property
721
+ @pulumi.getter
722
+ def sdr(self) -> Optional['outputs.JobConfigElementaryStreamVideoStreamH264Sdr']:
723
+ """
724
+ SDR color format setting for H264.
725
+ """
726
+ return pulumi.get(self, "sdr")
727
+
728
+ @property
729
+ @pulumi.getter(name="vbvFullnessBits")
730
+ def vbv_fullness_bits(self) -> Optional[int]:
731
+ """
732
+ Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
733
+ """
734
+ return pulumi.get(self, "vbv_fullness_bits")
735
+
736
+ @property
737
+ @pulumi.getter(name="vbvSizeBits")
738
+ def vbv_size_bits(self) -> Optional[int]:
739
+ """
740
+ Size of the Video Buffering Verifier (VBV) buffer in bits.
741
+ """
742
+ return pulumi.get(self, "vbv_size_bits")
743
+
744
+ @property
745
+ @pulumi.getter(name="widthPixels")
746
+ def width_pixels(self) -> Optional[int]:
747
+ """
748
+ The width of the video in pixels.
749
+ """
750
+ return pulumi.get(self, "width_pixels")
751
+
752
+
753
+ @pulumi.output_type
754
+ class JobConfigElementaryStreamVideoStreamH264Hlg(dict):
755
+ def __init__(__self__):
756
+ pass
757
+
758
+
759
+ @pulumi.output_type
760
+ class JobConfigElementaryStreamVideoStreamH264Sdr(dict):
761
+ def __init__(__self__):
762
+ pass
763
+
764
+
765
+ @pulumi.output_type
766
+ class JobConfigEncryption(dict):
767
+ @staticmethod
768
+ def __key_warning(key: str):
769
+ suggest = None
770
+ if key == "drmSystems":
771
+ suggest = "drm_systems"
772
+ elif key == "mpegCenc":
773
+ suggest = "mpeg_cenc"
774
+ elif key == "sampleAes":
775
+ suggest = "sample_aes"
776
+ elif key == "secretManagerKeySource":
777
+ suggest = "secret_manager_key_source"
778
+
779
+ if suggest:
780
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigEncryption. Access the value via the '{suggest}' property getter instead.")
781
+
782
+ def __getitem__(self, key: str) -> Any:
783
+ JobConfigEncryption.__key_warning(key)
784
+ return super().__getitem__(key)
785
+
786
+ def get(self, key: str, default = None) -> Any:
787
+ JobConfigEncryption.__key_warning(key)
788
+ return super().get(key, default)
789
+
790
+ def __init__(__self__, *,
791
+ id: str,
792
+ aes128: Optional['outputs.JobConfigEncryptionAes128'] = None,
793
+ drm_systems: Optional['outputs.JobConfigEncryptionDrmSystems'] = None,
794
+ mpeg_cenc: Optional['outputs.JobConfigEncryptionMpegCenc'] = None,
795
+ sample_aes: Optional['outputs.JobConfigEncryptionSampleAes'] = None,
796
+ secret_manager_key_source: Optional['outputs.JobConfigEncryptionSecretManagerKeySource'] = None):
797
+ """
798
+ :param str id: Identifier for this set of encryption options.
799
+ :param 'JobConfigEncryptionAes128Args' aes128: Configuration for AES-128 encryption.
800
+ :param 'JobConfigEncryptionDrmSystemsArgs' drm_systems: DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled.
801
+ Structure is documented below.
802
+ :param 'JobConfigEncryptionMpegCencArgs' mpeg_cenc: Configuration for MPEG Common Encryption (MPEG-CENC).
803
+ Structure is documented below.
804
+ :param 'JobConfigEncryptionSampleAesArgs' sample_aes: Configuration for SAMPLE-AES encryption.
805
+ :param 'JobConfigEncryptionSecretManagerKeySourceArgs' secret_manager_key_source: Configuration for secrets stored in Google Secret Manager.
806
+ Structure is documented below.
807
+ """
808
+ pulumi.set(__self__, "id", id)
809
+ if aes128 is not None:
810
+ pulumi.set(__self__, "aes128", aes128)
811
+ if drm_systems is not None:
812
+ pulumi.set(__self__, "drm_systems", drm_systems)
813
+ if mpeg_cenc is not None:
814
+ pulumi.set(__self__, "mpeg_cenc", mpeg_cenc)
815
+ if sample_aes is not None:
816
+ pulumi.set(__self__, "sample_aes", sample_aes)
817
+ if secret_manager_key_source is not None:
818
+ pulumi.set(__self__, "secret_manager_key_source", secret_manager_key_source)
819
+
820
+ @property
821
+ @pulumi.getter
822
+ def id(self) -> str:
823
+ """
824
+ Identifier for this set of encryption options.
825
+ """
826
+ return pulumi.get(self, "id")
827
+
828
+ @property
829
+ @pulumi.getter
830
+ def aes128(self) -> Optional['outputs.JobConfigEncryptionAes128']:
831
+ """
832
+ Configuration for AES-128 encryption.
833
+ """
834
+ return pulumi.get(self, "aes128")
835
+
836
+ @property
837
+ @pulumi.getter(name="drmSystems")
838
+ def drm_systems(self) -> Optional['outputs.JobConfigEncryptionDrmSystems']:
839
+ """
840
+ DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled.
841
+ Structure is documented below.
842
+ """
843
+ return pulumi.get(self, "drm_systems")
844
+
845
+ @property
846
+ @pulumi.getter(name="mpegCenc")
847
+ def mpeg_cenc(self) -> Optional['outputs.JobConfigEncryptionMpegCenc']:
848
+ """
849
+ Configuration for MPEG Common Encryption (MPEG-CENC).
850
+ Structure is documented below.
851
+ """
852
+ return pulumi.get(self, "mpeg_cenc")
853
+
854
+ @property
855
+ @pulumi.getter(name="sampleAes")
856
+ def sample_aes(self) -> Optional['outputs.JobConfigEncryptionSampleAes']:
857
+ """
858
+ Configuration for SAMPLE-AES encryption.
859
+ """
860
+ return pulumi.get(self, "sample_aes")
861
+
862
+ @property
863
+ @pulumi.getter(name="secretManagerKeySource")
864
+ def secret_manager_key_source(self) -> Optional['outputs.JobConfigEncryptionSecretManagerKeySource']:
865
+ """
866
+ Configuration for secrets stored in Google Secret Manager.
867
+ Structure is documented below.
868
+ """
869
+ return pulumi.get(self, "secret_manager_key_source")
870
+
871
+
872
+ @pulumi.output_type
873
+ class JobConfigEncryptionAes128(dict):
874
+ def __init__(__self__):
875
+ pass
876
+
877
+
878
+ @pulumi.output_type
879
+ class JobConfigEncryptionDrmSystems(dict):
880
+ def __init__(__self__, *,
881
+ clearkey: Optional['outputs.JobConfigEncryptionDrmSystemsClearkey'] = None,
882
+ fairplay: Optional['outputs.JobConfigEncryptionDrmSystemsFairplay'] = None,
883
+ playready: Optional['outputs.JobConfigEncryptionDrmSystemsPlayready'] = None,
884
+ widevine: Optional['outputs.JobConfigEncryptionDrmSystemsWidevine'] = None):
885
+ """
886
+ :param 'JobConfigEncryptionDrmSystemsClearkeyArgs' clearkey: Clearkey configuration.
887
+ :param 'JobConfigEncryptionDrmSystemsFairplayArgs' fairplay: Fairplay configuration.
888
+ :param 'JobConfigEncryptionDrmSystemsPlayreadyArgs' playready: Playready configuration.
889
+ :param 'JobConfigEncryptionDrmSystemsWidevineArgs' widevine: Widevine configuration.
890
+ """
891
+ if clearkey is not None:
892
+ pulumi.set(__self__, "clearkey", clearkey)
893
+ if fairplay is not None:
894
+ pulumi.set(__self__, "fairplay", fairplay)
895
+ if playready is not None:
896
+ pulumi.set(__self__, "playready", playready)
897
+ if widevine is not None:
898
+ pulumi.set(__self__, "widevine", widevine)
899
+
900
+ @property
901
+ @pulumi.getter
902
+ def clearkey(self) -> Optional['outputs.JobConfigEncryptionDrmSystemsClearkey']:
903
+ """
904
+ Clearkey configuration.
905
+ """
906
+ return pulumi.get(self, "clearkey")
907
+
908
+ @property
909
+ @pulumi.getter
910
+ def fairplay(self) -> Optional['outputs.JobConfigEncryptionDrmSystemsFairplay']:
911
+ """
912
+ Fairplay configuration.
913
+ """
914
+ return pulumi.get(self, "fairplay")
915
+
916
+ @property
917
+ @pulumi.getter
918
+ def playready(self) -> Optional['outputs.JobConfigEncryptionDrmSystemsPlayready']:
919
+ """
920
+ Playready configuration.
921
+ """
922
+ return pulumi.get(self, "playready")
923
+
924
+ @property
925
+ @pulumi.getter
926
+ def widevine(self) -> Optional['outputs.JobConfigEncryptionDrmSystemsWidevine']:
927
+ """
928
+ Widevine configuration.
929
+ """
930
+ return pulumi.get(self, "widevine")
931
+
932
+
933
+ @pulumi.output_type
934
+ class JobConfigEncryptionDrmSystemsClearkey(dict):
935
+ def __init__(__self__):
936
+ pass
937
+
938
+
939
+ @pulumi.output_type
940
+ class JobConfigEncryptionDrmSystemsFairplay(dict):
941
+ def __init__(__self__):
942
+ pass
943
+
944
+
945
+ @pulumi.output_type
946
+ class JobConfigEncryptionDrmSystemsPlayready(dict):
947
+ def __init__(__self__):
948
+ pass
949
+
950
+
951
+ @pulumi.output_type
952
+ class JobConfigEncryptionDrmSystemsWidevine(dict):
953
+ def __init__(__self__):
954
+ pass
955
+
956
+
957
+ @pulumi.output_type
958
+ class JobConfigEncryptionMpegCenc(dict):
959
+ def __init__(__self__, *,
960
+ scheme: str):
961
+ """
962
+ :param str scheme: Specify the encryption scheme.
963
+ """
964
+ pulumi.set(__self__, "scheme", scheme)
965
+
966
+ @property
967
+ @pulumi.getter
968
+ def scheme(self) -> str:
969
+ """
970
+ Specify the encryption scheme.
971
+ """
972
+ return pulumi.get(self, "scheme")
973
+
974
+
975
+ @pulumi.output_type
976
+ class JobConfigEncryptionSampleAes(dict):
977
+ def __init__(__self__):
978
+ pass
979
+
980
+
981
+ @pulumi.output_type
982
+ class JobConfigEncryptionSecretManagerKeySource(dict):
983
+ @staticmethod
984
+ def __key_warning(key: str):
985
+ suggest = None
986
+ if key == "secretVersion":
987
+ suggest = "secret_version"
988
+
989
+ if suggest:
990
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigEncryptionSecretManagerKeySource. Access the value via the '{suggest}' property getter instead.")
991
+
992
+ def __getitem__(self, key: str) -> Any:
993
+ JobConfigEncryptionSecretManagerKeySource.__key_warning(key)
994
+ return super().__getitem__(key)
995
+
996
+ def get(self, key: str, default = None) -> Any:
997
+ JobConfigEncryptionSecretManagerKeySource.__key_warning(key)
998
+ return super().get(key, default)
999
+
1000
+ def __init__(__self__, *,
1001
+ secret_version: str):
1002
+ """
1003
+ :param str secret_version: The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
1004
+ """
1005
+ pulumi.set(__self__, "secret_version", secret_version)
1006
+
1007
+ @property
1008
+ @pulumi.getter(name="secretVersion")
1009
+ def secret_version(self) -> str:
1010
+ """
1011
+ The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
1012
+ """
1013
+ return pulumi.get(self, "secret_version")
1014
+
1015
+
1016
+ @pulumi.output_type
1017
+ class JobConfigInput(dict):
1018
+ def __init__(__self__, *,
1019
+ key: Optional[str] = None,
1020
+ uri: Optional[str] = None):
1021
+ """
1022
+ :param str key: A unique key for this input. Must be specified when using advanced mapping and edit lists.
1023
+ :param str uri: URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, gs://bucket/inputs/file.mp4).
1024
+ If empty, the value is populated from Job.input_uri.
1025
+ """
1026
+ if key is not None:
1027
+ pulumi.set(__self__, "key", key)
1028
+ if uri is not None:
1029
+ pulumi.set(__self__, "uri", uri)
1030
+
1031
+ @property
1032
+ @pulumi.getter
1033
+ def key(self) -> Optional[str]:
1034
+ """
1035
+ A unique key for this input. Must be specified when using advanced mapping and edit lists.
1036
+ """
1037
+ return pulumi.get(self, "key")
1038
+
1039
+ @property
1040
+ @pulumi.getter
1041
+ def uri(self) -> Optional[str]:
1042
+ """
1043
+ URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, gs://bucket/inputs/file.mp4).
1044
+ If empty, the value is populated from Job.input_uri.
1045
+ """
1046
+ return pulumi.get(self, "uri")
1047
+
1048
+
1049
+ @pulumi.output_type
1050
+ class JobConfigManifest(dict):
1051
+ @staticmethod
1052
+ def __key_warning(key: str):
1053
+ suggest = None
1054
+ if key == "fileName":
1055
+ suggest = "file_name"
1056
+ elif key == "muxStreams":
1057
+ suggest = "mux_streams"
1058
+
1059
+ if suggest:
1060
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigManifest. Access the value via the '{suggest}' property getter instead.")
1061
+
1062
+ def __getitem__(self, key: str) -> Any:
1063
+ JobConfigManifest.__key_warning(key)
1064
+ return super().__getitem__(key)
1065
+
1066
+ def get(self, key: str, default = None) -> Any:
1067
+ JobConfigManifest.__key_warning(key)
1068
+ return super().get(key, default)
1069
+
1070
+ def __init__(__self__, *,
1071
+ file_name: Optional[str] = None,
1072
+ mux_streams: Optional[Sequence[str]] = None,
1073
+ type: Optional[str] = None):
1074
+ """
1075
+ :param str file_name: The name of the generated file. The default is `manifest`.
1076
+ :param Sequence[str] mux_streams: List of user supplied MuxStream.key values that should appear in this manifest.
1077
+ :param str type: Type of the manifest.
1078
+ Possible values are: `MANIFEST_TYPE_UNSPECIFIED`, `HLS`, `DASH`.
1079
+ """
1080
+ if file_name is not None:
1081
+ pulumi.set(__self__, "file_name", file_name)
1082
+ if mux_streams is not None:
1083
+ pulumi.set(__self__, "mux_streams", mux_streams)
1084
+ if type is not None:
1085
+ pulumi.set(__self__, "type", type)
1086
+
1087
+ @property
1088
+ @pulumi.getter(name="fileName")
1089
+ def file_name(self) -> Optional[str]:
1090
+ """
1091
+ The name of the generated file. The default is `manifest`.
1092
+ """
1093
+ return pulumi.get(self, "file_name")
1094
+
1095
+ @property
1096
+ @pulumi.getter(name="muxStreams")
1097
+ def mux_streams(self) -> Optional[Sequence[str]]:
1098
+ """
1099
+ List of user supplied MuxStream.key values that should appear in this manifest.
1100
+ """
1101
+ return pulumi.get(self, "mux_streams")
1102
+
1103
+ @property
1104
+ @pulumi.getter
1105
+ def type(self) -> Optional[str]:
1106
+ """
1107
+ Type of the manifest.
1108
+ Possible values are: `MANIFEST_TYPE_UNSPECIFIED`, `HLS`, `DASH`.
1109
+ """
1110
+ return pulumi.get(self, "type")
1111
+
1112
+
1113
+ @pulumi.output_type
1114
+ class JobConfigMuxStream(dict):
1115
+ @staticmethod
1116
+ def __key_warning(key: str):
1117
+ suggest = None
1118
+ if key == "elementaryStreams":
1119
+ suggest = "elementary_streams"
1120
+ elif key == "encryptionId":
1121
+ suggest = "encryption_id"
1122
+ elif key == "fileName":
1123
+ suggest = "file_name"
1124
+ elif key == "segmentSettings":
1125
+ suggest = "segment_settings"
1126
+
1127
+ if suggest:
1128
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigMuxStream. Access the value via the '{suggest}' property getter instead.")
1129
+
1130
+ def __getitem__(self, key: str) -> Any:
1131
+ JobConfigMuxStream.__key_warning(key)
1132
+ return super().__getitem__(key)
1133
+
1134
+ def get(self, key: str, default = None) -> Any:
1135
+ JobConfigMuxStream.__key_warning(key)
1136
+ return super().get(key, default)
1137
+
1138
+ def __init__(__self__, *,
1139
+ container: Optional[str] = None,
1140
+ elementary_streams: Optional[Sequence[str]] = None,
1141
+ encryption_id: Optional[str] = None,
1142
+ file_name: Optional[str] = None,
1143
+ key: Optional[str] = None,
1144
+ segment_settings: Optional['outputs.JobConfigMuxStreamSegmentSettings'] = None):
1145
+ """
1146
+ :param str container: The container format. The default is `mp4`.
1147
+ :param Sequence[str] elementary_streams: List of ElementaryStream.key values multiplexed in this stream.
1148
+ :param str encryption_id: Identifier of the encryption configuration to use.
1149
+ :param str file_name: The name of the generated file.
1150
+ :param str key: A unique key for this multiplexed stream.
1151
+ :param 'JobConfigMuxStreamSegmentSettingsArgs' segment_settings: Segment settings for ts, fmp4 and vtt.
1152
+ Structure is documented below.
1153
+ """
1154
+ if container is not None:
1155
+ pulumi.set(__self__, "container", container)
1156
+ if elementary_streams is not None:
1157
+ pulumi.set(__self__, "elementary_streams", elementary_streams)
1158
+ if encryption_id is not None:
1159
+ pulumi.set(__self__, "encryption_id", encryption_id)
1160
+ if file_name is not None:
1161
+ pulumi.set(__self__, "file_name", file_name)
1162
+ if key is not None:
1163
+ pulumi.set(__self__, "key", key)
1164
+ if segment_settings is not None:
1165
+ pulumi.set(__self__, "segment_settings", segment_settings)
1166
+
1167
+ @property
1168
+ @pulumi.getter
1169
+ def container(self) -> Optional[str]:
1170
+ """
1171
+ The container format. The default is `mp4`.
1172
+ """
1173
+ return pulumi.get(self, "container")
1174
+
1175
+ @property
1176
+ @pulumi.getter(name="elementaryStreams")
1177
+ def elementary_streams(self) -> Optional[Sequence[str]]:
1178
+ """
1179
+ List of ElementaryStream.key values multiplexed in this stream.
1180
+ """
1181
+ return pulumi.get(self, "elementary_streams")
1182
+
1183
+ @property
1184
+ @pulumi.getter(name="encryptionId")
1185
+ def encryption_id(self) -> Optional[str]:
1186
+ """
1187
+ Identifier of the encryption configuration to use.
1188
+ """
1189
+ return pulumi.get(self, "encryption_id")
1190
+
1191
+ @property
1192
+ @pulumi.getter(name="fileName")
1193
+ def file_name(self) -> Optional[str]:
1194
+ """
1195
+ The name of the generated file.
1196
+ """
1197
+ return pulumi.get(self, "file_name")
1198
+
1199
+ @property
1200
+ @pulumi.getter
1201
+ def key(self) -> Optional[str]:
1202
+ """
1203
+ A unique key for this multiplexed stream.
1204
+ """
1205
+ return pulumi.get(self, "key")
1206
+
1207
+ @property
1208
+ @pulumi.getter(name="segmentSettings")
1209
+ def segment_settings(self) -> Optional['outputs.JobConfigMuxStreamSegmentSettings']:
1210
+ """
1211
+ Segment settings for ts, fmp4 and vtt.
1212
+ Structure is documented below.
1213
+ """
1214
+ return pulumi.get(self, "segment_settings")
1215
+
1216
+
1217
+ @pulumi.output_type
1218
+ class JobConfigMuxStreamSegmentSettings(dict):
1219
+ @staticmethod
1220
+ def __key_warning(key: str):
1221
+ suggest = None
1222
+ if key == "segmentDuration":
1223
+ suggest = "segment_duration"
1224
+
1225
+ if suggest:
1226
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigMuxStreamSegmentSettings. Access the value via the '{suggest}' property getter instead.")
1227
+
1228
+ def __getitem__(self, key: str) -> Any:
1229
+ JobConfigMuxStreamSegmentSettings.__key_warning(key)
1230
+ return super().__getitem__(key)
1231
+
1232
+ def get(self, key: str, default = None) -> Any:
1233
+ JobConfigMuxStreamSegmentSettings.__key_warning(key)
1234
+ return super().get(key, default)
1235
+
1236
+ def __init__(__self__, *,
1237
+ segment_duration: Optional[str] = None):
1238
+ """
1239
+ :param str segment_duration: Duration of the segments in seconds. The default is `6.0s`.
1240
+ """
1241
+ if segment_duration is not None:
1242
+ pulumi.set(__self__, "segment_duration", segment_duration)
1243
+
1244
+ @property
1245
+ @pulumi.getter(name="segmentDuration")
1246
+ def segment_duration(self) -> Optional[str]:
1247
+ """
1248
+ Duration of the segments in seconds. The default is `6.0s`.
1249
+ """
1250
+ return pulumi.get(self, "segment_duration")
1251
+
1252
+
1253
+ @pulumi.output_type
1254
+ class JobConfigOutput(dict):
1255
+ def __init__(__self__, *,
1256
+ uri: Optional[str] = None):
1257
+ """
1258
+ :param str uri: URI for the output file(s). For example, gs://my-bucket/outputs/.
1259
+ """
1260
+ if uri is not None:
1261
+ pulumi.set(__self__, "uri", uri)
1262
+
1263
+ @property
1264
+ @pulumi.getter
1265
+ def uri(self) -> Optional[str]:
1266
+ """
1267
+ URI for the output file(s). For example, gs://my-bucket/outputs/.
1268
+ """
1269
+ return pulumi.get(self, "uri")
1270
+
1271
+
1272
+ @pulumi.output_type
1273
+ class JobConfigOverlay(dict):
1274
+ def __init__(__self__, *,
1275
+ animations: Optional[Sequence['outputs.JobConfigOverlayAnimation']] = None,
1276
+ image: Optional['outputs.JobConfigOverlayImage'] = None):
1277
+ """
1278
+ :param Sequence['JobConfigOverlayAnimationArgs'] animations: List of animations. The list should be chronological, without any time overlap.
1279
+ Structure is documented below.
1280
+ :param 'JobConfigOverlayImageArgs' image: Image overlay.
1281
+ Structure is documented below.
1282
+ """
1283
+ if animations is not None:
1284
+ pulumi.set(__self__, "animations", animations)
1285
+ if image is not None:
1286
+ pulumi.set(__self__, "image", image)
1287
+
1288
+ @property
1289
+ @pulumi.getter
1290
+ def animations(self) -> Optional[Sequence['outputs.JobConfigOverlayAnimation']]:
1291
+ """
1292
+ List of animations. The list should be chronological, without any time overlap.
1293
+ Structure is documented below.
1294
+ """
1295
+ return pulumi.get(self, "animations")
1296
+
1297
+ @property
1298
+ @pulumi.getter
1299
+ def image(self) -> Optional['outputs.JobConfigOverlayImage']:
1300
+ """
1301
+ Image overlay.
1302
+ Structure is documented below.
1303
+ """
1304
+ return pulumi.get(self, "image")
1305
+
1306
+
1307
+ @pulumi.output_type
1308
+ class JobConfigOverlayAnimation(dict):
1309
+ @staticmethod
1310
+ def __key_warning(key: str):
1311
+ suggest = None
1312
+ if key == "animationFade":
1313
+ suggest = "animation_fade"
1314
+
1315
+ if suggest:
1316
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigOverlayAnimation. Access the value via the '{suggest}' property getter instead.")
1317
+
1318
+ def __getitem__(self, key: str) -> Any:
1319
+ JobConfigOverlayAnimation.__key_warning(key)
1320
+ return super().__getitem__(key)
1321
+
1322
+ def get(self, key: str, default = None) -> Any:
1323
+ JobConfigOverlayAnimation.__key_warning(key)
1324
+ return super().get(key, default)
1325
+
1326
+ def __init__(__self__, *,
1327
+ animation_fade: Optional['outputs.JobConfigOverlayAnimationAnimationFade'] = None):
1328
+ """
1329
+ :param 'JobConfigOverlayAnimationAnimationFadeArgs' animation_fade: Display overlay object with fade animation.
1330
+ Structure is documented below.
1331
+ """
1332
+ if animation_fade is not None:
1333
+ pulumi.set(__self__, "animation_fade", animation_fade)
1334
+
1335
+ @property
1336
+ @pulumi.getter(name="animationFade")
1337
+ def animation_fade(self) -> Optional['outputs.JobConfigOverlayAnimationAnimationFade']:
1338
+ """
1339
+ Display overlay object with fade animation.
1340
+ Structure is documented below.
1341
+ """
1342
+ return pulumi.get(self, "animation_fade")
1343
+
1344
+
1345
+ @pulumi.output_type
1346
+ class JobConfigOverlayAnimationAnimationFade(dict):
1347
+ @staticmethod
1348
+ def __key_warning(key: str):
1349
+ suggest = None
1350
+ if key == "fadeType":
1351
+ suggest = "fade_type"
1352
+ elif key == "endTimeOffset":
1353
+ suggest = "end_time_offset"
1354
+ elif key == "startTimeOffset":
1355
+ suggest = "start_time_offset"
1356
+
1357
+ if suggest:
1358
+ pulumi.log.warn(f"Key '{key}' not found in JobConfigOverlayAnimationAnimationFade. Access the value via the '{suggest}' property getter instead.")
1359
+
1360
+ def __getitem__(self, key: str) -> Any:
1361
+ JobConfigOverlayAnimationAnimationFade.__key_warning(key)
1362
+ return super().__getitem__(key)
1363
+
1364
+ def get(self, key: str, default = None) -> Any:
1365
+ JobConfigOverlayAnimationAnimationFade.__key_warning(key)
1366
+ return super().get(key, default)
1367
+
1368
+ def __init__(__self__, *,
1369
+ fade_type: str,
1370
+ end_time_offset: Optional[str] = None,
1371
+ start_time_offset: Optional[str] = None,
1372
+ xy: Optional['outputs.JobConfigOverlayAnimationAnimationFadeXy'] = None):
1373
+ """
1374
+ :param str fade_type: Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
1375
+ The possible values are:
1376
+ * `FADE_TYPE_UNSPECIFIED`: The fade type is not specified.
1377
+ * `FADE_IN`: Fade the overlay object into view.
1378
+ * `FADE_OUT`: Fade the overlay object out of view.
1379
+ Possible values are: `FADE_TYPE_UNSPECIFIED`, `FADE_IN`, `FADE_OUT`.
1380
+ :param str end_time_offset: The time to end the fade animation, in seconds.
1381
+ :param str start_time_offset: The time to start the fade animation, in seconds.
1382
+ :param 'JobConfigOverlayAnimationAnimationFadeXyArgs' xy: Normalized coordinates based on output video resolution.
1383
+ Structure is documented below.
1384
+ """
1385
+ pulumi.set(__self__, "fade_type", fade_type)
1386
+ if end_time_offset is not None:
1387
+ pulumi.set(__self__, "end_time_offset", end_time_offset)
1388
+ if start_time_offset is not None:
1389
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
1390
+ if xy is not None:
1391
+ pulumi.set(__self__, "xy", xy)
1392
+
1393
+ @property
1394
+ @pulumi.getter(name="fadeType")
1395
+ def fade_type(self) -> str:
1396
+ """
1397
+ Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
1398
+ The possible values are:
1399
+ * `FADE_TYPE_UNSPECIFIED`: The fade type is not specified.
1400
+ * `FADE_IN`: Fade the overlay object into view.
1401
+ * `FADE_OUT`: Fade the overlay object out of view.
1402
+ Possible values are: `FADE_TYPE_UNSPECIFIED`, `FADE_IN`, `FADE_OUT`.
1403
+ """
1404
+ return pulumi.get(self, "fade_type")
1405
+
1406
+ @property
1407
+ @pulumi.getter(name="endTimeOffset")
1408
+ def end_time_offset(self) -> Optional[str]:
1409
+ """
1410
+ The time to end the fade animation, in seconds.
1411
+ """
1412
+ return pulumi.get(self, "end_time_offset")
1413
+
1414
+ @property
1415
+ @pulumi.getter(name="startTimeOffset")
1416
+ def start_time_offset(self) -> Optional[str]:
1417
+ """
1418
+ The time to start the fade animation, in seconds.
1419
+ """
1420
+ return pulumi.get(self, "start_time_offset")
1421
+
1422
+ @property
1423
+ @pulumi.getter
1424
+ def xy(self) -> Optional['outputs.JobConfigOverlayAnimationAnimationFadeXy']:
1425
+ """
1426
+ Normalized coordinates based on output video resolution.
1427
+ Structure is documented below.
1428
+ """
1429
+ return pulumi.get(self, "xy")
1430
+
1431
+
1432
+ @pulumi.output_type
1433
+ class JobConfigOverlayAnimationAnimationFadeXy(dict):
1434
+ def __init__(__self__, *,
1435
+ x: Optional[float] = None,
1436
+ y: Optional[float] = None):
1437
+ """
1438
+ :param float x: Normalized x coordinate.
1439
+ :param float y: Normalized y coordinate.
1440
+ """
1441
+ if x is not None:
1442
+ pulumi.set(__self__, "x", x)
1443
+ if y is not None:
1444
+ pulumi.set(__self__, "y", y)
1445
+
1446
+ @property
1447
+ @pulumi.getter
1448
+ def x(self) -> Optional[float]:
1449
+ """
1450
+ Normalized x coordinate.
1451
+ """
1452
+ return pulumi.get(self, "x")
1453
+
1454
+ @property
1455
+ @pulumi.getter
1456
+ def y(self) -> Optional[float]:
1457
+ """
1458
+ Normalized y coordinate.
1459
+ """
1460
+ return pulumi.get(self, "y")
1461
+
1462
+
1463
+ @pulumi.output_type
1464
+ class JobConfigOverlayImage(dict):
1465
+ def __init__(__self__, *,
1466
+ uri: str):
1467
+ """
1468
+ :param str uri: URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
1469
+ """
1470
+ pulumi.set(__self__, "uri", uri)
1471
+
1472
+ @property
1473
+ @pulumi.getter
1474
+ def uri(self) -> str:
1475
+ """
1476
+ URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
1477
+ """
1478
+ return pulumi.get(self, "uri")
1479
+
1480
+
1481
+ @pulumi.output_type
1482
+ class JobConfigPubsubDestination(dict):
1483
+ def __init__(__self__, *,
1484
+ topic: Optional[str] = None):
1485
+ """
1486
+ :param str topic: The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
1487
+ """
1488
+ if topic is not None:
1489
+ pulumi.set(__self__, "topic", topic)
1490
+
1491
+ @property
1492
+ @pulumi.getter
1493
+ def topic(self) -> Optional[str]:
1494
+ """
1495
+ The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
1496
+ """
1497
+ return pulumi.get(self, "topic")
1498
+
1499
+
1500
+ @pulumi.output_type
1501
+ class JobTemplateConfig(dict):
1502
+ @staticmethod
1503
+ def __key_warning(key: str):
1504
+ suggest = None
1505
+ if key == "adBreaks":
1506
+ suggest = "ad_breaks"
1507
+ elif key == "editLists":
1508
+ suggest = "edit_lists"
1509
+ elif key == "elementaryStreams":
1510
+ suggest = "elementary_streams"
1511
+ elif key == "muxStreams":
1512
+ suggest = "mux_streams"
1513
+ elif key == "pubsubDestination":
1514
+ suggest = "pubsub_destination"
1515
+
1516
+ if suggest:
1517
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfig. Access the value via the '{suggest}' property getter instead.")
1518
+
1519
+ def __getitem__(self, key: str) -> Any:
1520
+ JobTemplateConfig.__key_warning(key)
1521
+ return super().__getitem__(key)
1522
+
1523
+ def get(self, key: str, default = None) -> Any:
1524
+ JobTemplateConfig.__key_warning(key)
1525
+ return super().get(key, default)
1526
+
1527
+ def __init__(__self__, *,
1528
+ ad_breaks: Optional[Sequence['outputs.JobTemplateConfigAdBreak']] = None,
1529
+ edit_lists: Optional[Sequence['outputs.JobTemplateConfigEditList']] = None,
1530
+ elementary_streams: Optional[Sequence['outputs.JobTemplateConfigElementaryStream']] = None,
1531
+ encryptions: Optional[Sequence['outputs.JobTemplateConfigEncryption']] = None,
1532
+ inputs: Optional[Sequence['outputs.JobTemplateConfigInput']] = None,
1533
+ manifests: Optional[Sequence['outputs.JobTemplateConfigManifest']] = None,
1534
+ mux_streams: Optional[Sequence['outputs.JobTemplateConfigMuxStream']] = None,
1535
+ output: Optional['outputs.JobTemplateConfigOutput'] = None,
1536
+ overlays: Optional[Sequence['outputs.JobTemplateConfigOverlay']] = None,
1537
+ pubsub_destination: Optional['outputs.JobTemplateConfigPubsubDestination'] = None):
1538
+ """
1539
+ :param Sequence['JobTemplateConfigAdBreakArgs'] ad_breaks: Ad break.
1540
+ Structure is documented below.
1541
+ :param Sequence['JobTemplateConfigEditListArgs'] edit_lists: List of input assets stored in Cloud Storage.
1542
+ Structure is documented below.
1543
+ :param Sequence['JobTemplateConfigElementaryStreamArgs'] elementary_streams: List of input assets stored in Cloud Storage.
1544
+ Structure is documented below.
1545
+ :param Sequence['JobTemplateConfigEncryptionArgs'] encryptions: List of encryption configurations for the content.
1546
+ Structure is documented below.
1547
+ :param Sequence['JobTemplateConfigInputArgs'] inputs: List of input assets stored in Cloud Storage.
1548
+ Structure is documented below.
1549
+ :param Sequence['JobTemplateConfigManifestArgs'] manifests: Manifest configuration.
1550
+ Structure is documented below.
1551
+ :param Sequence['JobTemplateConfigMuxStreamArgs'] mux_streams: Multiplexing settings for output stream.
1552
+ Structure is documented below.
1553
+ :param 'JobTemplateConfigOutputArgs' output: Location of output file(s) in a Cloud Storage bucket.
1554
+ Structure is documented below.
1555
+ :param Sequence['JobTemplateConfigOverlayArgs'] overlays: List of overlays on the output video, in descending Z-order.
1556
+ Structure is documented below.
1557
+ :param 'JobTemplateConfigPubsubDestinationArgs' pubsub_destination: Pub/Sub destination.
1558
+ Structure is documented below.
1559
+ """
1560
+ if ad_breaks is not None:
1561
+ pulumi.set(__self__, "ad_breaks", ad_breaks)
1562
+ if edit_lists is not None:
1563
+ pulumi.set(__self__, "edit_lists", edit_lists)
1564
+ if elementary_streams is not None:
1565
+ pulumi.set(__self__, "elementary_streams", elementary_streams)
1566
+ if encryptions is not None:
1567
+ pulumi.set(__self__, "encryptions", encryptions)
1568
+ if inputs is not None:
1569
+ pulumi.set(__self__, "inputs", inputs)
1570
+ if manifests is not None:
1571
+ pulumi.set(__self__, "manifests", manifests)
1572
+ if mux_streams is not None:
1573
+ pulumi.set(__self__, "mux_streams", mux_streams)
1574
+ if output is not None:
1575
+ pulumi.set(__self__, "output", output)
1576
+ if overlays is not None:
1577
+ pulumi.set(__self__, "overlays", overlays)
1578
+ if pubsub_destination is not None:
1579
+ pulumi.set(__self__, "pubsub_destination", pubsub_destination)
1580
+
1581
+ @property
1582
+ @pulumi.getter(name="adBreaks")
1583
+ def ad_breaks(self) -> Optional[Sequence['outputs.JobTemplateConfigAdBreak']]:
1584
+ """
1585
+ Ad break.
1586
+ Structure is documented below.
1587
+ """
1588
+ return pulumi.get(self, "ad_breaks")
1589
+
1590
+ @property
1591
+ @pulumi.getter(name="editLists")
1592
+ def edit_lists(self) -> Optional[Sequence['outputs.JobTemplateConfigEditList']]:
1593
+ """
1594
+ List of input assets stored in Cloud Storage.
1595
+ Structure is documented below.
1596
+ """
1597
+ return pulumi.get(self, "edit_lists")
1598
+
1599
+ @property
1600
+ @pulumi.getter(name="elementaryStreams")
1601
+ def elementary_streams(self) -> Optional[Sequence['outputs.JobTemplateConfigElementaryStream']]:
1602
+ """
1603
+ List of input assets stored in Cloud Storage.
1604
+ Structure is documented below.
1605
+ """
1606
+ return pulumi.get(self, "elementary_streams")
1607
+
1608
+ @property
1609
+ @pulumi.getter
1610
+ def encryptions(self) -> Optional[Sequence['outputs.JobTemplateConfigEncryption']]:
1611
+ """
1612
+ List of encryption configurations for the content.
1613
+ Structure is documented below.
1614
+ """
1615
+ return pulumi.get(self, "encryptions")
1616
+
1617
+ @property
1618
+ @pulumi.getter
1619
+ def inputs(self) -> Optional[Sequence['outputs.JobTemplateConfigInput']]:
1620
+ """
1621
+ List of input assets stored in Cloud Storage.
1622
+ Structure is documented below.
1623
+ """
1624
+ return pulumi.get(self, "inputs")
1625
+
1626
+ @property
1627
+ @pulumi.getter
1628
+ def manifests(self) -> Optional[Sequence['outputs.JobTemplateConfigManifest']]:
1629
+ """
1630
+ Manifest configuration.
1631
+ Structure is documented below.
1632
+ """
1633
+ return pulumi.get(self, "manifests")
1634
+
1635
+ @property
1636
+ @pulumi.getter(name="muxStreams")
1637
+ def mux_streams(self) -> Optional[Sequence['outputs.JobTemplateConfigMuxStream']]:
1638
+ """
1639
+ Multiplexing settings for output stream.
1640
+ Structure is documented below.
1641
+ """
1642
+ return pulumi.get(self, "mux_streams")
1643
+
1644
+ @property
1645
+ @pulumi.getter
1646
+ def output(self) -> Optional['outputs.JobTemplateConfigOutput']:
1647
+ """
1648
+ Location of output file(s) in a Cloud Storage bucket.
1649
+ Structure is documented below.
1650
+ """
1651
+ return pulumi.get(self, "output")
1652
+
1653
+ @property
1654
+ @pulumi.getter
1655
+ def overlays(self) -> Optional[Sequence['outputs.JobTemplateConfigOverlay']]:
1656
+ """
1657
+ List of overlays on the output video, in descending Z-order.
1658
+ Structure is documented below.
1659
+ """
1660
+ return pulumi.get(self, "overlays")
1661
+
1662
+ @property
1663
+ @pulumi.getter(name="pubsubDestination")
1664
+ def pubsub_destination(self) -> Optional['outputs.JobTemplateConfigPubsubDestination']:
1665
+ """
1666
+ Pub/Sub destination.
1667
+ Structure is documented below.
1668
+ """
1669
+ return pulumi.get(self, "pubsub_destination")
1670
+
1671
+
1672
+ @pulumi.output_type
1673
+ class JobTemplateConfigAdBreak(dict):
1674
+ @staticmethod
1675
+ def __key_warning(key: str):
1676
+ suggest = None
1677
+ if key == "startTimeOffset":
1678
+ suggest = "start_time_offset"
1679
+
1680
+ if suggest:
1681
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigAdBreak. Access the value via the '{suggest}' property getter instead.")
1682
+
1683
+ def __getitem__(self, key: str) -> Any:
1684
+ JobTemplateConfigAdBreak.__key_warning(key)
1685
+ return super().__getitem__(key)
1686
+
1687
+ def get(self, key: str, default = None) -> Any:
1688
+ JobTemplateConfigAdBreak.__key_warning(key)
1689
+ return super().get(key, default)
1690
+
1691
+ def __init__(__self__, *,
1692
+ start_time_offset: Optional[str] = None):
1693
+ """
1694
+ :param str start_time_offset: Start time in seconds for the ad break, relative to the output file timeline
1695
+ """
1696
+ if start_time_offset is not None:
1697
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
1698
+
1699
+ @property
1700
+ @pulumi.getter(name="startTimeOffset")
1701
+ def start_time_offset(self) -> Optional[str]:
1702
+ """
1703
+ Start time in seconds for the ad break, relative to the output file timeline
1704
+ """
1705
+ return pulumi.get(self, "start_time_offset")
1706
+
1707
+
1708
+ @pulumi.output_type
1709
+ class JobTemplateConfigEditList(dict):
1710
+ @staticmethod
1711
+ def __key_warning(key: str):
1712
+ suggest = None
1713
+ if key == "startTimeOffset":
1714
+ suggest = "start_time_offset"
1715
+
1716
+ if suggest:
1717
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigEditList. Access the value via the '{suggest}' property getter instead.")
1718
+
1719
+ def __getitem__(self, key: str) -> Any:
1720
+ JobTemplateConfigEditList.__key_warning(key)
1721
+ return super().__getitem__(key)
1722
+
1723
+ def get(self, key: str, default = None) -> Any:
1724
+ JobTemplateConfigEditList.__key_warning(key)
1725
+ return super().get(key, default)
1726
+
1727
+ def __init__(__self__, *,
1728
+ inputs: Optional[Sequence[str]] = None,
1729
+ key: Optional[str] = None,
1730
+ start_time_offset: Optional[str] = None):
1731
+ """
1732
+ :param Sequence[str] inputs: List of values identifying files that should be used in this atom.
1733
+ :param str key: A unique key for this atom.
1734
+ :param str start_time_offset: Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.
1735
+ """
1736
+ if inputs is not None:
1737
+ pulumi.set(__self__, "inputs", inputs)
1738
+ if key is not None:
1739
+ pulumi.set(__self__, "key", key)
1740
+ if start_time_offset is not None:
1741
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
1742
+
1743
+ @property
1744
+ @pulumi.getter
1745
+ def inputs(self) -> Optional[Sequence[str]]:
1746
+ """
1747
+ List of values identifying files that should be used in this atom.
1748
+ """
1749
+ return pulumi.get(self, "inputs")
1750
+
1751
+ @property
1752
+ @pulumi.getter
1753
+ def key(self) -> Optional[str]:
1754
+ """
1755
+ A unique key for this atom.
1756
+ """
1757
+ return pulumi.get(self, "key")
1758
+
1759
+ @property
1760
+ @pulumi.getter(name="startTimeOffset")
1761
+ def start_time_offset(self) -> Optional[str]:
1762
+ """
1763
+ Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.
1764
+ """
1765
+ return pulumi.get(self, "start_time_offset")
1766
+
1767
+
1768
+ @pulumi.output_type
1769
+ class JobTemplateConfigElementaryStream(dict):
1770
+ @staticmethod
1771
+ def __key_warning(key: str):
1772
+ suggest = None
1773
+ if key == "audioStream":
1774
+ suggest = "audio_stream"
1775
+ elif key == "videoStream":
1776
+ suggest = "video_stream"
1777
+
1778
+ if suggest:
1779
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigElementaryStream. Access the value via the '{suggest}' property getter instead.")
1780
+
1781
+ def __getitem__(self, key: str) -> Any:
1782
+ JobTemplateConfigElementaryStream.__key_warning(key)
1783
+ return super().__getitem__(key)
1784
+
1785
+ def get(self, key: str, default = None) -> Any:
1786
+ JobTemplateConfigElementaryStream.__key_warning(key)
1787
+ return super().get(key, default)
1788
+
1789
+ def __init__(__self__, *,
1790
+ audio_stream: Optional['outputs.JobTemplateConfigElementaryStreamAudioStream'] = None,
1791
+ key: Optional[str] = None,
1792
+ video_stream: Optional['outputs.JobTemplateConfigElementaryStreamVideoStream'] = None):
1793
+ """
1794
+ :param 'JobTemplateConfigElementaryStreamAudioStreamArgs' audio_stream: Encoding of an audio stream.
1795
+ Structure is documented below.
1796
+ :param str key: A unique key for this atom.
1797
+ :param 'JobTemplateConfigElementaryStreamVideoStreamArgs' video_stream: Encoding of a video stream.
1798
+ Structure is documented below.
1799
+ """
1800
+ if audio_stream is not None:
1801
+ pulumi.set(__self__, "audio_stream", audio_stream)
1802
+ if key is not None:
1803
+ pulumi.set(__self__, "key", key)
1804
+ if video_stream is not None:
1805
+ pulumi.set(__self__, "video_stream", video_stream)
1806
+
1807
+ @property
1808
+ @pulumi.getter(name="audioStream")
1809
+ def audio_stream(self) -> Optional['outputs.JobTemplateConfigElementaryStreamAudioStream']:
1810
+ """
1811
+ Encoding of an audio stream.
1812
+ Structure is documented below.
1813
+ """
1814
+ return pulumi.get(self, "audio_stream")
1815
+
1816
+ @property
1817
+ @pulumi.getter
1818
+ def key(self) -> Optional[str]:
1819
+ """
1820
+ A unique key for this atom.
1821
+ """
1822
+ return pulumi.get(self, "key")
1823
+
1824
+ @property
1825
+ @pulumi.getter(name="videoStream")
1826
+ def video_stream(self) -> Optional['outputs.JobTemplateConfigElementaryStreamVideoStream']:
1827
+ """
1828
+ Encoding of a video stream.
1829
+ Structure is documented below.
1830
+ """
1831
+ return pulumi.get(self, "video_stream")
1832
+
1833
+
1834
+ @pulumi.output_type
1835
+ class JobTemplateConfigElementaryStreamAudioStream(dict):
1836
+ @staticmethod
1837
+ def __key_warning(key: str):
1838
+ suggest = None
1839
+ if key == "bitrateBps":
1840
+ suggest = "bitrate_bps"
1841
+ elif key == "channelCount":
1842
+ suggest = "channel_count"
1843
+ elif key == "channelLayouts":
1844
+ suggest = "channel_layouts"
1845
+ elif key == "sampleRateHertz":
1846
+ suggest = "sample_rate_hertz"
1847
+
1848
+ if suggest:
1849
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigElementaryStreamAudioStream. Access the value via the '{suggest}' property getter instead.")
1850
+
1851
+ def __getitem__(self, key: str) -> Any:
1852
+ JobTemplateConfigElementaryStreamAudioStream.__key_warning(key)
1853
+ return super().__getitem__(key)
1854
+
1855
+ def get(self, key: str, default = None) -> Any:
1856
+ JobTemplateConfigElementaryStreamAudioStream.__key_warning(key)
1857
+ return super().get(key, default)
1858
+
1859
+ def __init__(__self__, *,
1860
+ bitrate_bps: int,
1861
+ channel_count: Optional[int] = None,
1862
+ channel_layouts: Optional[Sequence[str]] = None,
1863
+ codec: Optional[str] = None,
1864
+ sample_rate_hertz: Optional[int] = None):
1865
+ """
1866
+ :param int bitrate_bps: Audio bitrate in bits per second.
1867
+ :param int channel_count: Number of audio channels. The default is `2`.
1868
+ :param Sequence[str] channel_layouts: A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
1869
+ :param str codec: The codec for this audio stream. The default is `aac`.
1870
+ :param int sample_rate_hertz: The audio sample rate in Hertz. The default is `48000`.
1871
+ """
1872
+ pulumi.set(__self__, "bitrate_bps", bitrate_bps)
1873
+ if channel_count is not None:
1874
+ pulumi.set(__self__, "channel_count", channel_count)
1875
+ if channel_layouts is not None:
1876
+ pulumi.set(__self__, "channel_layouts", channel_layouts)
1877
+ if codec is not None:
1878
+ pulumi.set(__self__, "codec", codec)
1879
+ if sample_rate_hertz is not None:
1880
+ pulumi.set(__self__, "sample_rate_hertz", sample_rate_hertz)
1881
+
1882
+ @property
1883
+ @pulumi.getter(name="bitrateBps")
1884
+ def bitrate_bps(self) -> int:
1885
+ """
1886
+ Audio bitrate in bits per second.
1887
+ """
1888
+ return pulumi.get(self, "bitrate_bps")
1889
+
1890
+ @property
1891
+ @pulumi.getter(name="channelCount")
1892
+ def channel_count(self) -> Optional[int]:
1893
+ """
1894
+ Number of audio channels. The default is `2`.
1895
+ """
1896
+ return pulumi.get(self, "channel_count")
1897
+
1898
+ @property
1899
+ @pulumi.getter(name="channelLayouts")
1900
+ def channel_layouts(self) -> Optional[Sequence[str]]:
1901
+ """
1902
+ A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
1903
+ """
1904
+ return pulumi.get(self, "channel_layouts")
1905
+
1906
+ @property
1907
+ @pulumi.getter
1908
+ def codec(self) -> Optional[str]:
1909
+ """
1910
+ The codec for this audio stream. The default is `aac`.
1911
+ """
1912
+ return pulumi.get(self, "codec")
1913
+
1914
+ @property
1915
+ @pulumi.getter(name="sampleRateHertz")
1916
+ def sample_rate_hertz(self) -> Optional[int]:
1917
+ """
1918
+ The audio sample rate in Hertz. The default is `48000`.
1919
+ """
1920
+ return pulumi.get(self, "sample_rate_hertz")
1921
+
1922
+
1923
+ @pulumi.output_type
1924
+ class JobTemplateConfigElementaryStreamVideoStream(dict):
1925
+ def __init__(__self__, *,
1926
+ h264: Optional['outputs.JobTemplateConfigElementaryStreamVideoStreamH264'] = None):
1927
+ """
1928
+ :param 'JobTemplateConfigElementaryStreamVideoStreamH264Args' h264: H264 codec settings
1929
+ Structure is documented below.
1930
+
1931
+
1932
+ <a name="nested_h264"></a>The `h264` block supports:
1933
+ """
1934
+ if h264 is not None:
1935
+ pulumi.set(__self__, "h264", h264)
1936
+
1937
+ @property
1938
+ @pulumi.getter
1939
+ def h264(self) -> Optional['outputs.JobTemplateConfigElementaryStreamVideoStreamH264']:
1940
+ """
1941
+ H264 codec settings
1942
+ Structure is documented below.
1943
+
1944
+
1945
+ <a name="nested_h264"></a>The `h264` block supports:
1946
+ """
1947
+ return pulumi.get(self, "h264")
1948
+
1949
+
1950
+ @pulumi.output_type
1951
+ class JobTemplateConfigElementaryStreamVideoStreamH264(dict):
1952
+ @staticmethod
1953
+ def __key_warning(key: str):
1954
+ suggest = None
1955
+ if key == "bitrateBps":
1956
+ suggest = "bitrate_bps"
1957
+ elif key == "frameRate":
1958
+ suggest = "frame_rate"
1959
+ elif key == "crfLevel":
1960
+ suggest = "crf_level"
1961
+ elif key == "entropyCoder":
1962
+ suggest = "entropy_coder"
1963
+ elif key == "gopDuration":
1964
+ suggest = "gop_duration"
1965
+ elif key == "heightPixels":
1966
+ suggest = "height_pixels"
1967
+ elif key == "pixelFormat":
1968
+ suggest = "pixel_format"
1969
+ elif key == "rateControlMode":
1970
+ suggest = "rate_control_mode"
1971
+ elif key == "vbvFullnessBits":
1972
+ suggest = "vbv_fullness_bits"
1973
+ elif key == "vbvSizeBits":
1974
+ suggest = "vbv_size_bits"
1975
+ elif key == "widthPixels":
1976
+ suggest = "width_pixels"
1977
+
1978
+ if suggest:
1979
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigElementaryStreamVideoStreamH264. Access the value via the '{suggest}' property getter instead.")
1980
+
1981
+ def __getitem__(self, key: str) -> Any:
1982
+ JobTemplateConfigElementaryStreamVideoStreamH264.__key_warning(key)
1983
+ return super().__getitem__(key)
1984
+
1985
+ def get(self, key: str, default = None) -> Any:
1986
+ JobTemplateConfigElementaryStreamVideoStreamH264.__key_warning(key)
1987
+ return super().get(key, default)
1988
+
1989
+ def __init__(__self__, *,
1990
+ bitrate_bps: int,
1991
+ frame_rate: int,
1992
+ crf_level: Optional[int] = None,
1993
+ entropy_coder: Optional[str] = None,
1994
+ gop_duration: Optional[str] = None,
1995
+ height_pixels: Optional[int] = None,
1996
+ hlg: Optional['outputs.JobTemplateConfigElementaryStreamVideoStreamH264Hlg'] = None,
1997
+ pixel_format: Optional[str] = None,
1998
+ preset: Optional[str] = None,
1999
+ profile: Optional[str] = None,
2000
+ rate_control_mode: Optional[str] = None,
2001
+ sdr: Optional['outputs.JobTemplateConfigElementaryStreamVideoStreamH264Sdr'] = None,
2002
+ vbv_fullness_bits: Optional[int] = None,
2003
+ vbv_size_bits: Optional[int] = None,
2004
+ width_pixels: Optional[int] = None):
2005
+ """
2006
+ :param int bitrate_bps: The video bitrate in bits per second.
2007
+ :param int frame_rate: The target video frame rate in frames per second (FPS).
2008
+ :param int crf_level: Target CRF level. The default is '21'.
2009
+ :param str entropy_coder: The entropy coder to use. The default is 'cabac'.
2010
+ :param str gop_duration: Select the GOP size based on the specified duration. The default is '3s'.
2011
+ :param int height_pixels: The height of the video in pixels.
2012
+ :param 'JobTemplateConfigElementaryStreamVideoStreamH264HlgArgs' hlg: HLG color format setting for H264.
2013
+ :param str pixel_format: Pixel format to use. The default is 'yuv420p'.
2014
+ :param str preset: Enforces the specified codec preset. The default is 'veryfast'.
2015
+ :param str profile: Enforces the specified codec profile.
2016
+ :param str rate_control_mode: Specify the mode. The default is 'vbr'.
2017
+ :param 'JobTemplateConfigElementaryStreamVideoStreamH264SdrArgs' sdr: SDR color format setting for H264.
2018
+ :param int vbv_fullness_bits: Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
2019
+ :param int vbv_size_bits: Size of the Video Buffering Verifier (VBV) buffer in bits.
2020
+ :param int width_pixels: The width of the video in pixels.
2021
+ """
2022
+ pulumi.set(__self__, "bitrate_bps", bitrate_bps)
2023
+ pulumi.set(__self__, "frame_rate", frame_rate)
2024
+ if crf_level is not None:
2025
+ pulumi.set(__self__, "crf_level", crf_level)
2026
+ if entropy_coder is not None:
2027
+ pulumi.set(__self__, "entropy_coder", entropy_coder)
2028
+ if gop_duration is not None:
2029
+ pulumi.set(__self__, "gop_duration", gop_duration)
2030
+ if height_pixels is not None:
2031
+ pulumi.set(__self__, "height_pixels", height_pixels)
2032
+ if hlg is not None:
2033
+ pulumi.set(__self__, "hlg", hlg)
2034
+ if pixel_format is not None:
2035
+ pulumi.set(__self__, "pixel_format", pixel_format)
2036
+ if preset is not None:
2037
+ pulumi.set(__self__, "preset", preset)
2038
+ if profile is not None:
2039
+ pulumi.set(__self__, "profile", profile)
2040
+ if rate_control_mode is not None:
2041
+ pulumi.set(__self__, "rate_control_mode", rate_control_mode)
2042
+ if sdr is not None:
2043
+ pulumi.set(__self__, "sdr", sdr)
2044
+ if vbv_fullness_bits is not None:
2045
+ pulumi.set(__self__, "vbv_fullness_bits", vbv_fullness_bits)
2046
+ if vbv_size_bits is not None:
2047
+ pulumi.set(__self__, "vbv_size_bits", vbv_size_bits)
2048
+ if width_pixels is not None:
2049
+ pulumi.set(__self__, "width_pixels", width_pixels)
2050
+
2051
+ @property
2052
+ @pulumi.getter(name="bitrateBps")
2053
+ def bitrate_bps(self) -> int:
2054
+ """
2055
+ The video bitrate in bits per second.
2056
+ """
2057
+ return pulumi.get(self, "bitrate_bps")
2058
+
2059
+ @property
2060
+ @pulumi.getter(name="frameRate")
2061
+ def frame_rate(self) -> int:
2062
+ """
2063
+ The target video frame rate in frames per second (FPS).
2064
+ """
2065
+ return pulumi.get(self, "frame_rate")
2066
+
2067
+ @property
2068
+ @pulumi.getter(name="crfLevel")
2069
+ def crf_level(self) -> Optional[int]:
2070
+ """
2071
+ Target CRF level. The default is '21'.
2072
+ """
2073
+ return pulumi.get(self, "crf_level")
2074
+
2075
+ @property
2076
+ @pulumi.getter(name="entropyCoder")
2077
+ def entropy_coder(self) -> Optional[str]:
2078
+ """
2079
+ The entropy coder to use. The default is 'cabac'.
2080
+ """
2081
+ return pulumi.get(self, "entropy_coder")
2082
+
2083
+ @property
2084
+ @pulumi.getter(name="gopDuration")
2085
+ def gop_duration(self) -> Optional[str]:
2086
+ """
2087
+ Select the GOP size based on the specified duration. The default is '3s'.
2088
+ """
2089
+ return pulumi.get(self, "gop_duration")
2090
+
2091
+ @property
2092
+ @pulumi.getter(name="heightPixels")
2093
+ def height_pixels(self) -> Optional[int]:
2094
+ """
2095
+ The height of the video in pixels.
2096
+ """
2097
+ return pulumi.get(self, "height_pixels")
2098
+
2099
+ @property
2100
+ @pulumi.getter
2101
+ def hlg(self) -> Optional['outputs.JobTemplateConfigElementaryStreamVideoStreamH264Hlg']:
2102
+ """
2103
+ HLG color format setting for H264.
2104
+ """
2105
+ return pulumi.get(self, "hlg")
2106
+
2107
+ @property
2108
+ @pulumi.getter(name="pixelFormat")
2109
+ def pixel_format(self) -> Optional[str]:
2110
+ """
2111
+ Pixel format to use. The default is 'yuv420p'.
2112
+ """
2113
+ return pulumi.get(self, "pixel_format")
2114
+
2115
+ @property
2116
+ @pulumi.getter
2117
+ def preset(self) -> Optional[str]:
2118
+ """
2119
+ Enforces the specified codec preset. The default is 'veryfast'.
2120
+ """
2121
+ return pulumi.get(self, "preset")
2122
+
2123
+ @property
2124
+ @pulumi.getter
2125
+ def profile(self) -> Optional[str]:
2126
+ """
2127
+ Enforces the specified codec profile.
2128
+ """
2129
+ return pulumi.get(self, "profile")
2130
+
2131
+ @property
2132
+ @pulumi.getter(name="rateControlMode")
2133
+ def rate_control_mode(self) -> Optional[str]:
2134
+ """
2135
+ Specify the mode. The default is 'vbr'.
2136
+ """
2137
+ return pulumi.get(self, "rate_control_mode")
2138
+
2139
+ @property
2140
+ @pulumi.getter
2141
+ def sdr(self) -> Optional['outputs.JobTemplateConfigElementaryStreamVideoStreamH264Sdr']:
2142
+ """
2143
+ SDR color format setting for H264.
2144
+ """
2145
+ return pulumi.get(self, "sdr")
2146
+
2147
+ @property
2148
+ @pulumi.getter(name="vbvFullnessBits")
2149
+ def vbv_fullness_bits(self) -> Optional[int]:
2150
+ """
2151
+ Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
2152
+ """
2153
+ return pulumi.get(self, "vbv_fullness_bits")
2154
+
2155
+ @property
2156
+ @pulumi.getter(name="vbvSizeBits")
2157
+ def vbv_size_bits(self) -> Optional[int]:
2158
+ """
2159
+ Size of the Video Buffering Verifier (VBV) buffer in bits.
2160
+ """
2161
+ return pulumi.get(self, "vbv_size_bits")
2162
+
2163
+ @property
2164
+ @pulumi.getter(name="widthPixels")
2165
+ def width_pixels(self) -> Optional[int]:
2166
+ """
2167
+ The width of the video in pixels.
2168
+ """
2169
+ return pulumi.get(self, "width_pixels")
2170
+
2171
+
2172
+ @pulumi.output_type
2173
+ class JobTemplateConfigElementaryStreamVideoStreamH264Hlg(dict):
2174
+ def __init__(__self__):
2175
+ pass
2176
+
2177
+
2178
+ @pulumi.output_type
2179
+ class JobTemplateConfigElementaryStreamVideoStreamH264Sdr(dict):
2180
+ def __init__(__self__):
2181
+ pass
2182
+
2183
+
2184
+ @pulumi.output_type
2185
+ class JobTemplateConfigEncryption(dict):
2186
+ @staticmethod
2187
+ def __key_warning(key: str):
2188
+ suggest = None
2189
+ if key == "drmSystems":
2190
+ suggest = "drm_systems"
2191
+ elif key == "mpegCenc":
2192
+ suggest = "mpeg_cenc"
2193
+ elif key == "sampleAes":
2194
+ suggest = "sample_aes"
2195
+ elif key == "secretManagerKeySource":
2196
+ suggest = "secret_manager_key_source"
2197
+
2198
+ if suggest:
2199
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigEncryption. Access the value via the '{suggest}' property getter instead.")
2200
+
2201
+ def __getitem__(self, key: str) -> Any:
2202
+ JobTemplateConfigEncryption.__key_warning(key)
2203
+ return super().__getitem__(key)
2204
+
2205
+ def get(self, key: str, default = None) -> Any:
2206
+ JobTemplateConfigEncryption.__key_warning(key)
2207
+ return super().get(key, default)
2208
+
2209
+ def __init__(__self__, *,
2210
+ id: str,
2211
+ aes128: Optional['outputs.JobTemplateConfigEncryptionAes128'] = None,
2212
+ drm_systems: Optional['outputs.JobTemplateConfigEncryptionDrmSystems'] = None,
2213
+ mpeg_cenc: Optional['outputs.JobTemplateConfigEncryptionMpegCenc'] = None,
2214
+ sample_aes: Optional['outputs.JobTemplateConfigEncryptionSampleAes'] = None,
2215
+ secret_manager_key_source: Optional['outputs.JobTemplateConfigEncryptionSecretManagerKeySource'] = None):
2216
+ """
2217
+ :param str id: Identifier for this set of encryption options.
2218
+ :param 'JobTemplateConfigEncryptionAes128Args' aes128: Configuration for AES-128 encryption.
2219
+ :param 'JobTemplateConfigEncryptionDrmSystemsArgs' drm_systems: DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled.
2220
+ Structure is documented below.
2221
+ :param 'JobTemplateConfigEncryptionMpegCencArgs' mpeg_cenc: Configuration for MPEG Common Encryption (MPEG-CENC).
2222
+ Structure is documented below.
2223
+ :param 'JobTemplateConfigEncryptionSampleAesArgs' sample_aes: Configuration for SAMPLE-AES encryption.
2224
+ :param 'JobTemplateConfigEncryptionSecretManagerKeySourceArgs' secret_manager_key_source: Configuration for secrets stored in Google Secret Manager.
2225
+ Structure is documented below.
2226
+ """
2227
+ pulumi.set(__self__, "id", id)
2228
+ if aes128 is not None:
2229
+ pulumi.set(__self__, "aes128", aes128)
2230
+ if drm_systems is not None:
2231
+ pulumi.set(__self__, "drm_systems", drm_systems)
2232
+ if mpeg_cenc is not None:
2233
+ pulumi.set(__self__, "mpeg_cenc", mpeg_cenc)
2234
+ if sample_aes is not None:
2235
+ pulumi.set(__self__, "sample_aes", sample_aes)
2236
+ if secret_manager_key_source is not None:
2237
+ pulumi.set(__self__, "secret_manager_key_source", secret_manager_key_source)
2238
+
2239
+ @property
2240
+ @pulumi.getter
2241
+ def id(self) -> str:
2242
+ """
2243
+ Identifier for this set of encryption options.
2244
+ """
2245
+ return pulumi.get(self, "id")
2246
+
2247
+ @property
2248
+ @pulumi.getter
2249
+ def aes128(self) -> Optional['outputs.JobTemplateConfigEncryptionAes128']:
2250
+ """
2251
+ Configuration for AES-128 encryption.
2252
+ """
2253
+ return pulumi.get(self, "aes128")
2254
+
2255
+ @property
2256
+ @pulumi.getter(name="drmSystems")
2257
+ def drm_systems(self) -> Optional['outputs.JobTemplateConfigEncryptionDrmSystems']:
2258
+ """
2259
+ DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled.
2260
+ Structure is documented below.
2261
+ """
2262
+ return pulumi.get(self, "drm_systems")
2263
+
2264
+ @property
2265
+ @pulumi.getter(name="mpegCenc")
2266
+ def mpeg_cenc(self) -> Optional['outputs.JobTemplateConfigEncryptionMpegCenc']:
2267
+ """
2268
+ Configuration for MPEG Common Encryption (MPEG-CENC).
2269
+ Structure is documented below.
2270
+ """
2271
+ return pulumi.get(self, "mpeg_cenc")
2272
+
2273
+ @property
2274
+ @pulumi.getter(name="sampleAes")
2275
+ def sample_aes(self) -> Optional['outputs.JobTemplateConfigEncryptionSampleAes']:
2276
+ """
2277
+ Configuration for SAMPLE-AES encryption.
2278
+ """
2279
+ return pulumi.get(self, "sample_aes")
2280
+
2281
+ @property
2282
+ @pulumi.getter(name="secretManagerKeySource")
2283
+ def secret_manager_key_source(self) -> Optional['outputs.JobTemplateConfigEncryptionSecretManagerKeySource']:
2284
+ """
2285
+ Configuration for secrets stored in Google Secret Manager.
2286
+ Structure is documented below.
2287
+ """
2288
+ return pulumi.get(self, "secret_manager_key_source")
2289
+
2290
+
2291
+ @pulumi.output_type
2292
+ class JobTemplateConfigEncryptionAes128(dict):
2293
+ def __init__(__self__):
2294
+ pass
2295
+
2296
+
2297
+ @pulumi.output_type
2298
+ class JobTemplateConfigEncryptionDrmSystems(dict):
2299
+ def __init__(__self__, *,
2300
+ clearkey: Optional['outputs.JobTemplateConfigEncryptionDrmSystemsClearkey'] = None,
2301
+ fairplay: Optional['outputs.JobTemplateConfigEncryptionDrmSystemsFairplay'] = None,
2302
+ playready: Optional['outputs.JobTemplateConfigEncryptionDrmSystemsPlayready'] = None,
2303
+ widevine: Optional['outputs.JobTemplateConfigEncryptionDrmSystemsWidevine'] = None):
2304
+ """
2305
+ :param 'JobTemplateConfigEncryptionDrmSystemsClearkeyArgs' clearkey: Clearkey configuration.
2306
+ :param 'JobTemplateConfigEncryptionDrmSystemsFairplayArgs' fairplay: Fairplay configuration.
2307
+ :param 'JobTemplateConfigEncryptionDrmSystemsPlayreadyArgs' playready: Playready configuration.
2308
+ :param 'JobTemplateConfigEncryptionDrmSystemsWidevineArgs' widevine: Widevine configuration.
2309
+ """
2310
+ if clearkey is not None:
2311
+ pulumi.set(__self__, "clearkey", clearkey)
2312
+ if fairplay is not None:
2313
+ pulumi.set(__self__, "fairplay", fairplay)
2314
+ if playready is not None:
2315
+ pulumi.set(__self__, "playready", playready)
2316
+ if widevine is not None:
2317
+ pulumi.set(__self__, "widevine", widevine)
2318
+
2319
+ @property
2320
+ @pulumi.getter
2321
+ def clearkey(self) -> Optional['outputs.JobTemplateConfigEncryptionDrmSystemsClearkey']:
2322
+ """
2323
+ Clearkey configuration.
2324
+ """
2325
+ return pulumi.get(self, "clearkey")
2326
+
2327
+ @property
2328
+ @pulumi.getter
2329
+ def fairplay(self) -> Optional['outputs.JobTemplateConfigEncryptionDrmSystemsFairplay']:
2330
+ """
2331
+ Fairplay configuration.
2332
+ """
2333
+ return pulumi.get(self, "fairplay")
2334
+
2335
+ @property
2336
+ @pulumi.getter
2337
+ def playready(self) -> Optional['outputs.JobTemplateConfigEncryptionDrmSystemsPlayready']:
2338
+ """
2339
+ Playready configuration.
2340
+ """
2341
+ return pulumi.get(self, "playready")
2342
+
2343
+ @property
2344
+ @pulumi.getter
2345
+ def widevine(self) -> Optional['outputs.JobTemplateConfigEncryptionDrmSystemsWidevine']:
2346
+ """
2347
+ Widevine configuration.
2348
+ """
2349
+ return pulumi.get(self, "widevine")
2350
+
2351
+
2352
+ @pulumi.output_type
2353
+ class JobTemplateConfigEncryptionDrmSystemsClearkey(dict):
2354
+ def __init__(__self__):
2355
+ pass
2356
+
2357
+
2358
+ @pulumi.output_type
2359
+ class JobTemplateConfigEncryptionDrmSystemsFairplay(dict):
2360
+ def __init__(__self__):
2361
+ pass
2362
+
2363
+
2364
+ @pulumi.output_type
2365
+ class JobTemplateConfigEncryptionDrmSystemsPlayready(dict):
2366
+ def __init__(__self__):
2367
+ pass
2368
+
2369
+
2370
+ @pulumi.output_type
2371
+ class JobTemplateConfigEncryptionDrmSystemsWidevine(dict):
2372
+ def __init__(__self__):
2373
+ pass
2374
+
2375
+
2376
+ @pulumi.output_type
2377
+ class JobTemplateConfigEncryptionMpegCenc(dict):
2378
+ def __init__(__self__, *,
2379
+ scheme: str):
2380
+ """
2381
+ :param str scheme: Specify the encryption scheme.
2382
+ """
2383
+ pulumi.set(__self__, "scheme", scheme)
2384
+
2385
+ @property
2386
+ @pulumi.getter
2387
+ def scheme(self) -> str:
2388
+ """
2389
+ Specify the encryption scheme.
2390
+ """
2391
+ return pulumi.get(self, "scheme")
2392
+
2393
+
2394
+ @pulumi.output_type
2395
+ class JobTemplateConfigEncryptionSampleAes(dict):
2396
+ def __init__(__self__):
2397
+ pass
2398
+
2399
+
2400
+ @pulumi.output_type
2401
+ class JobTemplateConfigEncryptionSecretManagerKeySource(dict):
2402
+ @staticmethod
2403
+ def __key_warning(key: str):
2404
+ suggest = None
2405
+ if key == "secretVersion":
2406
+ suggest = "secret_version"
2407
+
2408
+ if suggest:
2409
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigEncryptionSecretManagerKeySource. Access the value via the '{suggest}' property getter instead.")
2410
+
2411
+ def __getitem__(self, key: str) -> Any:
2412
+ JobTemplateConfigEncryptionSecretManagerKeySource.__key_warning(key)
2413
+ return super().__getitem__(key)
2414
+
2415
+ def get(self, key: str, default = None) -> Any:
2416
+ JobTemplateConfigEncryptionSecretManagerKeySource.__key_warning(key)
2417
+ return super().get(key, default)
2418
+
2419
+ def __init__(__self__, *,
2420
+ secret_version: str):
2421
+ """
2422
+ :param str secret_version: The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
2423
+ """
2424
+ pulumi.set(__self__, "secret_version", secret_version)
2425
+
2426
+ @property
2427
+ @pulumi.getter(name="secretVersion")
2428
+ def secret_version(self) -> str:
2429
+ """
2430
+ The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
2431
+ """
2432
+ return pulumi.get(self, "secret_version")
2433
+
2434
+
2435
+ @pulumi.output_type
2436
+ class JobTemplateConfigInput(dict):
2437
+ def __init__(__self__, *,
2438
+ key: Optional[str] = None,
2439
+ uri: Optional[str] = None):
2440
+ """
2441
+ :param str key: A unique key for this input. Must be specified when using advanced mapping and edit lists.
2442
+ :param str uri: URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, gs://bucket/inputs/file.mp4).
2443
+ If empty, the value is populated from Job.input_uri.
2444
+ """
2445
+ if key is not None:
2446
+ pulumi.set(__self__, "key", key)
2447
+ if uri is not None:
2448
+ pulumi.set(__self__, "uri", uri)
2449
+
2450
+ @property
2451
+ @pulumi.getter
2452
+ def key(self) -> Optional[str]:
2453
+ """
2454
+ A unique key for this input. Must be specified when using advanced mapping and edit lists.
2455
+ """
2456
+ return pulumi.get(self, "key")
2457
+
2458
+ @property
2459
+ @pulumi.getter
2460
+ def uri(self) -> Optional[str]:
2461
+ """
2462
+ URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, gs://bucket/inputs/file.mp4).
2463
+ If empty, the value is populated from Job.input_uri.
2464
+ """
2465
+ return pulumi.get(self, "uri")
2466
+
2467
+
2468
+ @pulumi.output_type
2469
+ class JobTemplateConfigManifest(dict):
2470
+ @staticmethod
2471
+ def __key_warning(key: str):
2472
+ suggest = None
2473
+ if key == "fileName":
2474
+ suggest = "file_name"
2475
+ elif key == "muxStreams":
2476
+ suggest = "mux_streams"
2477
+
2478
+ if suggest:
2479
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigManifest. Access the value via the '{suggest}' property getter instead.")
2480
+
2481
+ def __getitem__(self, key: str) -> Any:
2482
+ JobTemplateConfigManifest.__key_warning(key)
2483
+ return super().__getitem__(key)
2484
+
2485
+ def get(self, key: str, default = None) -> Any:
2486
+ JobTemplateConfigManifest.__key_warning(key)
2487
+ return super().get(key, default)
2488
+
2489
+ def __init__(__self__, *,
2490
+ file_name: Optional[str] = None,
2491
+ mux_streams: Optional[Sequence[str]] = None,
2492
+ type: Optional[str] = None):
2493
+ """
2494
+ :param str file_name: The name of the generated file. The default is `manifest`.
2495
+ :param Sequence[str] mux_streams: List of user supplied MuxStream.key values that should appear in this manifest.
2496
+ :param str type: Type of the manifest.
2497
+ Possible values are: `MANIFEST_TYPE_UNSPECIFIED`, `HLS`, `DASH`.
2498
+ """
2499
+ if file_name is not None:
2500
+ pulumi.set(__self__, "file_name", file_name)
2501
+ if mux_streams is not None:
2502
+ pulumi.set(__self__, "mux_streams", mux_streams)
2503
+ if type is not None:
2504
+ pulumi.set(__self__, "type", type)
2505
+
2506
+ @property
2507
+ @pulumi.getter(name="fileName")
2508
+ def file_name(self) -> Optional[str]:
2509
+ """
2510
+ The name of the generated file. The default is `manifest`.
2511
+ """
2512
+ return pulumi.get(self, "file_name")
2513
+
2514
+ @property
2515
+ @pulumi.getter(name="muxStreams")
2516
+ def mux_streams(self) -> Optional[Sequence[str]]:
2517
+ """
2518
+ List of user supplied MuxStream.key values that should appear in this manifest.
2519
+ """
2520
+ return pulumi.get(self, "mux_streams")
2521
+
2522
+ @property
2523
+ @pulumi.getter
2524
+ def type(self) -> Optional[str]:
2525
+ """
2526
+ Type of the manifest.
2527
+ Possible values are: `MANIFEST_TYPE_UNSPECIFIED`, `HLS`, `DASH`.
2528
+ """
2529
+ return pulumi.get(self, "type")
2530
+
2531
+
2532
+ @pulumi.output_type
2533
+ class JobTemplateConfigMuxStream(dict):
2534
+ @staticmethod
2535
+ def __key_warning(key: str):
2536
+ suggest = None
2537
+ if key == "elementaryStreams":
2538
+ suggest = "elementary_streams"
2539
+ elif key == "encryptionId":
2540
+ suggest = "encryption_id"
2541
+ elif key == "fileName":
2542
+ suggest = "file_name"
2543
+ elif key == "segmentSettings":
2544
+ suggest = "segment_settings"
2545
+
2546
+ if suggest:
2547
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigMuxStream. Access the value via the '{suggest}' property getter instead.")
2548
+
2549
+ def __getitem__(self, key: str) -> Any:
2550
+ JobTemplateConfigMuxStream.__key_warning(key)
2551
+ return super().__getitem__(key)
2552
+
2553
+ def get(self, key: str, default = None) -> Any:
2554
+ JobTemplateConfigMuxStream.__key_warning(key)
2555
+ return super().get(key, default)
2556
+
2557
+ def __init__(__self__, *,
2558
+ container: Optional[str] = None,
2559
+ elementary_streams: Optional[Sequence[str]] = None,
2560
+ encryption_id: Optional[str] = None,
2561
+ file_name: Optional[str] = None,
2562
+ key: Optional[str] = None,
2563
+ segment_settings: Optional['outputs.JobTemplateConfigMuxStreamSegmentSettings'] = None):
2564
+ """
2565
+ :param str container: The container format. The default is `mp4`.
2566
+ :param Sequence[str] elementary_streams: List of ElementaryStream.key values multiplexed in this stream.
2567
+ :param str encryption_id: Identifier of the encryption configuration to use.
2568
+ :param str file_name: The name of the generated file.
2569
+ :param str key: A unique key for this multiplexed stream.
2570
+ :param 'JobTemplateConfigMuxStreamSegmentSettingsArgs' segment_settings: Segment settings for ts, fmp4 and vtt.
2571
+ Structure is documented below.
2572
+ """
2573
+ if container is not None:
2574
+ pulumi.set(__self__, "container", container)
2575
+ if elementary_streams is not None:
2576
+ pulumi.set(__self__, "elementary_streams", elementary_streams)
2577
+ if encryption_id is not None:
2578
+ pulumi.set(__self__, "encryption_id", encryption_id)
2579
+ if file_name is not None:
2580
+ pulumi.set(__self__, "file_name", file_name)
2581
+ if key is not None:
2582
+ pulumi.set(__self__, "key", key)
2583
+ if segment_settings is not None:
2584
+ pulumi.set(__self__, "segment_settings", segment_settings)
2585
+
2586
+ @property
2587
+ @pulumi.getter
2588
+ def container(self) -> Optional[str]:
2589
+ """
2590
+ The container format. The default is `mp4`.
2591
+ """
2592
+ return pulumi.get(self, "container")
2593
+
2594
+ @property
2595
+ @pulumi.getter(name="elementaryStreams")
2596
+ def elementary_streams(self) -> Optional[Sequence[str]]:
2597
+ """
2598
+ List of ElementaryStream.key values multiplexed in this stream.
2599
+ """
2600
+ return pulumi.get(self, "elementary_streams")
2601
+
2602
+ @property
2603
+ @pulumi.getter(name="encryptionId")
2604
+ def encryption_id(self) -> Optional[str]:
2605
+ """
2606
+ Identifier of the encryption configuration to use.
2607
+ """
2608
+ return pulumi.get(self, "encryption_id")
2609
+
2610
+ @property
2611
+ @pulumi.getter(name="fileName")
2612
+ def file_name(self) -> Optional[str]:
2613
+ """
2614
+ The name of the generated file.
2615
+ """
2616
+ return pulumi.get(self, "file_name")
2617
+
2618
+ @property
2619
+ @pulumi.getter
2620
+ def key(self) -> Optional[str]:
2621
+ """
2622
+ A unique key for this multiplexed stream.
2623
+ """
2624
+ return pulumi.get(self, "key")
2625
+
2626
+ @property
2627
+ @pulumi.getter(name="segmentSettings")
2628
+ def segment_settings(self) -> Optional['outputs.JobTemplateConfigMuxStreamSegmentSettings']:
2629
+ """
2630
+ Segment settings for ts, fmp4 and vtt.
2631
+ Structure is documented below.
2632
+ """
2633
+ return pulumi.get(self, "segment_settings")
2634
+
2635
+
2636
+ @pulumi.output_type
2637
+ class JobTemplateConfigMuxStreamSegmentSettings(dict):
2638
+ @staticmethod
2639
+ def __key_warning(key: str):
2640
+ suggest = None
2641
+ if key == "segmentDuration":
2642
+ suggest = "segment_duration"
2643
+
2644
+ if suggest:
2645
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigMuxStreamSegmentSettings. Access the value via the '{suggest}' property getter instead.")
2646
+
2647
+ def __getitem__(self, key: str) -> Any:
2648
+ JobTemplateConfigMuxStreamSegmentSettings.__key_warning(key)
2649
+ return super().__getitem__(key)
2650
+
2651
+ def get(self, key: str, default = None) -> Any:
2652
+ JobTemplateConfigMuxStreamSegmentSettings.__key_warning(key)
2653
+ return super().get(key, default)
2654
+
2655
+ def __init__(__self__, *,
2656
+ segment_duration: Optional[str] = None):
2657
+ """
2658
+ :param str segment_duration: Duration of the segments in seconds. The default is `6.0s`.
2659
+ """
2660
+ if segment_duration is not None:
2661
+ pulumi.set(__self__, "segment_duration", segment_duration)
2662
+
2663
+ @property
2664
+ @pulumi.getter(name="segmentDuration")
2665
+ def segment_duration(self) -> Optional[str]:
2666
+ """
2667
+ Duration of the segments in seconds. The default is `6.0s`.
2668
+ """
2669
+ return pulumi.get(self, "segment_duration")
2670
+
2671
+
2672
+ @pulumi.output_type
2673
+ class JobTemplateConfigOutput(dict):
2674
+ def __init__(__self__, *,
2675
+ uri: Optional[str] = None):
2676
+ """
2677
+ :param str uri: URI for the output file(s). For example, gs://my-bucket/outputs/.
2678
+ """
2679
+ if uri is not None:
2680
+ pulumi.set(__self__, "uri", uri)
2681
+
2682
+ @property
2683
+ @pulumi.getter
2684
+ def uri(self) -> Optional[str]:
2685
+ """
2686
+ URI for the output file(s). For example, gs://my-bucket/outputs/.
2687
+ """
2688
+ return pulumi.get(self, "uri")
2689
+
2690
+
2691
+ @pulumi.output_type
2692
+ class JobTemplateConfigOverlay(dict):
2693
+ def __init__(__self__, *,
2694
+ animations: Optional[Sequence['outputs.JobTemplateConfigOverlayAnimation']] = None,
2695
+ image: Optional['outputs.JobTemplateConfigOverlayImage'] = None):
2696
+ """
2697
+ :param Sequence['JobTemplateConfigOverlayAnimationArgs'] animations: List of animations. The list should be chronological, without any time overlap.
2698
+ Structure is documented below.
2699
+ :param 'JobTemplateConfigOverlayImageArgs' image: Image overlay.
2700
+ Structure is documented below.
2701
+ """
2702
+ if animations is not None:
2703
+ pulumi.set(__self__, "animations", animations)
2704
+ if image is not None:
2705
+ pulumi.set(__self__, "image", image)
2706
+
2707
+ @property
2708
+ @pulumi.getter
2709
+ def animations(self) -> Optional[Sequence['outputs.JobTemplateConfigOverlayAnimation']]:
2710
+ """
2711
+ List of animations. The list should be chronological, without any time overlap.
2712
+ Structure is documented below.
2713
+ """
2714
+ return pulumi.get(self, "animations")
2715
+
2716
+ @property
2717
+ @pulumi.getter
2718
+ def image(self) -> Optional['outputs.JobTemplateConfigOverlayImage']:
2719
+ """
2720
+ Image overlay.
2721
+ Structure is documented below.
2722
+ """
2723
+ return pulumi.get(self, "image")
2724
+
2725
+
2726
+ @pulumi.output_type
2727
+ class JobTemplateConfigOverlayAnimation(dict):
2728
+ @staticmethod
2729
+ def __key_warning(key: str):
2730
+ suggest = None
2731
+ if key == "animationFade":
2732
+ suggest = "animation_fade"
2733
+
2734
+ if suggest:
2735
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigOverlayAnimation. Access the value via the '{suggest}' property getter instead.")
2736
+
2737
+ def __getitem__(self, key: str) -> Any:
2738
+ JobTemplateConfigOverlayAnimation.__key_warning(key)
2739
+ return super().__getitem__(key)
2740
+
2741
+ def get(self, key: str, default = None) -> Any:
2742
+ JobTemplateConfigOverlayAnimation.__key_warning(key)
2743
+ return super().get(key, default)
2744
+
2745
+ def __init__(__self__, *,
2746
+ animation_fade: Optional['outputs.JobTemplateConfigOverlayAnimationAnimationFade'] = None):
2747
+ """
2748
+ :param 'JobTemplateConfigOverlayAnimationAnimationFadeArgs' animation_fade: Display overlay object with fade animation.
2749
+ Structure is documented below.
2750
+ """
2751
+ if animation_fade is not None:
2752
+ pulumi.set(__self__, "animation_fade", animation_fade)
2753
+
2754
+ @property
2755
+ @pulumi.getter(name="animationFade")
2756
+ def animation_fade(self) -> Optional['outputs.JobTemplateConfigOverlayAnimationAnimationFade']:
2757
+ """
2758
+ Display overlay object with fade animation.
2759
+ Structure is documented below.
2760
+ """
2761
+ return pulumi.get(self, "animation_fade")
2762
+
2763
+
2764
+ @pulumi.output_type
2765
+ class JobTemplateConfigOverlayAnimationAnimationFade(dict):
2766
+ @staticmethod
2767
+ def __key_warning(key: str):
2768
+ suggest = None
2769
+ if key == "fadeType":
2770
+ suggest = "fade_type"
2771
+ elif key == "endTimeOffset":
2772
+ suggest = "end_time_offset"
2773
+ elif key == "startTimeOffset":
2774
+ suggest = "start_time_offset"
2775
+
2776
+ if suggest:
2777
+ pulumi.log.warn(f"Key '{key}' not found in JobTemplateConfigOverlayAnimationAnimationFade. Access the value via the '{suggest}' property getter instead.")
2778
+
2779
+ def __getitem__(self, key: str) -> Any:
2780
+ JobTemplateConfigOverlayAnimationAnimationFade.__key_warning(key)
2781
+ return super().__getitem__(key)
2782
+
2783
+ def get(self, key: str, default = None) -> Any:
2784
+ JobTemplateConfigOverlayAnimationAnimationFade.__key_warning(key)
2785
+ return super().get(key, default)
2786
+
2787
+ def __init__(__self__, *,
2788
+ fade_type: str,
2789
+ end_time_offset: Optional[str] = None,
2790
+ start_time_offset: Optional[str] = None,
2791
+ xy: Optional['outputs.JobTemplateConfigOverlayAnimationAnimationFadeXy'] = None):
2792
+ """
2793
+ :param str fade_type: Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
2794
+ The possible values are:
2795
+ * `FADE_TYPE_UNSPECIFIED`: The fade type is not specified.
2796
+ * `FADE_IN`: Fade the overlay object into view.
2797
+ * `FADE_OUT`: Fade the overlay object out of view.
2798
+ Possible values are: `FADE_TYPE_UNSPECIFIED`, `FADE_IN`, `FADE_OUT`.
2799
+ :param str end_time_offset: The time to end the fade animation, in seconds.
2800
+ :param str start_time_offset: The time to start the fade animation, in seconds.
2801
+ :param 'JobTemplateConfigOverlayAnimationAnimationFadeXyArgs' xy: Normalized coordinates based on output video resolution.
2802
+ Structure is documented below.
2803
+ """
2804
+ pulumi.set(__self__, "fade_type", fade_type)
2805
+ if end_time_offset is not None:
2806
+ pulumi.set(__self__, "end_time_offset", end_time_offset)
2807
+ if start_time_offset is not None:
2808
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
2809
+ if xy is not None:
2810
+ pulumi.set(__self__, "xy", xy)
2811
+
2812
+ @property
2813
+ @pulumi.getter(name="fadeType")
2814
+ def fade_type(self) -> str:
2815
+ """
2816
+ Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
2817
+ The possible values are:
2818
+ * `FADE_TYPE_UNSPECIFIED`: The fade type is not specified.
2819
+ * `FADE_IN`: Fade the overlay object into view.
2820
+ * `FADE_OUT`: Fade the overlay object out of view.
2821
+ Possible values are: `FADE_TYPE_UNSPECIFIED`, `FADE_IN`, `FADE_OUT`.
2822
+ """
2823
+ return pulumi.get(self, "fade_type")
2824
+
2825
+ @property
2826
+ @pulumi.getter(name="endTimeOffset")
2827
+ def end_time_offset(self) -> Optional[str]:
2828
+ """
2829
+ The time to end the fade animation, in seconds.
2830
+ """
2831
+ return pulumi.get(self, "end_time_offset")
2832
+
2833
+ @property
2834
+ @pulumi.getter(name="startTimeOffset")
2835
+ def start_time_offset(self) -> Optional[str]:
2836
+ """
2837
+ The time to start the fade animation, in seconds.
2838
+ """
2839
+ return pulumi.get(self, "start_time_offset")
2840
+
2841
+ @property
2842
+ @pulumi.getter
2843
+ def xy(self) -> Optional['outputs.JobTemplateConfigOverlayAnimationAnimationFadeXy']:
2844
+ """
2845
+ Normalized coordinates based on output video resolution.
2846
+ Structure is documented below.
2847
+ """
2848
+ return pulumi.get(self, "xy")
2849
+
2850
+
2851
+ @pulumi.output_type
2852
+ class JobTemplateConfigOverlayAnimationAnimationFadeXy(dict):
2853
+ def __init__(__self__, *,
2854
+ x: Optional[float] = None,
2855
+ y: Optional[float] = None):
2856
+ """
2857
+ :param float x: Normalized x coordinate.
2858
+ :param float y: Normalized y coordinate.
2859
+ """
2860
+ if x is not None:
2861
+ pulumi.set(__self__, "x", x)
2862
+ if y is not None:
2863
+ pulumi.set(__self__, "y", y)
2864
+
2865
+ @property
2866
+ @pulumi.getter
2867
+ def x(self) -> Optional[float]:
2868
+ """
2869
+ Normalized x coordinate.
2870
+ """
2871
+ return pulumi.get(self, "x")
2872
+
2873
+ @property
2874
+ @pulumi.getter
2875
+ def y(self) -> Optional[float]:
2876
+ """
2877
+ Normalized y coordinate.
2878
+ """
2879
+ return pulumi.get(self, "y")
2880
+
2881
+
2882
+ @pulumi.output_type
2883
+ class JobTemplateConfigOverlayImage(dict):
2884
+ def __init__(__self__, *,
2885
+ uri: str):
2886
+ """
2887
+ :param str uri: URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
2888
+ """
2889
+ pulumi.set(__self__, "uri", uri)
2890
+
2891
+ @property
2892
+ @pulumi.getter
2893
+ def uri(self) -> str:
2894
+ """
2895
+ URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
2896
+ """
2897
+ return pulumi.get(self, "uri")
2898
+
2899
+
2900
+ @pulumi.output_type
2901
+ class JobTemplateConfigPubsubDestination(dict):
2902
+ def __init__(__self__, *,
2903
+ topic: Optional[str] = None):
2904
+ """
2905
+ :param str topic: The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
2906
+ """
2907
+ if topic is not None:
2908
+ pulumi.set(__self__, "topic", topic)
2909
+
2910
+ @property
2911
+ @pulumi.getter
2912
+ def topic(self) -> Optional[str]:
2913
+ """
2914
+ The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
2915
+ """
2916
+ return pulumi.get(self, "topic")
2917
+
2918
+