pulumi-gcp 8.7.0__py3-none-any.whl → 8.7.0a1729200523__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 +0 -70
  2. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -2
  3. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +0 -4
  4. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +0 -4
  5. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +0 -4
  6. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +0 -4
  7. pulumi_gcp/accesscontextmanager/service_perimeters.py +0 -2
  8. pulumi_gcp/apigee/__init__.py +0 -2
  9. pulumi_gcp/apigee/_inputs.py +0 -108
  10. pulumi_gcp/apigee/outputs.py +0 -64
  11. pulumi_gcp/artifactregistry/get_docker_image.py +0 -40
  12. pulumi_gcp/bigquery/connection.py +12 -12
  13. pulumi_gcp/bigquery/job.py +6 -6
  14. pulumi_gcp/cloudrunv2/get_service.py +1 -12
  15. pulumi_gcp/cloudrunv2/service.py +0 -92
  16. pulumi_gcp/compute/_inputs.py +116 -214
  17. pulumi_gcp/compute/backend_service.py +0 -76
  18. pulumi_gcp/compute/get_backend_service.py +1 -12
  19. pulumi_gcp/compute/get_instance.py +1 -29
  20. pulumi_gcp/compute/get_instance_template.py +1 -29
  21. pulumi_gcp/compute/get_region_instance_group_manager.py +18 -0
  22. pulumi_gcp/compute/get_region_instance_template.py +1 -29
  23. pulumi_gcp/compute/instance.py +0 -89
  24. pulumi_gcp/compute/instance_from_machine_image.py +0 -82
  25. pulumi_gcp/compute/instance_from_template.py +0 -82
  26. pulumi_gcp/compute/instance_template.py +0 -75
  27. pulumi_gcp/compute/network_firewall_policy_association.py +50 -76
  28. pulumi_gcp/compute/network_firewall_policy_rule.py +103 -149
  29. pulumi_gcp/compute/outputs.py +80 -170
  30. pulumi_gcp/compute/region_backend_service.py +0 -94
  31. pulumi_gcp/compute/region_instance_template.py +0 -75
  32. pulumi_gcp/compute/region_network_endpoint_group.py +4 -6
  33. pulumi_gcp/compute/region_network_firewall_policy_association.py +54 -104
  34. pulumi_gcp/compute/region_network_firewall_policy_rule.py +107 -160
  35. pulumi_gcp/config/__init__.pyi +0 -4
  36. pulumi_gcp/config/vars.py +0 -8
  37. pulumi_gcp/container/attached_cluster.py +6 -9
  38. pulumi_gcp/container/outputs.py +2 -2
  39. pulumi_gcp/datastream/stream.py +2 -2
  40. pulumi_gcp/diagflow/_inputs.py +2 -472
  41. pulumi_gcp/diagflow/cx_agent.py +4 -64
  42. pulumi_gcp/diagflow/cx_flow.py +0 -30
  43. pulumi_gcp/diagflow/outputs.py +2 -378
  44. pulumi_gcp/gkehub/feature.py +4 -2
  45. pulumi_gcp/iam/workload_identity_pool_provider.py +0 -56
  46. pulumi_gcp/looker/instance.py +2 -104
  47. pulumi_gcp/monitoring/_inputs.py +0 -23
  48. pulumi_gcp/monitoring/get_secret_version.py +3 -22
  49. pulumi_gcp/monitoring/outputs.py +0 -16
  50. pulumi_gcp/networkconnectivity/__init__.py +0 -1
  51. pulumi_gcp/networkconnectivity/_inputs.py +0 -148
  52. pulumi_gcp/networkconnectivity/outputs.py +0 -125
  53. pulumi_gcp/networkconnectivity/spoke.py +0 -144
  54. pulumi_gcp/networksecurity/server_tls_policy.py +2 -2
  55. pulumi_gcp/organizations/folder.py +7 -7
  56. pulumi_gcp/organizations/project.py +7 -7
  57. pulumi_gcp/orgpolicy/_inputs.py +3 -3
  58. pulumi_gcp/orgpolicy/outputs.py +2 -2
  59. pulumi_gcp/privilegedaccessmanager/get_entitlement.py +2 -46
  60. pulumi_gcp/provider.py +0 -40
  61. pulumi_gcp/pulumi-plugin.json +1 -1
  62. pulumi_gcp/secretmanager/get_regional_secret_version.py +5 -24
  63. pulumi_gcp/secretmanager/get_regional_secret_version_access.py +5 -24
  64. pulumi_gcp/secretmanager/get_secret_version.py +3 -22
  65. pulumi_gcp/secretmanager/get_secret_version_access.py +3 -22
  66. pulumi_gcp/secretmanager/regional_secret.py +2 -2
  67. pulumi_gcp/siteverification/get_token.py +16 -0
  68. pulumi_gcp/siteverification/owner.py +16 -0
  69. pulumi_gcp/spanner/_inputs.py +5 -29
  70. pulumi_gcp/spanner/outputs.py +3 -20
  71. pulumi_gcp/sql/_inputs.py +6 -6
  72. pulumi_gcp/sql/outputs.py +4 -4
  73. pulumi_gcp/sql/user.py +21 -28
  74. pulumi_gcp/storage/_inputs.py +0 -36
  75. pulumi_gcp/storage/bucket.py +0 -47
  76. pulumi_gcp/storage/get_bucket.py +1 -12
  77. pulumi_gcp/storage/outputs.py +0 -40
  78. pulumi_gcp/vertex/ai_deployment_resource_pool.py +2 -2
  79. pulumi_gcp/vmwareengine/_inputs.py +0 -440
  80. pulumi_gcp/vmwareengine/cluster.py +2 -100
  81. pulumi_gcp/vmwareengine/get_cluster.py +1 -12
  82. pulumi_gcp/vmwareengine/outputs.py +0 -615
  83. pulumi_gcp/workstations/_inputs.py +0 -54
  84. pulumi_gcp/workstations/outputs.py +0 -32
  85. pulumi_gcp/workstations/workstation_config.py +0 -205
  86. {pulumi_gcp-8.7.0.dist-info → pulumi_gcp-8.7.0a1729200523.dist-info}/METADATA +1 -1
  87. {pulumi_gcp-8.7.0.dist-info → pulumi_gcp-8.7.0a1729200523.dist-info}/RECORD +89 -111
  88. {pulumi_gcp-8.7.0.dist-info → pulumi_gcp-8.7.0a1729200523.dist-info}/WHEEL +1 -1
  89. pulumi_gcp/apigee/app_group.py +0 -811
  90. pulumi_gcp/apigee/developer.py +0 -757
  91. pulumi_gcp/networkconnectivity/group.py +0 -764
  92. pulumi_gcp/oracledatabase/__init__.py +0 -20
  93. pulumi_gcp/oracledatabase/_inputs.py +0 -4745
  94. pulumi_gcp/oracledatabase/autonomous_database.py +0 -983
  95. pulumi_gcp/oracledatabase/cloud_exadata_infrastructure.py +0 -842
  96. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +0 -1086
  97. pulumi_gcp/oracledatabase/get_autonomous_database.py +0 -290
  98. pulumi_gcp/oracledatabase/get_autonomous_databases.py +0 -150
  99. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructure.py +0 -257
  100. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructures.py +0 -150
  101. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +0 -290
  102. pulumi_gcp/oracledatabase/get_cloud_vm_clusters.py +0 -150
  103. pulumi_gcp/oracledatabase/get_db_nodes.py +0 -245
  104. pulumi_gcp/oracledatabase/get_db_servers.py +0 -245
  105. pulumi_gcp/oracledatabase/outputs.py +0 -9304
  106. pulumi_gcp/transcoder/__init__.py +0 -11
  107. pulumi_gcp/transcoder/_inputs.py +0 -3991
  108. pulumi_gcp/transcoder/job.py +0 -2134
  109. pulumi_gcp/transcoder/job_template.py +0 -1524
  110. pulumi_gcp/transcoder/outputs.py +0 -2918
  111. {pulumi_gcp-8.7.0.dist-info → pulumi_gcp-8.7.0a1729200523.dist-info}/top_level.txt +0 -0
@@ -1,1524 +0,0 @@
1
- # coding=utf-8
2
- # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
- # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
-
5
- import copy
6
- import warnings
7
- import sys
8
- import pulumi
9
- import pulumi.runtime
10
- from typing import Any, Mapping, Optional, Sequence, Union, overload
11
- if sys.version_info >= (3, 11):
12
- from typing import NotRequired, TypedDict, TypeAlias
13
- else:
14
- from typing_extensions import NotRequired, TypedDict, TypeAlias
15
- from .. import _utilities
16
- from . import outputs
17
- from ._inputs import *
18
-
19
- __all__ = ['JobTemplateArgs', 'JobTemplate']
20
-
21
- @pulumi.input_type
22
- class JobTemplateArgs:
23
- def __init__(__self__, *,
24
- job_template_id: pulumi.Input[str],
25
- location: pulumi.Input[str],
26
- config: Optional[pulumi.Input['JobTemplateConfigArgs']] = None,
27
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
28
- project: Optional[pulumi.Input[str]] = None):
29
- """
30
- The set of arguments for constructing a JobTemplate resource.
31
- :param pulumi.Input[str] job_template_id: ID to use for the Transcoding job template.
32
- :param pulumi.Input[str] location: The location of the transcoding job template resource.
33
-
34
-
35
- - - -
36
- :param pulumi.Input['JobTemplateConfigArgs'] config: The configuration for this template.
37
- Structure is documented below.
38
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels associated with this job template. You can use these to organize and group your job templates.
39
-
40
- **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
41
- Please refer to the field `effective_labels` for all of the labels present on the resource.
42
- :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
43
- If it is not provided, the provider project is used.
44
- """
45
- pulumi.set(__self__, "job_template_id", job_template_id)
46
- pulumi.set(__self__, "location", location)
47
- if config is not None:
48
- pulumi.set(__self__, "config", config)
49
- if labels is not None:
50
- pulumi.set(__self__, "labels", labels)
51
- if project is not None:
52
- pulumi.set(__self__, "project", project)
53
-
54
- @property
55
- @pulumi.getter(name="jobTemplateId")
56
- def job_template_id(self) -> pulumi.Input[str]:
57
- """
58
- ID to use for the Transcoding job template.
59
- """
60
- return pulumi.get(self, "job_template_id")
61
-
62
- @job_template_id.setter
63
- def job_template_id(self, value: pulumi.Input[str]):
64
- pulumi.set(self, "job_template_id", value)
65
-
66
- @property
67
- @pulumi.getter
68
- def location(self) -> pulumi.Input[str]:
69
- """
70
- The location of the transcoding job template resource.
71
-
72
-
73
- - - -
74
- """
75
- return pulumi.get(self, "location")
76
-
77
- @location.setter
78
- def location(self, value: pulumi.Input[str]):
79
- pulumi.set(self, "location", value)
80
-
81
- @property
82
- @pulumi.getter
83
- def config(self) -> Optional[pulumi.Input['JobTemplateConfigArgs']]:
84
- """
85
- The configuration for this template.
86
- Structure is documented below.
87
- """
88
- return pulumi.get(self, "config")
89
-
90
- @config.setter
91
- def config(self, value: Optional[pulumi.Input['JobTemplateConfigArgs']]):
92
- pulumi.set(self, "config", value)
93
-
94
- @property
95
- @pulumi.getter
96
- def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
97
- """
98
- The labels associated with this job template. You can use these to organize and group your job templates.
99
-
100
- **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
101
- Please refer to the field `effective_labels` for all of the labels present on the resource.
102
- """
103
- return pulumi.get(self, "labels")
104
-
105
- @labels.setter
106
- def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
107
- pulumi.set(self, "labels", value)
108
-
109
- @property
110
- @pulumi.getter
111
- def project(self) -> Optional[pulumi.Input[str]]:
112
- """
113
- The ID of the project in which the resource belongs.
114
- If it is not provided, the provider project is used.
115
- """
116
- return pulumi.get(self, "project")
117
-
118
- @project.setter
119
- def project(self, value: Optional[pulumi.Input[str]]):
120
- pulumi.set(self, "project", value)
121
-
122
-
123
- @pulumi.input_type
124
- class _JobTemplateState:
125
- def __init__(__self__, *,
126
- config: Optional[pulumi.Input['JobTemplateConfigArgs']] = None,
127
- effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
128
- job_template_id: Optional[pulumi.Input[str]] = None,
129
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
130
- location: Optional[pulumi.Input[str]] = None,
131
- name: Optional[pulumi.Input[str]] = None,
132
- project: Optional[pulumi.Input[str]] = None,
133
- pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
134
- """
135
- Input properties used for looking up and filtering JobTemplate resources.
136
- :param pulumi.Input['JobTemplateConfigArgs'] config: The configuration for this template.
137
- Structure is documented below.
138
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
139
- :param pulumi.Input[str] job_template_id: ID to use for the Transcoding job template.
140
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels associated with this job template. You can use these to organize and group your job templates.
141
-
142
- **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
143
- Please refer to the field `effective_labels` for all of the labels present on the resource.
144
- :param pulumi.Input[str] location: The location of the transcoding job template resource.
145
-
146
-
147
- - - -
148
- :param pulumi.Input[str] name: The resource name of the job template.
149
- :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
150
- If it is not provided, the provider project is used.
151
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
152
- and default labels configured on the provider.
153
- """
154
- if config is not None:
155
- pulumi.set(__self__, "config", config)
156
- if effective_labels is not None:
157
- pulumi.set(__self__, "effective_labels", effective_labels)
158
- if job_template_id is not None:
159
- pulumi.set(__self__, "job_template_id", job_template_id)
160
- if labels is not None:
161
- pulumi.set(__self__, "labels", labels)
162
- if location is not None:
163
- pulumi.set(__self__, "location", location)
164
- if name is not None:
165
- pulumi.set(__self__, "name", name)
166
- if project is not None:
167
- pulumi.set(__self__, "project", project)
168
- if pulumi_labels is not None:
169
- pulumi.set(__self__, "pulumi_labels", pulumi_labels)
170
-
171
- @property
172
- @pulumi.getter
173
- def config(self) -> Optional[pulumi.Input['JobTemplateConfigArgs']]:
174
- """
175
- The configuration for this template.
176
- Structure is documented below.
177
- """
178
- return pulumi.get(self, "config")
179
-
180
- @config.setter
181
- def config(self, value: Optional[pulumi.Input['JobTemplateConfigArgs']]):
182
- pulumi.set(self, "config", value)
183
-
184
- @property
185
- @pulumi.getter(name="effectiveLabels")
186
- def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
187
- """
188
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
189
- """
190
- return pulumi.get(self, "effective_labels")
191
-
192
- @effective_labels.setter
193
- def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
194
- pulumi.set(self, "effective_labels", value)
195
-
196
- @property
197
- @pulumi.getter(name="jobTemplateId")
198
- def job_template_id(self) -> Optional[pulumi.Input[str]]:
199
- """
200
- ID to use for the Transcoding job template.
201
- """
202
- return pulumi.get(self, "job_template_id")
203
-
204
- @job_template_id.setter
205
- def job_template_id(self, value: Optional[pulumi.Input[str]]):
206
- pulumi.set(self, "job_template_id", value)
207
-
208
- @property
209
- @pulumi.getter
210
- def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
211
- """
212
- The labels associated with this job template. You can use these to organize and group your job templates.
213
-
214
- **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
215
- Please refer to the field `effective_labels` for all of the labels present on the resource.
216
- """
217
- return pulumi.get(self, "labels")
218
-
219
- @labels.setter
220
- def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
221
- pulumi.set(self, "labels", value)
222
-
223
- @property
224
- @pulumi.getter
225
- def location(self) -> Optional[pulumi.Input[str]]:
226
- """
227
- The location of the transcoding job template resource.
228
-
229
-
230
- - - -
231
- """
232
- return pulumi.get(self, "location")
233
-
234
- @location.setter
235
- def location(self, value: Optional[pulumi.Input[str]]):
236
- pulumi.set(self, "location", value)
237
-
238
- @property
239
- @pulumi.getter
240
- def name(self) -> Optional[pulumi.Input[str]]:
241
- """
242
- The resource name of the job template.
243
- """
244
- return pulumi.get(self, "name")
245
-
246
- @name.setter
247
- def name(self, value: Optional[pulumi.Input[str]]):
248
- pulumi.set(self, "name", value)
249
-
250
- @property
251
- @pulumi.getter
252
- def project(self) -> Optional[pulumi.Input[str]]:
253
- """
254
- The ID of the project in which the resource belongs.
255
- If it is not provided, the provider project is used.
256
- """
257
- return pulumi.get(self, "project")
258
-
259
- @project.setter
260
- def project(self, value: Optional[pulumi.Input[str]]):
261
- pulumi.set(self, "project", value)
262
-
263
- @property
264
- @pulumi.getter(name="pulumiLabels")
265
- def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
266
- """
267
- The combination of labels configured directly on the resource
268
- and default labels configured on the provider.
269
- """
270
- return pulumi.get(self, "pulumi_labels")
271
-
272
- @pulumi_labels.setter
273
- def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
274
- pulumi.set(self, "pulumi_labels", value)
275
-
276
-
277
- class JobTemplate(pulumi.CustomResource):
278
- @overload
279
- def __init__(__self__,
280
- resource_name: str,
281
- opts: Optional[pulumi.ResourceOptions] = None,
282
- config: Optional[pulumi.Input[Union['JobTemplateConfigArgs', 'JobTemplateConfigArgsDict']]] = None,
283
- job_template_id: Optional[pulumi.Input[str]] = None,
284
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
285
- location: Optional[pulumi.Input[str]] = None,
286
- project: Optional[pulumi.Input[str]] = None,
287
- __props__=None):
288
- """
289
- Transcoding Job Template Resource
290
-
291
- To get more information about JobTemplate, see:
292
-
293
- * [API documentation](https://cloud.google.com/transcoder/docs/reference/rest/v1/projects.locations.jobTemplates)
294
- * How-to Guides
295
- * [Transcoder](https://cloud.google.com/transcoder/docs/)
296
-
297
- ## Example Usage
298
-
299
- ### Transcoder Job Template Basic
300
-
301
- ```python
302
- import pulumi
303
- import pulumi_gcp as gcp
304
-
305
- default = gcp.transcoder.JobTemplate("default",
306
- job_template_id="example-job-template",
307
- location="us-central1",
308
- config={
309
- "inputs": [{
310
- "key": "input0",
311
- }],
312
- "edit_lists": [{
313
- "key": "atom0",
314
- "inputs": ["input0"],
315
- "start_time_offset": "0s",
316
- }],
317
- "ad_breaks": [{
318
- "start_time_offset": "3.500s",
319
- }],
320
- "elementary_streams": [
321
- {
322
- "key": "video-stream0",
323
- "video_stream": {
324
- "h264": {
325
- "width_pixels": 640,
326
- "height_pixels": 360,
327
- "bitrate_bps": 550000,
328
- "frame_rate": 60,
329
- "pixel_format": "yuv420p",
330
- "rate_control_mode": "vbr",
331
- "crf_level": 21,
332
- "gop_duration": "3s",
333
- "vbv_size_bits": 550000,
334
- "vbv_fullness_bits": 495000,
335
- "entropy_coder": "cabac",
336
- "profile": "high",
337
- "preset": "veryfast",
338
- },
339
- },
340
- },
341
- {
342
- "key": "video-stream1",
343
- "video_stream": {
344
- "h264": {
345
- "width_pixels": 1280,
346
- "height_pixels": 720,
347
- "bitrate_bps": 550000,
348
- "frame_rate": 60,
349
- "pixel_format": "yuv420p",
350
- "rate_control_mode": "vbr",
351
- "crf_level": 21,
352
- "gop_duration": "3s",
353
- "vbv_size_bits": 2500000,
354
- "vbv_fullness_bits": 2250000,
355
- "entropy_coder": "cabac",
356
- "profile": "high",
357
- "preset": "veryfast",
358
- },
359
- },
360
- },
361
- {
362
- "key": "audio-stream0",
363
- "audio_stream": {
364
- "codec": "aac",
365
- "bitrate_bps": 64000,
366
- "channel_count": 2,
367
- "channel_layouts": [
368
- "fl",
369
- "fr",
370
- ],
371
- "sample_rate_hertz": 48000,
372
- },
373
- },
374
- ],
375
- "mux_streams": [
376
- {
377
- "key": "sd",
378
- "file_name": "sd.mp4",
379
- "container": "mp4",
380
- "elementary_streams": [
381
- "video-stream0",
382
- "audio-stream0",
383
- ],
384
- },
385
- {
386
- "key": "hd",
387
- "file_name": "hd.mp4",
388
- "container": "mp4",
389
- "elementary_streams": [
390
- "video-stream1",
391
- "audio-stream0",
392
- ],
393
- },
394
- ],
395
- },
396
- labels={
397
- "label": "key",
398
- })
399
- ```
400
- ### Transcoder Job Template Overlays
401
-
402
- ```python
403
- import pulumi
404
- import pulumi_gcp as gcp
405
-
406
- default = gcp.transcoder.JobTemplate("default",
407
- job_template_id="example-job-template",
408
- location="us-central1",
409
- config={
410
- "inputs": [{
411
- "key": "input0",
412
- "uri": "gs://example/example.mp4",
413
- }],
414
- "output": {
415
- "uri": "gs://example/outputs/",
416
- },
417
- "edit_lists": [{
418
- "key": "atom0",
419
- "inputs": ["input0"],
420
- "start_time_offset": "0s",
421
- }],
422
- "ad_breaks": [{
423
- "start_time_offset": "3.500s",
424
- }],
425
- "overlays": [{
426
- "animations": [{
427
- "animation_fade": {
428
- "fade_type": "FADE_IN",
429
- "start_time_offset": "1.500s",
430
- "end_time_offset": "3.500s",
431
- "xy": {
432
- "x": 1,
433
- "y": 0.5,
434
- },
435
- },
436
- }],
437
- "image": {
438
- "uri": "gs://example/overlay.png",
439
- },
440
- }],
441
- "elementary_streams": [
442
- {
443
- "key": "video-stream0",
444
- "video_stream": {
445
- "h264": {
446
- "width_pixels": 640,
447
- "height_pixels": 360,
448
- "bitrate_bps": 550000,
449
- "frame_rate": 60,
450
- "pixel_format": "yuv420p",
451
- "rate_control_mode": "vbr",
452
- "crf_level": 21,
453
- "gop_duration": "3s",
454
- "vbv_size_bits": 550000,
455
- "vbv_fullness_bits": 495000,
456
- "entropy_coder": "cabac",
457
- "profile": "high",
458
- "preset": "veryfast",
459
- },
460
- },
461
- },
462
- {
463
- "key": "video-stream1",
464
- "video_stream": {
465
- "h264": {
466
- "width_pixels": 1280,
467
- "height_pixels": 720,
468
- "bitrate_bps": 550000,
469
- "frame_rate": 60,
470
- "pixel_format": "yuv420p",
471
- "rate_control_mode": "vbr",
472
- "crf_level": 21,
473
- "gop_duration": "3s",
474
- "vbv_size_bits": 2500000,
475
- "vbv_fullness_bits": 2250000,
476
- "entropy_coder": "cabac",
477
- "profile": "high",
478
- "preset": "veryfast",
479
- },
480
- },
481
- },
482
- {
483
- "key": "audio-stream0",
484
- "audio_stream": {
485
- "codec": "aac",
486
- "bitrate_bps": 64000,
487
- "channel_count": 2,
488
- "channel_layouts": [
489
- "fl",
490
- "fr",
491
- ],
492
- "sample_rate_hertz": 48000,
493
- },
494
- },
495
- ],
496
- "mux_streams": [
497
- {
498
- "key": "sd",
499
- "file_name": "sd.mp4",
500
- "container": "mp4",
501
- "elementary_streams": [
502
- "video-stream0",
503
- "audio-stream0",
504
- ],
505
- },
506
- {
507
- "key": "hd",
508
- "file_name": "hd.mp4",
509
- "container": "mp4",
510
- "elementary_streams": [
511
- "video-stream1",
512
- "audio-stream0",
513
- ],
514
- },
515
- ],
516
- },
517
- labels={
518
- "label": "key",
519
- })
520
- ```
521
- ### Transcoder Job Template Encryptions
522
-
523
- ```python
524
- import pulumi
525
- import pulumi_gcp as gcp
526
-
527
- encryption_key = gcp.secretmanager.Secret("encryption_key",
528
- secret_id="transcoder-encryption-key",
529
- replication={
530
- "auto": {},
531
- })
532
- encryption_key_secret_version = gcp.secretmanager.SecretVersion("encryption_key",
533
- secret=encryption_key.name,
534
- secret_data="4A67F2C1B8E93A4F6D3E7890A1BC23DF")
535
- default = gcp.transcoder.JobTemplate("default",
536
- job_template_id="example-job-template",
537
- location="us-central1",
538
- config={
539
- "elementary_streams": [
540
- {
541
- "key": "es_video",
542
- "video_stream": {
543
- "h264": {
544
- "profile": "main",
545
- "height_pixels": 600,
546
- "width_pixels": 800,
547
- "bitrate_bps": 1000000,
548
- "frame_rate": 60,
549
- },
550
- },
551
- },
552
- {
553
- "key": "es_audio",
554
- "audio_stream": {
555
- "codec": "aac",
556
- "channel_count": 2,
557
- "bitrate_bps": 160000,
558
- },
559
- },
560
- ],
561
- "encryptions": [
562
- {
563
- "id": "aes-128",
564
- "secret_manager_key_source": {
565
- "secret_version": encryption_key_secret_version.name,
566
- },
567
- "drm_systems": {
568
- "clearkey": {},
569
- },
570
- "aes128": {},
571
- },
572
- {
573
- "id": "cenc",
574
- "secret_manager_key_source": {
575
- "secret_version": encryption_key_secret_version.name,
576
- },
577
- "drm_systems": {
578
- "widevine": {},
579
- },
580
- "mpeg_cenc": {
581
- "scheme": "cenc",
582
- },
583
- },
584
- {
585
- "id": "cbcs",
586
- "secret_manager_key_source": {
587
- "secret_version": encryption_key_secret_version.name,
588
- },
589
- "drm_systems": {
590
- "widevine": {},
591
- },
592
- "mpeg_cenc": {
593
- "scheme": "cbcs",
594
- },
595
- },
596
- ],
597
- "mux_streams": [
598
- {
599
- "key": "ts_aes128",
600
- "container": "ts",
601
- "elementary_streams": [
602
- "es_video",
603
- "es_audio",
604
- ],
605
- "segment_settings": {
606
- "segment_duration": "6s",
607
- },
608
- "encryption_id": "aes-128",
609
- },
610
- {
611
- "key": "fmp4_cenc_video",
612
- "container": "fmp4",
613
- "elementary_streams": ["es_video"],
614
- "segment_settings": {
615
- "segment_duration": "6s",
616
- },
617
- "encryption_id": "cenc",
618
- },
619
- {
620
- "key": "fmp4_cenc_audio",
621
- "container": "fmp4",
622
- "elementary_streams": ["es_audio"],
623
- "segment_settings": {
624
- "segment_duration": "6s",
625
- },
626
- "encryption_id": "cenc",
627
- },
628
- {
629
- "key": "fmp4_cbcs_video",
630
- "container": "fmp4",
631
- "elementary_streams": ["es_video"],
632
- "segment_settings": {
633
- "segment_duration": "6s",
634
- },
635
- "encryption_id": "cbcs",
636
- },
637
- {
638
- "key": "fmp4_cbcs_audio",
639
- "container": "fmp4",
640
- "elementary_streams": ["es_audio"],
641
- "segment_settings": {
642
- "segment_duration": "6s",
643
- },
644
- "encryption_id": "cbcs",
645
- },
646
- ],
647
- "manifests": [
648
- {
649
- "file_name": "manifest_aes128.m3u8",
650
- "type": "HLS",
651
- "mux_streams": ["ts_aes128"],
652
- },
653
- {
654
- "file_name": "manifest_cenc.mpd",
655
- "type": "DASH",
656
- "mux_streams": [
657
- "fmp4_cenc_video",
658
- "fmp4_cenc_audio",
659
- ],
660
- },
661
- {
662
- "file_name": "manifest_cbcs.mpd",
663
- "type": "DASH",
664
- "mux_streams": [
665
- "fmp4_cbcs_video",
666
- "fmp4_cbcs_audio",
667
- ],
668
- },
669
- ],
670
- },
671
- labels={
672
- "label": "key",
673
- })
674
- ```
675
- ### Transcoder Job Template Pubsub
676
-
677
- ```python
678
- import pulumi
679
- import pulumi_gcp as gcp
680
-
681
- transcoder_notifications = gcp.pubsub.Topic("transcoder_notifications", name="transcoder-notifications")
682
- default = gcp.transcoder.JobTemplate("default",
683
- job_template_id="example-job-template",
684
- location="us-central1",
685
- config={
686
- "inputs": [{
687
- "key": "input0",
688
- "uri": "gs://example/example.mp4",
689
- }],
690
- "output": {
691
- "uri": "gs://example/outputs/",
692
- },
693
- "edit_lists": [{
694
- "key": "atom0",
695
- "inputs": ["input0"],
696
- "start_time_offset": "0s",
697
- }],
698
- "ad_breaks": [{
699
- "start_time_offset": "3.500s",
700
- }],
701
- "elementary_streams": [
702
- {
703
- "key": "video-stream0",
704
- "video_stream": {
705
- "h264": {
706
- "width_pixels": 640,
707
- "height_pixels": 360,
708
- "bitrate_bps": 550000,
709
- "frame_rate": 60,
710
- "pixel_format": "yuv420p",
711
- "rate_control_mode": "vbr",
712
- "crf_level": 21,
713
- "gop_duration": "3s",
714
- "vbv_size_bits": 550000,
715
- "vbv_fullness_bits": 495000,
716
- "entropy_coder": "cabac",
717
- "profile": "high",
718
- "preset": "veryfast",
719
- },
720
- },
721
- },
722
- {
723
- "key": "video-stream1",
724
- "video_stream": {
725
- "h264": {
726
- "width_pixels": 1280,
727
- "height_pixels": 720,
728
- "bitrate_bps": 550000,
729
- "frame_rate": 60,
730
- "pixel_format": "yuv420p",
731
- "rate_control_mode": "vbr",
732
- "crf_level": 21,
733
- "gop_duration": "3s",
734
- "vbv_size_bits": 2500000,
735
- "vbv_fullness_bits": 2250000,
736
- "entropy_coder": "cabac",
737
- "profile": "high",
738
- "preset": "veryfast",
739
- },
740
- },
741
- },
742
- {
743
- "key": "audio-stream0",
744
- "audio_stream": {
745
- "codec": "aac",
746
- "bitrate_bps": 64000,
747
- "channel_count": 2,
748
- "channel_layouts": [
749
- "fl",
750
- "fr",
751
- ],
752
- "sample_rate_hertz": 48000,
753
- },
754
- },
755
- ],
756
- "mux_streams": [
757
- {
758
- "key": "sd",
759
- "file_name": "sd.mp4",
760
- "container": "mp4",
761
- "elementary_streams": [
762
- "video-stream0",
763
- "audio-stream0",
764
- ],
765
- },
766
- {
767
- "key": "hd",
768
- "file_name": "hd.mp4",
769
- "container": "mp4",
770
- "elementary_streams": [
771
- "video-stream1",
772
- "audio-stream0",
773
- ],
774
- },
775
- ],
776
- "pubsub_destination": {
777
- "topic": transcoder_notifications.id,
778
- },
779
- },
780
- labels={
781
- "label": "key",
782
- })
783
- ```
784
-
785
- ## Import
786
-
787
- JobTemplate can be imported using any of these accepted formats:
788
-
789
- * `projects/{{project}}/locations/{{location}}/jobTemplates/{{job_template_id}}`
790
-
791
- * `{{project}}/{{location}}/{{job_template_id}}`
792
-
793
- * `{{location}}/{{job_template_id}}`
794
-
795
- When using the `pulumi import` command, JobTemplate can be imported using one of the formats above. For example:
796
-
797
- ```sh
798
- $ pulumi import gcp:transcoder/jobTemplate:JobTemplate default projects/{{project}}/locations/{{location}}/jobTemplates/{{job_template_id}}
799
- ```
800
-
801
- ```sh
802
- $ pulumi import gcp:transcoder/jobTemplate:JobTemplate default {{project}}/{{location}}/{{job_template_id}}
803
- ```
804
-
805
- ```sh
806
- $ pulumi import gcp:transcoder/jobTemplate:JobTemplate default {{location}}/{{job_template_id}}
807
- ```
808
-
809
- :param str resource_name: The name of the resource.
810
- :param pulumi.ResourceOptions opts: Options for the resource.
811
- :param pulumi.Input[Union['JobTemplateConfigArgs', 'JobTemplateConfigArgsDict']] config: The configuration for this template.
812
- Structure is documented below.
813
- :param pulumi.Input[str] job_template_id: ID to use for the Transcoding job template.
814
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels associated with this job template. You can use these to organize and group your job templates.
815
-
816
- **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
817
- Please refer to the field `effective_labels` for all of the labels present on the resource.
818
- :param pulumi.Input[str] location: The location of the transcoding job template resource.
819
-
820
-
821
- - - -
822
- :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
823
- If it is not provided, the provider project is used.
824
- """
825
- ...
826
- @overload
827
- def __init__(__self__,
828
- resource_name: str,
829
- args: JobTemplateArgs,
830
- opts: Optional[pulumi.ResourceOptions] = None):
831
- """
832
- Transcoding Job Template Resource
833
-
834
- To get more information about JobTemplate, see:
835
-
836
- * [API documentation](https://cloud.google.com/transcoder/docs/reference/rest/v1/projects.locations.jobTemplates)
837
- * How-to Guides
838
- * [Transcoder](https://cloud.google.com/transcoder/docs/)
839
-
840
- ## Example Usage
841
-
842
- ### Transcoder Job Template Basic
843
-
844
- ```python
845
- import pulumi
846
- import pulumi_gcp as gcp
847
-
848
- default = gcp.transcoder.JobTemplate("default",
849
- job_template_id="example-job-template",
850
- location="us-central1",
851
- config={
852
- "inputs": [{
853
- "key": "input0",
854
- }],
855
- "edit_lists": [{
856
- "key": "atom0",
857
- "inputs": ["input0"],
858
- "start_time_offset": "0s",
859
- }],
860
- "ad_breaks": [{
861
- "start_time_offset": "3.500s",
862
- }],
863
- "elementary_streams": [
864
- {
865
- "key": "video-stream0",
866
- "video_stream": {
867
- "h264": {
868
- "width_pixels": 640,
869
- "height_pixels": 360,
870
- "bitrate_bps": 550000,
871
- "frame_rate": 60,
872
- "pixel_format": "yuv420p",
873
- "rate_control_mode": "vbr",
874
- "crf_level": 21,
875
- "gop_duration": "3s",
876
- "vbv_size_bits": 550000,
877
- "vbv_fullness_bits": 495000,
878
- "entropy_coder": "cabac",
879
- "profile": "high",
880
- "preset": "veryfast",
881
- },
882
- },
883
- },
884
- {
885
- "key": "video-stream1",
886
- "video_stream": {
887
- "h264": {
888
- "width_pixels": 1280,
889
- "height_pixels": 720,
890
- "bitrate_bps": 550000,
891
- "frame_rate": 60,
892
- "pixel_format": "yuv420p",
893
- "rate_control_mode": "vbr",
894
- "crf_level": 21,
895
- "gop_duration": "3s",
896
- "vbv_size_bits": 2500000,
897
- "vbv_fullness_bits": 2250000,
898
- "entropy_coder": "cabac",
899
- "profile": "high",
900
- "preset": "veryfast",
901
- },
902
- },
903
- },
904
- {
905
- "key": "audio-stream0",
906
- "audio_stream": {
907
- "codec": "aac",
908
- "bitrate_bps": 64000,
909
- "channel_count": 2,
910
- "channel_layouts": [
911
- "fl",
912
- "fr",
913
- ],
914
- "sample_rate_hertz": 48000,
915
- },
916
- },
917
- ],
918
- "mux_streams": [
919
- {
920
- "key": "sd",
921
- "file_name": "sd.mp4",
922
- "container": "mp4",
923
- "elementary_streams": [
924
- "video-stream0",
925
- "audio-stream0",
926
- ],
927
- },
928
- {
929
- "key": "hd",
930
- "file_name": "hd.mp4",
931
- "container": "mp4",
932
- "elementary_streams": [
933
- "video-stream1",
934
- "audio-stream0",
935
- ],
936
- },
937
- ],
938
- },
939
- labels={
940
- "label": "key",
941
- })
942
- ```
943
- ### Transcoder Job Template Overlays
944
-
945
- ```python
946
- import pulumi
947
- import pulumi_gcp as gcp
948
-
949
- default = gcp.transcoder.JobTemplate("default",
950
- job_template_id="example-job-template",
951
- location="us-central1",
952
- config={
953
- "inputs": [{
954
- "key": "input0",
955
- "uri": "gs://example/example.mp4",
956
- }],
957
- "output": {
958
- "uri": "gs://example/outputs/",
959
- },
960
- "edit_lists": [{
961
- "key": "atom0",
962
- "inputs": ["input0"],
963
- "start_time_offset": "0s",
964
- }],
965
- "ad_breaks": [{
966
- "start_time_offset": "3.500s",
967
- }],
968
- "overlays": [{
969
- "animations": [{
970
- "animation_fade": {
971
- "fade_type": "FADE_IN",
972
- "start_time_offset": "1.500s",
973
- "end_time_offset": "3.500s",
974
- "xy": {
975
- "x": 1,
976
- "y": 0.5,
977
- },
978
- },
979
- }],
980
- "image": {
981
- "uri": "gs://example/overlay.png",
982
- },
983
- }],
984
- "elementary_streams": [
985
- {
986
- "key": "video-stream0",
987
- "video_stream": {
988
- "h264": {
989
- "width_pixels": 640,
990
- "height_pixels": 360,
991
- "bitrate_bps": 550000,
992
- "frame_rate": 60,
993
- "pixel_format": "yuv420p",
994
- "rate_control_mode": "vbr",
995
- "crf_level": 21,
996
- "gop_duration": "3s",
997
- "vbv_size_bits": 550000,
998
- "vbv_fullness_bits": 495000,
999
- "entropy_coder": "cabac",
1000
- "profile": "high",
1001
- "preset": "veryfast",
1002
- },
1003
- },
1004
- },
1005
- {
1006
- "key": "video-stream1",
1007
- "video_stream": {
1008
- "h264": {
1009
- "width_pixels": 1280,
1010
- "height_pixels": 720,
1011
- "bitrate_bps": 550000,
1012
- "frame_rate": 60,
1013
- "pixel_format": "yuv420p",
1014
- "rate_control_mode": "vbr",
1015
- "crf_level": 21,
1016
- "gop_duration": "3s",
1017
- "vbv_size_bits": 2500000,
1018
- "vbv_fullness_bits": 2250000,
1019
- "entropy_coder": "cabac",
1020
- "profile": "high",
1021
- "preset": "veryfast",
1022
- },
1023
- },
1024
- },
1025
- {
1026
- "key": "audio-stream0",
1027
- "audio_stream": {
1028
- "codec": "aac",
1029
- "bitrate_bps": 64000,
1030
- "channel_count": 2,
1031
- "channel_layouts": [
1032
- "fl",
1033
- "fr",
1034
- ],
1035
- "sample_rate_hertz": 48000,
1036
- },
1037
- },
1038
- ],
1039
- "mux_streams": [
1040
- {
1041
- "key": "sd",
1042
- "file_name": "sd.mp4",
1043
- "container": "mp4",
1044
- "elementary_streams": [
1045
- "video-stream0",
1046
- "audio-stream0",
1047
- ],
1048
- },
1049
- {
1050
- "key": "hd",
1051
- "file_name": "hd.mp4",
1052
- "container": "mp4",
1053
- "elementary_streams": [
1054
- "video-stream1",
1055
- "audio-stream0",
1056
- ],
1057
- },
1058
- ],
1059
- },
1060
- labels={
1061
- "label": "key",
1062
- })
1063
- ```
1064
- ### Transcoder Job Template Encryptions
1065
-
1066
- ```python
1067
- import pulumi
1068
- import pulumi_gcp as gcp
1069
-
1070
- encryption_key = gcp.secretmanager.Secret("encryption_key",
1071
- secret_id="transcoder-encryption-key",
1072
- replication={
1073
- "auto": {},
1074
- })
1075
- encryption_key_secret_version = gcp.secretmanager.SecretVersion("encryption_key",
1076
- secret=encryption_key.name,
1077
- secret_data="4A67F2C1B8E93A4F6D3E7890A1BC23DF")
1078
- default = gcp.transcoder.JobTemplate("default",
1079
- job_template_id="example-job-template",
1080
- location="us-central1",
1081
- config={
1082
- "elementary_streams": [
1083
- {
1084
- "key": "es_video",
1085
- "video_stream": {
1086
- "h264": {
1087
- "profile": "main",
1088
- "height_pixels": 600,
1089
- "width_pixels": 800,
1090
- "bitrate_bps": 1000000,
1091
- "frame_rate": 60,
1092
- },
1093
- },
1094
- },
1095
- {
1096
- "key": "es_audio",
1097
- "audio_stream": {
1098
- "codec": "aac",
1099
- "channel_count": 2,
1100
- "bitrate_bps": 160000,
1101
- },
1102
- },
1103
- ],
1104
- "encryptions": [
1105
- {
1106
- "id": "aes-128",
1107
- "secret_manager_key_source": {
1108
- "secret_version": encryption_key_secret_version.name,
1109
- },
1110
- "drm_systems": {
1111
- "clearkey": {},
1112
- },
1113
- "aes128": {},
1114
- },
1115
- {
1116
- "id": "cenc",
1117
- "secret_manager_key_source": {
1118
- "secret_version": encryption_key_secret_version.name,
1119
- },
1120
- "drm_systems": {
1121
- "widevine": {},
1122
- },
1123
- "mpeg_cenc": {
1124
- "scheme": "cenc",
1125
- },
1126
- },
1127
- {
1128
- "id": "cbcs",
1129
- "secret_manager_key_source": {
1130
- "secret_version": encryption_key_secret_version.name,
1131
- },
1132
- "drm_systems": {
1133
- "widevine": {},
1134
- },
1135
- "mpeg_cenc": {
1136
- "scheme": "cbcs",
1137
- },
1138
- },
1139
- ],
1140
- "mux_streams": [
1141
- {
1142
- "key": "ts_aes128",
1143
- "container": "ts",
1144
- "elementary_streams": [
1145
- "es_video",
1146
- "es_audio",
1147
- ],
1148
- "segment_settings": {
1149
- "segment_duration": "6s",
1150
- },
1151
- "encryption_id": "aes-128",
1152
- },
1153
- {
1154
- "key": "fmp4_cenc_video",
1155
- "container": "fmp4",
1156
- "elementary_streams": ["es_video"],
1157
- "segment_settings": {
1158
- "segment_duration": "6s",
1159
- },
1160
- "encryption_id": "cenc",
1161
- },
1162
- {
1163
- "key": "fmp4_cenc_audio",
1164
- "container": "fmp4",
1165
- "elementary_streams": ["es_audio"],
1166
- "segment_settings": {
1167
- "segment_duration": "6s",
1168
- },
1169
- "encryption_id": "cenc",
1170
- },
1171
- {
1172
- "key": "fmp4_cbcs_video",
1173
- "container": "fmp4",
1174
- "elementary_streams": ["es_video"],
1175
- "segment_settings": {
1176
- "segment_duration": "6s",
1177
- },
1178
- "encryption_id": "cbcs",
1179
- },
1180
- {
1181
- "key": "fmp4_cbcs_audio",
1182
- "container": "fmp4",
1183
- "elementary_streams": ["es_audio"],
1184
- "segment_settings": {
1185
- "segment_duration": "6s",
1186
- },
1187
- "encryption_id": "cbcs",
1188
- },
1189
- ],
1190
- "manifests": [
1191
- {
1192
- "file_name": "manifest_aes128.m3u8",
1193
- "type": "HLS",
1194
- "mux_streams": ["ts_aes128"],
1195
- },
1196
- {
1197
- "file_name": "manifest_cenc.mpd",
1198
- "type": "DASH",
1199
- "mux_streams": [
1200
- "fmp4_cenc_video",
1201
- "fmp4_cenc_audio",
1202
- ],
1203
- },
1204
- {
1205
- "file_name": "manifest_cbcs.mpd",
1206
- "type": "DASH",
1207
- "mux_streams": [
1208
- "fmp4_cbcs_video",
1209
- "fmp4_cbcs_audio",
1210
- ],
1211
- },
1212
- ],
1213
- },
1214
- labels={
1215
- "label": "key",
1216
- })
1217
- ```
1218
- ### Transcoder Job Template Pubsub
1219
-
1220
- ```python
1221
- import pulumi
1222
- import pulumi_gcp as gcp
1223
-
1224
- transcoder_notifications = gcp.pubsub.Topic("transcoder_notifications", name="transcoder-notifications")
1225
- default = gcp.transcoder.JobTemplate("default",
1226
- job_template_id="example-job-template",
1227
- location="us-central1",
1228
- config={
1229
- "inputs": [{
1230
- "key": "input0",
1231
- "uri": "gs://example/example.mp4",
1232
- }],
1233
- "output": {
1234
- "uri": "gs://example/outputs/",
1235
- },
1236
- "edit_lists": [{
1237
- "key": "atom0",
1238
- "inputs": ["input0"],
1239
- "start_time_offset": "0s",
1240
- }],
1241
- "ad_breaks": [{
1242
- "start_time_offset": "3.500s",
1243
- }],
1244
- "elementary_streams": [
1245
- {
1246
- "key": "video-stream0",
1247
- "video_stream": {
1248
- "h264": {
1249
- "width_pixels": 640,
1250
- "height_pixels": 360,
1251
- "bitrate_bps": 550000,
1252
- "frame_rate": 60,
1253
- "pixel_format": "yuv420p",
1254
- "rate_control_mode": "vbr",
1255
- "crf_level": 21,
1256
- "gop_duration": "3s",
1257
- "vbv_size_bits": 550000,
1258
- "vbv_fullness_bits": 495000,
1259
- "entropy_coder": "cabac",
1260
- "profile": "high",
1261
- "preset": "veryfast",
1262
- },
1263
- },
1264
- },
1265
- {
1266
- "key": "video-stream1",
1267
- "video_stream": {
1268
- "h264": {
1269
- "width_pixels": 1280,
1270
- "height_pixels": 720,
1271
- "bitrate_bps": 550000,
1272
- "frame_rate": 60,
1273
- "pixel_format": "yuv420p",
1274
- "rate_control_mode": "vbr",
1275
- "crf_level": 21,
1276
- "gop_duration": "3s",
1277
- "vbv_size_bits": 2500000,
1278
- "vbv_fullness_bits": 2250000,
1279
- "entropy_coder": "cabac",
1280
- "profile": "high",
1281
- "preset": "veryfast",
1282
- },
1283
- },
1284
- },
1285
- {
1286
- "key": "audio-stream0",
1287
- "audio_stream": {
1288
- "codec": "aac",
1289
- "bitrate_bps": 64000,
1290
- "channel_count": 2,
1291
- "channel_layouts": [
1292
- "fl",
1293
- "fr",
1294
- ],
1295
- "sample_rate_hertz": 48000,
1296
- },
1297
- },
1298
- ],
1299
- "mux_streams": [
1300
- {
1301
- "key": "sd",
1302
- "file_name": "sd.mp4",
1303
- "container": "mp4",
1304
- "elementary_streams": [
1305
- "video-stream0",
1306
- "audio-stream0",
1307
- ],
1308
- },
1309
- {
1310
- "key": "hd",
1311
- "file_name": "hd.mp4",
1312
- "container": "mp4",
1313
- "elementary_streams": [
1314
- "video-stream1",
1315
- "audio-stream0",
1316
- ],
1317
- },
1318
- ],
1319
- "pubsub_destination": {
1320
- "topic": transcoder_notifications.id,
1321
- },
1322
- },
1323
- labels={
1324
- "label": "key",
1325
- })
1326
- ```
1327
-
1328
- ## Import
1329
-
1330
- JobTemplate can be imported using any of these accepted formats:
1331
-
1332
- * `projects/{{project}}/locations/{{location}}/jobTemplates/{{job_template_id}}`
1333
-
1334
- * `{{project}}/{{location}}/{{job_template_id}}`
1335
-
1336
- * `{{location}}/{{job_template_id}}`
1337
-
1338
- When using the `pulumi import` command, JobTemplate can be imported using one of the formats above. For example:
1339
-
1340
- ```sh
1341
- $ pulumi import gcp:transcoder/jobTemplate:JobTemplate default projects/{{project}}/locations/{{location}}/jobTemplates/{{job_template_id}}
1342
- ```
1343
-
1344
- ```sh
1345
- $ pulumi import gcp:transcoder/jobTemplate:JobTemplate default {{project}}/{{location}}/{{job_template_id}}
1346
- ```
1347
-
1348
- ```sh
1349
- $ pulumi import gcp:transcoder/jobTemplate:JobTemplate default {{location}}/{{job_template_id}}
1350
- ```
1351
-
1352
- :param str resource_name: The name of the resource.
1353
- :param JobTemplateArgs args: The arguments to use to populate this resource's properties.
1354
- :param pulumi.ResourceOptions opts: Options for the resource.
1355
- """
1356
- ...
1357
- def __init__(__self__, resource_name: str, *args, **kwargs):
1358
- resource_args, opts = _utilities.get_resource_args_opts(JobTemplateArgs, pulumi.ResourceOptions, *args, **kwargs)
1359
- if resource_args is not None:
1360
- __self__._internal_init(resource_name, opts, **resource_args.__dict__)
1361
- else:
1362
- __self__._internal_init(resource_name, *args, **kwargs)
1363
-
1364
- def _internal_init(__self__,
1365
- resource_name: str,
1366
- opts: Optional[pulumi.ResourceOptions] = None,
1367
- config: Optional[pulumi.Input[Union['JobTemplateConfigArgs', 'JobTemplateConfigArgsDict']]] = None,
1368
- job_template_id: Optional[pulumi.Input[str]] = None,
1369
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1370
- location: Optional[pulumi.Input[str]] = None,
1371
- project: Optional[pulumi.Input[str]] = None,
1372
- __props__=None):
1373
- opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1374
- if not isinstance(opts, pulumi.ResourceOptions):
1375
- raise TypeError('Expected resource options to be a ResourceOptions instance')
1376
- if opts.id is None:
1377
- if __props__ is not None:
1378
- raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1379
- __props__ = JobTemplateArgs.__new__(JobTemplateArgs)
1380
-
1381
- __props__.__dict__["config"] = config
1382
- if job_template_id is None and not opts.urn:
1383
- raise TypeError("Missing required property 'job_template_id'")
1384
- __props__.__dict__["job_template_id"] = job_template_id
1385
- __props__.__dict__["labels"] = labels
1386
- if location is None and not opts.urn:
1387
- raise TypeError("Missing required property 'location'")
1388
- __props__.__dict__["location"] = location
1389
- __props__.__dict__["project"] = project
1390
- __props__.__dict__["effective_labels"] = None
1391
- __props__.__dict__["name"] = None
1392
- __props__.__dict__["pulumi_labels"] = None
1393
- secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
1394
- opts = pulumi.ResourceOptions.merge(opts, secret_opts)
1395
- super(JobTemplate, __self__).__init__(
1396
- 'gcp:transcoder/jobTemplate:JobTemplate',
1397
- resource_name,
1398
- __props__,
1399
- opts)
1400
-
1401
- @staticmethod
1402
- def get(resource_name: str,
1403
- id: pulumi.Input[str],
1404
- opts: Optional[pulumi.ResourceOptions] = None,
1405
- config: Optional[pulumi.Input[Union['JobTemplateConfigArgs', 'JobTemplateConfigArgsDict']]] = None,
1406
- effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1407
- job_template_id: Optional[pulumi.Input[str]] = None,
1408
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1409
- location: Optional[pulumi.Input[str]] = None,
1410
- name: Optional[pulumi.Input[str]] = None,
1411
- project: Optional[pulumi.Input[str]] = None,
1412
- pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'JobTemplate':
1413
- """
1414
- Get an existing JobTemplate resource's state with the given name, id, and optional extra
1415
- properties used to qualify the lookup.
1416
-
1417
- :param str resource_name: The unique name of the resulting resource.
1418
- :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1419
- :param pulumi.ResourceOptions opts: Options for the resource.
1420
- :param pulumi.Input[Union['JobTemplateConfigArgs', 'JobTemplateConfigArgsDict']] config: The configuration for this template.
1421
- Structure is documented below.
1422
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1423
- :param pulumi.Input[str] job_template_id: ID to use for the Transcoding job template.
1424
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The labels associated with this job template. You can use these to organize and group your job templates.
1425
-
1426
- **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1427
- Please refer to the field `effective_labels` for all of the labels present on the resource.
1428
- :param pulumi.Input[str] location: The location of the transcoding job template resource.
1429
-
1430
-
1431
- - - -
1432
- :param pulumi.Input[str] name: The resource name of the job template.
1433
- :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1434
- If it is not provided, the provider project is used.
1435
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
1436
- and default labels configured on the provider.
1437
- """
1438
- opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1439
-
1440
- __props__ = _JobTemplateState.__new__(_JobTemplateState)
1441
-
1442
- __props__.__dict__["config"] = config
1443
- __props__.__dict__["effective_labels"] = effective_labels
1444
- __props__.__dict__["job_template_id"] = job_template_id
1445
- __props__.__dict__["labels"] = labels
1446
- __props__.__dict__["location"] = location
1447
- __props__.__dict__["name"] = name
1448
- __props__.__dict__["project"] = project
1449
- __props__.__dict__["pulumi_labels"] = pulumi_labels
1450
- return JobTemplate(resource_name, opts=opts, __props__=__props__)
1451
-
1452
- @property
1453
- @pulumi.getter
1454
- def config(self) -> pulumi.Output['outputs.JobTemplateConfig']:
1455
- """
1456
- The configuration for this template.
1457
- Structure is documented below.
1458
- """
1459
- return pulumi.get(self, "config")
1460
-
1461
- @property
1462
- @pulumi.getter(name="effectiveLabels")
1463
- def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
1464
- """
1465
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1466
- """
1467
- return pulumi.get(self, "effective_labels")
1468
-
1469
- @property
1470
- @pulumi.getter(name="jobTemplateId")
1471
- def job_template_id(self) -> pulumi.Output[str]:
1472
- """
1473
- ID to use for the Transcoding job template.
1474
- """
1475
- return pulumi.get(self, "job_template_id")
1476
-
1477
- @property
1478
- @pulumi.getter
1479
- def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1480
- """
1481
- The labels associated with this job template. You can use these to organize and group your job templates.
1482
-
1483
- **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1484
- Please refer to the field `effective_labels` for all of the labels present on the resource.
1485
- """
1486
- return pulumi.get(self, "labels")
1487
-
1488
- @property
1489
- @pulumi.getter
1490
- def location(self) -> pulumi.Output[str]:
1491
- """
1492
- The location of the transcoding job template resource.
1493
-
1494
-
1495
- - - -
1496
- """
1497
- return pulumi.get(self, "location")
1498
-
1499
- @property
1500
- @pulumi.getter
1501
- def name(self) -> pulumi.Output[str]:
1502
- """
1503
- The resource name of the job template.
1504
- """
1505
- return pulumi.get(self, "name")
1506
-
1507
- @property
1508
- @pulumi.getter
1509
- def project(self) -> pulumi.Output[str]:
1510
- """
1511
- The ID of the project in which the resource belongs.
1512
- If it is not provided, the provider project is used.
1513
- """
1514
- return pulumi.get(self, "project")
1515
-
1516
- @property
1517
- @pulumi.getter(name="pulumiLabels")
1518
- def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
1519
- """
1520
- The combination of labels configured directly on the resource
1521
- and default labels configured on the provider.
1522
- """
1523
- return pulumi.get(self, "pulumi_labels")
1524
-