pulumi-gcp 8.7.0a1730183903__py3-none-any.whl → 8.8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. pulumi_gcp/__init__.py +78 -0
  2. pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +4 -4
  3. pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +4 -4
  4. pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +4 -4
  5. pulumi_gcp/accesscontextmanager/service_perimeter.py +2 -0
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +4 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +4 -0
  8. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +4 -0
  9. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +4 -0
  10. pulumi_gcp/accesscontextmanager/service_perimeters.py +2 -0
  11. pulumi_gcp/apigateway/api_config_iam_binding.py +2 -2
  12. pulumi_gcp/apigateway/api_config_iam_member.py +2 -2
  13. pulumi_gcp/apigateway/api_config_iam_policy.py +2 -2
  14. pulumi_gcp/apigateway/api_iam_binding.py +2 -2
  15. pulumi_gcp/apigateway/api_iam_member.py +2 -2
  16. pulumi_gcp/apigateway/api_iam_policy.py +2 -2
  17. pulumi_gcp/apigateway/gateway_iam_binding.py +2 -2
  18. pulumi_gcp/apigateway/gateway_iam_member.py +2 -2
  19. pulumi_gcp/apigateway/gateway_iam_policy.py +2 -2
  20. pulumi_gcp/apigee/__init__.py +2 -0
  21. pulumi_gcp/apigee/_inputs.py +108 -0
  22. pulumi_gcp/apigee/app_group.py +811 -0
  23. pulumi_gcp/apigee/developer.py +757 -0
  24. pulumi_gcp/apigee/environment_iam_binding.py +4 -4
  25. pulumi_gcp/apigee/environment_iam_member.py +4 -4
  26. pulumi_gcp/apigee/environment_iam_policy.py +4 -4
  27. pulumi_gcp/apigee/outputs.py +64 -0
  28. pulumi_gcp/appengine/engine_split_traffic.py +4 -4
  29. pulumi_gcp/apphub/_inputs.py +6 -3
  30. pulumi_gcp/apphub/application.py +30 -4
  31. pulumi_gcp/apphub/outputs.py +8 -4
  32. pulumi_gcp/artifactregistry/get_docker_image.py +40 -0
  33. pulumi_gcp/artifactregistry/repository_iam_binding.py +2 -2
  34. pulumi_gcp/artifactregistry/repository_iam_member.py +2 -2
  35. pulumi_gcp/artifactregistry/repository_iam_policy.py +2 -2
  36. pulumi_gcp/assuredworkloads/_inputs.py +34 -0
  37. pulumi_gcp/assuredworkloads/outputs.py +37 -0
  38. pulumi_gcp/assuredworkloads/workload.py +56 -3
  39. pulumi_gcp/backupdisasterrecovery/_inputs.py +0 -6
  40. pulumi_gcp/backupdisasterrecovery/management_server.py +80 -34
  41. pulumi_gcp/backupdisasterrecovery/outputs.py +0 -4
  42. pulumi_gcp/biglake/table.py +12 -12
  43. pulumi_gcp/bigquery/_inputs.py +60 -0
  44. pulumi_gcp/bigquery/connection.py +14 -14
  45. pulumi_gcp/bigquery/connection_iam_binding.py +2 -2
  46. pulumi_gcp/bigquery/connection_iam_member.py +2 -2
  47. pulumi_gcp/bigquery/connection_iam_policy.py +2 -2
  48. pulumi_gcp/bigquery/dataset.py +99 -2
  49. pulumi_gcp/bigquery/dataset_access.py +2 -2
  50. pulumi_gcp/bigquery/dataset_iam_binding.py +53 -0
  51. pulumi_gcp/bigquery/dataset_iam_member.py +53 -0
  52. pulumi_gcp/bigquery/dataset_iam_policy.py +32 -0
  53. pulumi_gcp/bigquery/get_dataset.py +12 -1
  54. pulumi_gcp/bigquery/iam_binding.py +2 -2
  55. pulumi_gcp/bigquery/iam_member.py +2 -2
  56. pulumi_gcp/bigquery/iam_policy.py +2 -2
  57. pulumi_gcp/bigquery/job.py +6 -6
  58. pulumi_gcp/bigquery/outputs.py +87 -0
  59. pulumi_gcp/bigquery/routine.py +6 -6
  60. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +2 -2
  61. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +2 -2
  62. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +2 -2
  63. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +2 -2
  64. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +2 -2
  65. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +2 -2
  66. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +2 -2
  67. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +2 -2
  68. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +2 -2
  69. pulumi_gcp/binaryauthorization/attestor_iam_binding.py +2 -2
  70. pulumi_gcp/binaryauthorization/attestor_iam_member.py +2 -2
  71. pulumi_gcp/binaryauthorization/attestor_iam_policy.py +2 -2
  72. pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +2 -2
  73. pulumi_gcp/certificateauthority/ca_pool_iam_member.py +2 -2
  74. pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +2 -2
  75. pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +2 -2
  76. pulumi_gcp/certificateauthority/certificate_template_iam_member.py +2 -2
  77. pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +2 -2
  78. pulumi_gcp/cloudbuild/trigger.py +18 -18
  79. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +2 -2
  80. pulumi_gcp/cloudbuildv2/connection_iam_member.py +2 -2
  81. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +2 -2
  82. pulumi_gcp/clouddeploy/delivery_pipeline.py +10 -10
  83. pulumi_gcp/cloudfunctions/function_iam_binding.py +2 -2
  84. pulumi_gcp/cloudfunctions/function_iam_member.py +2 -2
  85. pulumi_gcp/cloudfunctions/function_iam_policy.py +2 -2
  86. pulumi_gcp/cloudfunctionsv2/function.py +22 -22
  87. pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +2 -2
  88. pulumi_gcp/cloudfunctionsv2/function_iam_member.py +2 -2
  89. pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +2 -2
  90. pulumi_gcp/cloudrun/iam_binding.py +2 -2
  91. pulumi_gcp/cloudrun/iam_member.py +2 -2
  92. pulumi_gcp/cloudrun/iam_policy.py +2 -2
  93. pulumi_gcp/cloudrun/service.py +24 -24
  94. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  95. pulumi_gcp/cloudrunv2/job_iam_binding.py +2 -2
  96. pulumi_gcp/cloudrunv2/job_iam_member.py +2 -2
  97. pulumi_gcp/cloudrunv2/job_iam_policy.py +2 -2
  98. pulumi_gcp/cloudrunv2/service.py +94 -2
  99. pulumi_gcp/cloudrunv2/service_iam_binding.py +2 -2
  100. pulumi_gcp/cloudrunv2/service_iam_member.py +2 -2
  101. pulumi_gcp/cloudrunv2/service_iam_policy.py +2 -2
  102. pulumi_gcp/cloudscheduler/job.py +4 -4
  103. pulumi_gcp/cloudtasks/queue_iam_binding.py +2 -2
  104. pulumi_gcp/cloudtasks/queue_iam_member.py +2 -2
  105. pulumi_gcp/cloudtasks/queue_iam_policy.py +2 -2
  106. pulumi_gcp/compute/__init__.py +1 -0
  107. pulumi_gcp/compute/_inputs.py +396 -166
  108. pulumi_gcp/compute/backend_bucket_iam_binding.py +2 -2
  109. pulumi_gcp/compute/backend_bucket_iam_member.py +2 -2
  110. pulumi_gcp/compute/backend_bucket_iam_policy.py +2 -2
  111. pulumi_gcp/compute/backend_service.py +76 -0
  112. pulumi_gcp/compute/backend_service_iam_binding.py +2 -2
  113. pulumi_gcp/compute/backend_service_iam_member.py +2 -2
  114. pulumi_gcp/compute/backend_service_iam_policy.py +2 -2
  115. pulumi_gcp/compute/disk_iam_binding.py +2 -2
  116. pulumi_gcp/compute/disk_iam_member.py +2 -2
  117. pulumi_gcp/compute/disk_iam_policy.py +2 -2
  118. pulumi_gcp/compute/get_backend_service.py +12 -1
  119. pulumi_gcp/compute/get_instance.py +29 -1
  120. pulumi_gcp/compute/get_instance_guest_attributes.py +277 -0
  121. pulumi_gcp/compute/get_instance_template.py +29 -1
  122. pulumi_gcp/compute/get_region_instance_group_manager.py +0 -18
  123. pulumi_gcp/compute/get_region_instance_template.py +29 -1
  124. pulumi_gcp/compute/image.py +76 -22
  125. pulumi_gcp/compute/image_iam_binding.py +2 -2
  126. pulumi_gcp/compute/image_iam_member.py +2 -2
  127. pulumi_gcp/compute/image_iam_policy.py +2 -2
  128. pulumi_gcp/compute/instance.py +89 -0
  129. pulumi_gcp/compute/instance_from_machine_image.py +82 -0
  130. pulumi_gcp/compute/instance_from_template.py +82 -0
  131. pulumi_gcp/compute/instance_iam_binding.py +2 -2
  132. pulumi_gcp/compute/instance_iam_member.py +2 -2
  133. pulumi_gcp/compute/instance_iam_policy.py +2 -2
  134. pulumi_gcp/compute/instance_template.py +75 -0
  135. pulumi_gcp/compute/machine_image_iam_binding.py +2 -2
  136. pulumi_gcp/compute/machine_image_iam_member.py +2 -2
  137. pulumi_gcp/compute/machine_image_iam_policy.py +2 -2
  138. pulumi_gcp/compute/network_firewall_policy_association.py +76 -50
  139. pulumi_gcp/compute/network_firewall_policy_rule.py +149 -103
  140. pulumi_gcp/compute/outputs.py +367 -110
  141. pulumi_gcp/compute/region_backend_service.py +94 -0
  142. pulumi_gcp/compute/region_backend_service_iam_binding.py +2 -2
  143. pulumi_gcp/compute/region_backend_service_iam_member.py +2 -2
  144. pulumi_gcp/compute/region_backend_service_iam_policy.py +2 -2
  145. pulumi_gcp/compute/region_disk_iam_binding.py +2 -2
  146. pulumi_gcp/compute/region_disk_iam_member.py +2 -2
  147. pulumi_gcp/compute/region_disk_iam_policy.py +2 -2
  148. pulumi_gcp/compute/region_instance_template.py +75 -0
  149. pulumi_gcp/compute/region_network_endpoint_group.py +6 -4
  150. pulumi_gcp/compute/region_network_firewall_policy_association.py +104 -54
  151. pulumi_gcp/compute/region_network_firewall_policy_rule.py +160 -107
  152. pulumi_gcp/compute/region_security_policy_rule.py +74 -0
  153. pulumi_gcp/compute/security_policy_rule.py +111 -13
  154. pulumi_gcp/compute/snapshot_iam_binding.py +2 -2
  155. pulumi_gcp/compute/snapshot_iam_member.py +2 -2
  156. pulumi_gcp/compute/snapshot_iam_policy.py +2 -2
  157. pulumi_gcp/compute/subnetwork_iam_binding.py +2 -2
  158. pulumi_gcp/compute/subnetwork_iam_member.py +2 -2
  159. pulumi_gcp/compute/subnetwork_iam_policy.py +2 -2
  160. pulumi_gcp/compute/url_map.py +10 -10
  161. pulumi_gcp/config/__init__.pyi +4 -0
  162. pulumi_gcp/config/vars.py +8 -0
  163. pulumi_gcp/container/attached_cluster.py +9 -6
  164. pulumi_gcp/container/aws_node_pool.py +12 -12
  165. pulumi_gcp/container/outputs.py +2 -2
  166. pulumi_gcp/containeranalysis/note_iam_binding.py +2 -2
  167. pulumi_gcp/containeranalysis/note_iam_member.py +2 -2
  168. pulumi_gcp/containeranalysis/note_iam_policy.py +2 -2
  169. pulumi_gcp/datacatalog/entry_group_iam_binding.py +2 -2
  170. pulumi_gcp/datacatalog/entry_group_iam_member.py +2 -2
  171. pulumi_gcp/datacatalog/entry_group_iam_policy.py +2 -2
  172. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +4 -4
  173. pulumi_gcp/datacatalog/policy_tag_iam_member.py +4 -4
  174. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +4 -4
  175. pulumi_gcp/datacatalog/tag_template_iam_binding.py +2 -2
  176. pulumi_gcp/datacatalog/tag_template_iam_member.py +2 -2
  177. pulumi_gcp/datacatalog/tag_template_iam_policy.py +2 -2
  178. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +2 -2
  179. pulumi_gcp/datacatalog/taxonomy_iam_member.py +2 -2
  180. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +2 -2
  181. pulumi_gcp/dataplex/aspect_type_iam_binding.py +2 -2
  182. pulumi_gcp/dataplex/aspect_type_iam_member.py +2 -2
  183. pulumi_gcp/dataplex/aspect_type_iam_policy.py +2 -2
  184. pulumi_gcp/dataplex/asset_iam_binding.py +2 -2
  185. pulumi_gcp/dataplex/asset_iam_member.py +2 -2
  186. pulumi_gcp/dataplex/asset_iam_policy.py +2 -2
  187. pulumi_gcp/dataplex/datascan_iam_binding.py +2 -2
  188. pulumi_gcp/dataplex/datascan_iam_member.py +2 -2
  189. pulumi_gcp/dataplex/datascan_iam_policy.py +2 -2
  190. pulumi_gcp/dataplex/entry_group_iam_binding.py +2 -2
  191. pulumi_gcp/dataplex/entry_group_iam_member.py +2 -2
  192. pulumi_gcp/dataplex/entry_group_iam_policy.py +2 -2
  193. pulumi_gcp/dataplex/entry_type_iam_binding.py +2 -2
  194. pulumi_gcp/dataplex/entry_type_iam_member.py +2 -2
  195. pulumi_gcp/dataplex/entry_type_iam_policy.py +2 -2
  196. pulumi_gcp/dataplex/lake_iam_binding.py +2 -2
  197. pulumi_gcp/dataplex/lake_iam_member.py +2 -2
  198. pulumi_gcp/dataplex/lake_iam_policy.py +2 -2
  199. pulumi_gcp/dataplex/task.py +4 -4
  200. pulumi_gcp/dataplex/task_iam_binding.py +2 -2
  201. pulumi_gcp/dataplex/task_iam_member.py +2 -2
  202. pulumi_gcp/dataplex/task_iam_policy.py +2 -2
  203. pulumi_gcp/dataplex/zone_iam_binding.py +2 -2
  204. pulumi_gcp/dataplex/zone_iam_member.py +2 -2
  205. pulumi_gcp/dataplex/zone_iam_policy.py +2 -2
  206. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +2 -2
  207. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +2 -2
  208. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +2 -2
  209. pulumi_gcp/dataproc/batch.py +24 -24
  210. pulumi_gcp/dataproc/cluster.py +2 -2
  211. pulumi_gcp/dataproc/job.py +4 -4
  212. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +2 -2
  213. pulumi_gcp/dataproc/metastore_federation_iam_member.py +2 -2
  214. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +2 -2
  215. pulumi_gcp/dataproc/metastore_service_iam_binding.py +2 -2
  216. pulumi_gcp/dataproc/metastore_service_iam_member.py +2 -2
  217. pulumi_gcp/dataproc/metastore_service_iam_policy.py +2 -2
  218. pulumi_gcp/datastream/stream.py +2 -2
  219. pulumi_gcp/diagflow/_inputs.py +472 -2
  220. pulumi_gcp/diagflow/cx_agent.py +64 -4
  221. pulumi_gcp/diagflow/cx_flow.py +34 -4
  222. pulumi_gcp/diagflow/cx_page.py +10 -10
  223. pulumi_gcp/diagflow/outputs.py +378 -2
  224. pulumi_gcp/dns/dns_managed_zone_iam_binding.py +2 -2
  225. pulumi_gcp/dns/dns_managed_zone_iam_member.py +2 -2
  226. pulumi_gcp/dns/dns_managed_zone_iam_policy.py +2 -2
  227. pulumi_gcp/endpoints/consumers_iam_binding.py +2 -2
  228. pulumi_gcp/endpoints/consumers_iam_member.py +2 -2
  229. pulumi_gcp/endpoints/consumers_iam_policy.py +2 -2
  230. pulumi_gcp/endpoints/service_iam_binding.py +4 -4
  231. pulumi_gcp/endpoints/service_iam_member.py +4 -4
  232. pulumi_gcp/endpoints/service_iam_policy.py +4 -4
  233. pulumi_gcp/firebase/extensions_instance.py +24 -24
  234. pulumi_gcp/gkebackup/backup_plan_iam_binding.py +2 -2
  235. pulumi_gcp/gkebackup/backup_plan_iam_member.py +2 -2
  236. pulumi_gcp/gkebackup/backup_plan_iam_policy.py +2 -2
  237. pulumi_gcp/gkebackup/restore_plan.py +18 -18
  238. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +2 -2
  239. pulumi_gcp/gkebackup/restore_plan_iam_member.py +2 -2
  240. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +2 -2
  241. pulumi_gcp/gkehub/_inputs.py +21 -21
  242. pulumi_gcp/gkehub/feature.py +2 -4
  243. pulumi_gcp/gkehub/feature_iam_binding.py +2 -2
  244. pulumi_gcp/gkehub/feature_iam_member.py +2 -2
  245. pulumi_gcp/gkehub/feature_iam_policy.py +2 -2
  246. pulumi_gcp/gkehub/membership_iam_binding.py +2 -2
  247. pulumi_gcp/gkehub/membership_iam_member.py +2 -2
  248. pulumi_gcp/gkehub/membership_iam_policy.py +2 -2
  249. pulumi_gcp/gkehub/outputs.py +13 -13
  250. pulumi_gcp/gkehub/scope_iam_binding.py +2 -2
  251. pulumi_gcp/gkehub/scope_iam_member.py +2 -2
  252. pulumi_gcp/gkehub/scope_iam_policy.py +2 -2
  253. pulumi_gcp/healthcare/consent_store_iam_binding.py +4 -4
  254. pulumi_gcp/healthcare/consent_store_iam_member.py +4 -4
  255. pulumi_gcp/healthcare/consent_store_iam_policy.py +4 -4
  256. pulumi_gcp/iam/workload_identity_pool_provider.py +56 -0
  257. pulumi_gcp/iap/__init__.py +1 -0
  258. pulumi_gcp/iap/_inputs.py +1002 -0
  259. pulumi_gcp/iap/app_engine_service_iam_binding.py +2 -2
  260. pulumi_gcp/iap/app_engine_service_iam_member.py +2 -2
  261. pulumi_gcp/iap/app_engine_service_iam_policy.py +2 -2
  262. pulumi_gcp/iap/app_engine_version_iam_binding.py +2 -2
  263. pulumi_gcp/iap/app_engine_version_iam_member.py +2 -2
  264. pulumi_gcp/iap/app_engine_version_iam_policy.py +2 -2
  265. pulumi_gcp/iap/outputs.py +827 -0
  266. pulumi_gcp/iap/settings.py +546 -0
  267. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +2 -2
  268. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +2 -2
  269. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +2 -2
  270. pulumi_gcp/iap/tunnel_iam_binding.py +2 -2
  271. pulumi_gcp/iap/tunnel_iam_member.py +2 -2
  272. pulumi_gcp/iap/tunnel_iam_policy.py +2 -2
  273. pulumi_gcp/iap/tunnel_instance_iam_binding.py +2 -2
  274. pulumi_gcp/iap/tunnel_instance_iam_member.py +2 -2
  275. pulumi_gcp/iap/tunnel_instance_iam_policy.py +2 -2
  276. pulumi_gcp/iap/web_backend_service_iam_binding.py +2 -2
  277. pulumi_gcp/iap/web_backend_service_iam_member.py +2 -2
  278. pulumi_gcp/iap/web_backend_service_iam_policy.py +2 -2
  279. pulumi_gcp/iap/web_iam_binding.py +2 -2
  280. pulumi_gcp/iap/web_iam_member.py +2 -2
  281. pulumi_gcp/iap/web_iam_policy.py +2 -2
  282. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +2 -2
  283. pulumi_gcp/iap/web_region_backend_service_iam_member.py +2 -2
  284. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +2 -2
  285. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +2 -2
  286. pulumi_gcp/iap/web_type_app_enging_iam_member.py +2 -2
  287. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +2 -2
  288. pulumi_gcp/iap/web_type_compute_iam_binding.py +2 -2
  289. pulumi_gcp/iap/web_type_compute_iam_member.py +2 -2
  290. pulumi_gcp/iap/web_type_compute_iam_policy.py +2 -2
  291. pulumi_gcp/identityplatform/config.py +2 -2
  292. pulumi_gcp/kms/ekm_connection_iam_binding.py +2 -2
  293. pulumi_gcp/kms/ekm_connection_iam_member.py +2 -2
  294. pulumi_gcp/kms/ekm_connection_iam_policy.py +2 -2
  295. pulumi_gcp/logging/log_view_iam_binding.py +4 -4
  296. pulumi_gcp/logging/log_view_iam_member.py +4 -4
  297. pulumi_gcp/logging/log_view_iam_policy.py +4 -4
  298. pulumi_gcp/looker/instance.py +104 -2
  299. pulumi_gcp/memorystore/_inputs.py +117 -4
  300. pulumi_gcp/memorystore/instance.py +105 -0
  301. pulumi_gcp/memorystore/outputs.py +80 -4
  302. pulumi_gcp/monitoring/_inputs.py +23 -0
  303. pulumi_gcp/monitoring/get_secret_version.py +22 -3
  304. pulumi_gcp/monitoring/outputs.py +16 -0
  305. pulumi_gcp/networkconnectivity/__init__.py +1 -0
  306. pulumi_gcp/networkconnectivity/_inputs.py +148 -0
  307. pulumi_gcp/networkconnectivity/group.py +764 -0
  308. pulumi_gcp/networkconnectivity/outputs.py +125 -0
  309. pulumi_gcp/networkconnectivity/spoke.py +144 -0
  310. pulumi_gcp/networksecurity/address_group_iam_binding.py +2 -2
  311. pulumi_gcp/networksecurity/address_group_iam_member.py +2 -2
  312. pulumi_gcp/networksecurity/address_group_iam_policy.py +2 -2
  313. pulumi_gcp/networksecurity/gateway_security_policy.py +7 -0
  314. pulumi_gcp/networksecurity/server_tls_policy.py +2 -2
  315. pulumi_gcp/networkservices/edge_cache_service.py +2 -2
  316. pulumi_gcp/networkservices/http_route.py +4 -4
  317. pulumi_gcp/notebooks/instance_iam_binding.py +2 -2
  318. pulumi_gcp/notebooks/instance_iam_member.py +2 -2
  319. pulumi_gcp/notebooks/instance_iam_policy.py +2 -2
  320. pulumi_gcp/notebooks/runtime_iam_binding.py +2 -2
  321. pulumi_gcp/notebooks/runtime_iam_member.py +2 -2
  322. pulumi_gcp/notebooks/runtime_iam_policy.py +2 -2
  323. pulumi_gcp/oracledatabase/__init__.py +20 -0
  324. pulumi_gcp/oracledatabase/_inputs.py +4745 -0
  325. pulumi_gcp/oracledatabase/autonomous_database.py +983 -0
  326. pulumi_gcp/oracledatabase/cloud_exadata_infrastructure.py +842 -0
  327. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +1086 -0
  328. pulumi_gcp/oracledatabase/get_autonomous_database.py +290 -0
  329. pulumi_gcp/oracledatabase/get_autonomous_databases.py +150 -0
  330. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructure.py +257 -0
  331. pulumi_gcp/oracledatabase/get_cloud_exadata_infrastructures.py +150 -0
  332. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +290 -0
  333. pulumi_gcp/oracledatabase/get_cloud_vm_clusters.py +150 -0
  334. pulumi_gcp/oracledatabase/get_db_nodes.py +245 -0
  335. pulumi_gcp/oracledatabase/get_db_servers.py +245 -0
  336. pulumi_gcp/oracledatabase/outputs.py +9304 -0
  337. pulumi_gcp/organizations/folder.py +7 -7
  338. pulumi_gcp/organizations/project.py +7 -7
  339. pulumi_gcp/orgpolicy/_inputs.py +3 -3
  340. pulumi_gcp/orgpolicy/outputs.py +2 -2
  341. pulumi_gcp/osconfig/os_policy_assignment.py +4 -4
  342. pulumi_gcp/privilegedaccessmanager/get_entitlement.py +46 -2
  343. pulumi_gcp/provider.py +40 -0
  344. pulumi_gcp/pubsub/schema_iam_binding.py +2 -2
  345. pulumi_gcp/pubsub/schema_iam_member.py +2 -2
  346. pulumi_gcp/pubsub/schema_iam_policy.py +2 -2
  347. pulumi_gcp/pubsub/subscription.py +18 -66
  348. pulumi_gcp/pubsub/topic_iam_binding.py +2 -2
  349. pulumi_gcp/pubsub/topic_iam_member.py +2 -2
  350. pulumi_gcp/pubsub/topic_iam_policy.py +2 -2
  351. pulumi_gcp/pulumi-plugin.json +1 -1
  352. pulumi_gcp/runtimeconfig/config_iam_binding.py +2 -2
  353. pulumi_gcp/runtimeconfig/config_iam_member.py +2 -2
  354. pulumi_gcp/runtimeconfig/config_iam_policy.py +2 -2
  355. pulumi_gcp/secretmanager/get_regional_secret_version.py +24 -5
  356. pulumi_gcp/secretmanager/get_regional_secret_version_access.py +24 -5
  357. pulumi_gcp/secretmanager/get_secret_version.py +22 -3
  358. pulumi_gcp/secretmanager/get_secret_version_access.py +22 -3
  359. pulumi_gcp/secretmanager/regional_secret.py +2 -2
  360. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +2 -2
  361. pulumi_gcp/secretmanager/regional_secret_iam_member.py +2 -2
  362. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +2 -2
  363. pulumi_gcp/secretmanager/secret_iam_binding.py +2 -2
  364. pulumi_gcp/secretmanager/secret_iam_member.py +2 -2
  365. pulumi_gcp/secretmanager/secret_iam_policy.py +2 -2
  366. pulumi_gcp/securesourcemanager/repository_iam_binding.py +2 -2
  367. pulumi_gcp/securesourcemanager/repository_iam_member.py +2 -2
  368. pulumi_gcp/securesourcemanager/repository_iam_policy.py +2 -2
  369. pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +4 -4
  370. pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +4 -4
  371. pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +4 -4
  372. pulumi_gcp/serviceaccount/__init__.py +1 -0
  373. pulumi_gcp/serviceaccount/get_account.py +15 -1
  374. pulumi_gcp/serviceaccount/get_s.py +132 -0
  375. pulumi_gcp/serviceaccount/outputs.py +89 -0
  376. pulumi_gcp/servicedirectory/namespace_iam_binding.py +4 -4
  377. pulumi_gcp/servicedirectory/namespace_iam_member.py +4 -4
  378. pulumi_gcp/servicedirectory/namespace_iam_policy.py +4 -4
  379. pulumi_gcp/servicedirectory/service_iam_binding.py +4 -4
  380. pulumi_gcp/servicedirectory/service_iam_member.py +4 -4
  381. pulumi_gcp/servicedirectory/service_iam_policy.py +4 -4
  382. pulumi_gcp/siteverification/get_token.py +0 -16
  383. pulumi_gcp/siteverification/owner.py +0 -16
  384. pulumi_gcp/sourcerepo/repository_iam_binding.py +2 -2
  385. pulumi_gcp/sourcerepo/repository_iam_member.py +2 -2
  386. pulumi_gcp/sourcerepo/repository_iam_policy.py +2 -2
  387. pulumi_gcp/spanner/_inputs.py +237 -17
  388. pulumi_gcp/spanner/outputs.py +307 -12
  389. pulumi_gcp/sql/_inputs.py +12 -9
  390. pulumi_gcp/sql/outputs.py +8 -6
  391. pulumi_gcp/sql/user.py +28 -21
  392. pulumi_gcp/storage/_inputs.py +33 -0
  393. pulumi_gcp/storage/bucket.py +47 -0
  394. pulumi_gcp/storage/bucket_iam_binding.py +2 -2
  395. pulumi_gcp/storage/bucket_iam_member.py +2 -2
  396. pulumi_gcp/storage/bucket_iam_policy.py +2 -2
  397. pulumi_gcp/storage/get_bucket.py +12 -1
  398. pulumi_gcp/storage/managed_folder_iam_binding.py +4 -4
  399. pulumi_gcp/storage/managed_folder_iam_member.py +4 -4
  400. pulumi_gcp/storage/managed_folder_iam_policy.py +4 -4
  401. pulumi_gcp/storage/outputs.py +38 -0
  402. pulumi_gcp/tags/tag_key_iam_binding.py +4 -4
  403. pulumi_gcp/tags/tag_key_iam_member.py +4 -4
  404. pulumi_gcp/tags/tag_key_iam_policy.py +4 -4
  405. pulumi_gcp/tags/tag_value_iam_binding.py +4 -4
  406. pulumi_gcp/tags/tag_value_iam_member.py +4 -4
  407. pulumi_gcp/tags/tag_value_iam_policy.py +4 -4
  408. pulumi_gcp/transcoder/__init__.py +11 -0
  409. pulumi_gcp/transcoder/_inputs.py +3991 -0
  410. pulumi_gcp/transcoder/job.py +2134 -0
  411. pulumi_gcp/transcoder/job_template.py +1524 -0
  412. pulumi_gcp/transcoder/outputs.py +2918 -0
  413. pulumi_gcp/vertex/ai_deployment_resource_pool.py +2 -2
  414. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_binding.py +2 -2
  415. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_member.py +2 -2
  416. pulumi_gcp/vertex/ai_feature_store_entity_type_iam_policy.py +2 -2
  417. pulumi_gcp/vertex/ai_feature_store_iam_binding.py +2 -2
  418. pulumi_gcp/vertex/ai_feature_store_iam_member.py +2 -2
  419. pulumi_gcp/vertex/ai_feature_store_iam_policy.py +2 -2
  420. pulumi_gcp/vmwareengine/_inputs.py +912 -6
  421. pulumi_gcp/vmwareengine/cluster.py +100 -2
  422. pulumi_gcp/vmwareengine/get_cluster.py +12 -1
  423. pulumi_gcp/vmwareengine/outputs.py +1310 -49
  424. pulumi_gcp/vmwareengine/private_cloud.py +44 -0
  425. pulumi_gcp/workstations/_inputs.py +54 -0
  426. pulumi_gcp/workstations/outputs.py +32 -0
  427. pulumi_gcp/workstations/workstation_config.py +211 -6
  428. pulumi_gcp/workstations/workstation_config_iam_binding.py +2 -2
  429. pulumi_gcp/workstations/workstation_config_iam_member.py +2 -2
  430. pulumi_gcp/workstations/workstation_config_iam_policy.py +2 -2
  431. pulumi_gcp/workstations/workstation_iam_binding.py +2 -2
  432. pulumi_gcp/workstations/workstation_iam_member.py +2 -2
  433. pulumi_gcp/workstations/workstation_iam_policy.py +2 -2
  434. {pulumi_gcp-8.7.0a1730183903.dist-info → pulumi_gcp-8.8.0.dist-info}/METADATA +1 -1
  435. {pulumi_gcp-8.7.0a1730183903.dist-info → pulumi_gcp-8.8.0.dist-info}/RECORD +437 -412
  436. {pulumi_gcp-8.7.0a1730183903.dist-info → pulumi_gcp-8.8.0.dist-info}/WHEEL +1 -1
  437. {pulumi_gcp-8.7.0a1730183903.dist-info → pulumi_gcp-8.8.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,3991 @@
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
+
17
+ __all__ = [
18
+ 'JobConfigArgs',
19
+ 'JobConfigArgsDict',
20
+ 'JobConfigAdBreakArgs',
21
+ 'JobConfigAdBreakArgsDict',
22
+ 'JobConfigEditListArgs',
23
+ 'JobConfigEditListArgsDict',
24
+ 'JobConfigElementaryStreamArgs',
25
+ 'JobConfigElementaryStreamArgsDict',
26
+ 'JobConfigElementaryStreamAudioStreamArgs',
27
+ 'JobConfigElementaryStreamAudioStreamArgsDict',
28
+ 'JobConfigElementaryStreamVideoStreamArgs',
29
+ 'JobConfigElementaryStreamVideoStreamArgsDict',
30
+ 'JobConfigElementaryStreamVideoStreamH264Args',
31
+ 'JobConfigElementaryStreamVideoStreamH264ArgsDict',
32
+ 'JobConfigElementaryStreamVideoStreamH264HlgArgs',
33
+ 'JobConfigElementaryStreamVideoStreamH264HlgArgsDict',
34
+ 'JobConfigElementaryStreamVideoStreamH264SdrArgs',
35
+ 'JobConfigElementaryStreamVideoStreamH264SdrArgsDict',
36
+ 'JobConfigEncryptionArgs',
37
+ 'JobConfigEncryptionArgsDict',
38
+ 'JobConfigEncryptionAes128Args',
39
+ 'JobConfigEncryptionAes128ArgsDict',
40
+ 'JobConfigEncryptionDrmSystemsArgs',
41
+ 'JobConfigEncryptionDrmSystemsArgsDict',
42
+ 'JobConfigEncryptionDrmSystemsClearkeyArgs',
43
+ 'JobConfigEncryptionDrmSystemsClearkeyArgsDict',
44
+ 'JobConfigEncryptionDrmSystemsFairplayArgs',
45
+ 'JobConfigEncryptionDrmSystemsFairplayArgsDict',
46
+ 'JobConfigEncryptionDrmSystemsPlayreadyArgs',
47
+ 'JobConfigEncryptionDrmSystemsPlayreadyArgsDict',
48
+ 'JobConfigEncryptionDrmSystemsWidevineArgs',
49
+ 'JobConfigEncryptionDrmSystemsWidevineArgsDict',
50
+ 'JobConfigEncryptionMpegCencArgs',
51
+ 'JobConfigEncryptionMpegCencArgsDict',
52
+ 'JobConfigEncryptionSampleAesArgs',
53
+ 'JobConfigEncryptionSampleAesArgsDict',
54
+ 'JobConfigEncryptionSecretManagerKeySourceArgs',
55
+ 'JobConfigEncryptionSecretManagerKeySourceArgsDict',
56
+ 'JobConfigInputArgs',
57
+ 'JobConfigInputArgsDict',
58
+ 'JobConfigManifestArgs',
59
+ 'JobConfigManifestArgsDict',
60
+ 'JobConfigMuxStreamArgs',
61
+ 'JobConfigMuxStreamArgsDict',
62
+ 'JobConfigMuxStreamSegmentSettingsArgs',
63
+ 'JobConfigMuxStreamSegmentSettingsArgsDict',
64
+ 'JobConfigOutputArgs',
65
+ 'JobConfigOutputArgsDict',
66
+ 'JobConfigOverlayArgs',
67
+ 'JobConfigOverlayArgsDict',
68
+ 'JobConfigOverlayAnimationArgs',
69
+ 'JobConfigOverlayAnimationArgsDict',
70
+ 'JobConfigOverlayAnimationAnimationFadeArgs',
71
+ 'JobConfigOverlayAnimationAnimationFadeArgsDict',
72
+ 'JobConfigOverlayAnimationAnimationFadeXyArgs',
73
+ 'JobConfigOverlayAnimationAnimationFadeXyArgsDict',
74
+ 'JobConfigOverlayImageArgs',
75
+ 'JobConfigOverlayImageArgsDict',
76
+ 'JobConfigPubsubDestinationArgs',
77
+ 'JobConfigPubsubDestinationArgsDict',
78
+ 'JobTemplateConfigArgs',
79
+ 'JobTemplateConfigArgsDict',
80
+ 'JobTemplateConfigAdBreakArgs',
81
+ 'JobTemplateConfigAdBreakArgsDict',
82
+ 'JobTemplateConfigEditListArgs',
83
+ 'JobTemplateConfigEditListArgsDict',
84
+ 'JobTemplateConfigElementaryStreamArgs',
85
+ 'JobTemplateConfigElementaryStreamArgsDict',
86
+ 'JobTemplateConfigElementaryStreamAudioStreamArgs',
87
+ 'JobTemplateConfigElementaryStreamAudioStreamArgsDict',
88
+ 'JobTemplateConfigElementaryStreamVideoStreamArgs',
89
+ 'JobTemplateConfigElementaryStreamVideoStreamArgsDict',
90
+ 'JobTemplateConfigElementaryStreamVideoStreamH264Args',
91
+ 'JobTemplateConfigElementaryStreamVideoStreamH264ArgsDict',
92
+ 'JobTemplateConfigElementaryStreamVideoStreamH264HlgArgs',
93
+ 'JobTemplateConfigElementaryStreamVideoStreamH264HlgArgsDict',
94
+ 'JobTemplateConfigElementaryStreamVideoStreamH264SdrArgs',
95
+ 'JobTemplateConfigElementaryStreamVideoStreamH264SdrArgsDict',
96
+ 'JobTemplateConfigEncryptionArgs',
97
+ 'JobTemplateConfigEncryptionArgsDict',
98
+ 'JobTemplateConfigEncryptionAes128Args',
99
+ 'JobTemplateConfigEncryptionAes128ArgsDict',
100
+ 'JobTemplateConfigEncryptionDrmSystemsArgs',
101
+ 'JobTemplateConfigEncryptionDrmSystemsArgsDict',
102
+ 'JobTemplateConfigEncryptionDrmSystemsClearkeyArgs',
103
+ 'JobTemplateConfigEncryptionDrmSystemsClearkeyArgsDict',
104
+ 'JobTemplateConfigEncryptionDrmSystemsFairplayArgs',
105
+ 'JobTemplateConfigEncryptionDrmSystemsFairplayArgsDict',
106
+ 'JobTemplateConfigEncryptionDrmSystemsPlayreadyArgs',
107
+ 'JobTemplateConfigEncryptionDrmSystemsPlayreadyArgsDict',
108
+ 'JobTemplateConfigEncryptionDrmSystemsWidevineArgs',
109
+ 'JobTemplateConfigEncryptionDrmSystemsWidevineArgsDict',
110
+ 'JobTemplateConfigEncryptionMpegCencArgs',
111
+ 'JobTemplateConfigEncryptionMpegCencArgsDict',
112
+ 'JobTemplateConfigEncryptionSampleAesArgs',
113
+ 'JobTemplateConfigEncryptionSampleAesArgsDict',
114
+ 'JobTemplateConfigEncryptionSecretManagerKeySourceArgs',
115
+ 'JobTemplateConfigEncryptionSecretManagerKeySourceArgsDict',
116
+ 'JobTemplateConfigInputArgs',
117
+ 'JobTemplateConfigInputArgsDict',
118
+ 'JobTemplateConfigManifestArgs',
119
+ 'JobTemplateConfigManifestArgsDict',
120
+ 'JobTemplateConfigMuxStreamArgs',
121
+ 'JobTemplateConfigMuxStreamArgsDict',
122
+ 'JobTemplateConfigMuxStreamSegmentSettingsArgs',
123
+ 'JobTemplateConfigMuxStreamSegmentSettingsArgsDict',
124
+ 'JobTemplateConfigOutputArgs',
125
+ 'JobTemplateConfigOutputArgsDict',
126
+ 'JobTemplateConfigOverlayArgs',
127
+ 'JobTemplateConfigOverlayArgsDict',
128
+ 'JobTemplateConfigOverlayAnimationArgs',
129
+ 'JobTemplateConfigOverlayAnimationArgsDict',
130
+ 'JobTemplateConfigOverlayAnimationAnimationFadeArgs',
131
+ 'JobTemplateConfigOverlayAnimationAnimationFadeArgsDict',
132
+ 'JobTemplateConfigOverlayAnimationAnimationFadeXyArgs',
133
+ 'JobTemplateConfigOverlayAnimationAnimationFadeXyArgsDict',
134
+ 'JobTemplateConfigOverlayImageArgs',
135
+ 'JobTemplateConfigOverlayImageArgsDict',
136
+ 'JobTemplateConfigPubsubDestinationArgs',
137
+ 'JobTemplateConfigPubsubDestinationArgsDict',
138
+ ]
139
+
140
+ MYPY = False
141
+
142
+ if not MYPY:
143
+ class JobConfigArgsDict(TypedDict):
144
+ ad_breaks: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobConfigAdBreakArgsDict']]]]
145
+ """
146
+ Ad break.
147
+ Structure is documented below.
148
+ """
149
+ edit_lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobConfigEditListArgsDict']]]]
150
+ """
151
+ List of input assets stored in Cloud Storage.
152
+ Structure is documented below.
153
+ """
154
+ elementary_streams: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobConfigElementaryStreamArgsDict']]]]
155
+ """
156
+ List of input assets stored in Cloud Storage.
157
+ Structure is documented below.
158
+ """
159
+ encryptions: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobConfigEncryptionArgsDict']]]]
160
+ """
161
+ List of encryption configurations for the content.
162
+ Structure is documented below.
163
+ """
164
+ inputs: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobConfigInputArgsDict']]]]
165
+ """
166
+ List of input assets stored in Cloud Storage.
167
+ Structure is documented below.
168
+ """
169
+ manifests: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobConfigManifestArgsDict']]]]
170
+ """
171
+ Manifest configuration.
172
+ Structure is documented below.
173
+ """
174
+ mux_streams: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobConfigMuxStreamArgsDict']]]]
175
+ """
176
+ Multiplexing settings for output stream.
177
+ Structure is documented below.
178
+ """
179
+ output: NotRequired[pulumi.Input['JobConfigOutputArgsDict']]
180
+ """
181
+ Location of output file(s) in a Cloud Storage bucket.
182
+ Structure is documented below.
183
+ """
184
+ overlays: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobConfigOverlayArgsDict']]]]
185
+ """
186
+ List of overlays on the output video, in descending Z-order.
187
+ Structure is documented below.
188
+ """
189
+ pubsub_destination: NotRequired[pulumi.Input['JobConfigPubsubDestinationArgsDict']]
190
+ """
191
+ Pub/Sub destination.
192
+ Structure is documented below.
193
+ """
194
+ elif False:
195
+ JobConfigArgsDict: TypeAlias = Mapping[str, Any]
196
+
197
+ @pulumi.input_type
198
+ class JobConfigArgs:
199
+ def __init__(__self__, *,
200
+ ad_breaks: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigAdBreakArgs']]]] = None,
201
+ edit_lists: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigEditListArgs']]]] = None,
202
+ elementary_streams: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigElementaryStreamArgs']]]] = None,
203
+ encryptions: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigEncryptionArgs']]]] = None,
204
+ inputs: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigInputArgs']]]] = None,
205
+ manifests: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigManifestArgs']]]] = None,
206
+ mux_streams: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigMuxStreamArgs']]]] = None,
207
+ output: Optional[pulumi.Input['JobConfigOutputArgs']] = None,
208
+ overlays: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigOverlayArgs']]]] = None,
209
+ pubsub_destination: Optional[pulumi.Input['JobConfigPubsubDestinationArgs']] = None):
210
+ """
211
+ :param pulumi.Input[Sequence[pulumi.Input['JobConfigAdBreakArgs']]] ad_breaks: Ad break.
212
+ Structure is documented below.
213
+ :param pulumi.Input[Sequence[pulumi.Input['JobConfigEditListArgs']]] edit_lists: List of input assets stored in Cloud Storage.
214
+ Structure is documented below.
215
+ :param pulumi.Input[Sequence[pulumi.Input['JobConfigElementaryStreamArgs']]] elementary_streams: List of input assets stored in Cloud Storage.
216
+ Structure is documented below.
217
+ :param pulumi.Input[Sequence[pulumi.Input['JobConfigEncryptionArgs']]] encryptions: List of encryption configurations for the content.
218
+ Structure is documented below.
219
+ :param pulumi.Input[Sequence[pulumi.Input['JobConfigInputArgs']]] inputs: List of input assets stored in Cloud Storage.
220
+ Structure is documented below.
221
+ :param pulumi.Input[Sequence[pulumi.Input['JobConfigManifestArgs']]] manifests: Manifest configuration.
222
+ Structure is documented below.
223
+ :param pulumi.Input[Sequence[pulumi.Input['JobConfigMuxStreamArgs']]] mux_streams: Multiplexing settings for output stream.
224
+ Structure is documented below.
225
+ :param pulumi.Input['JobConfigOutputArgs'] output: Location of output file(s) in a Cloud Storage bucket.
226
+ Structure is documented below.
227
+ :param pulumi.Input[Sequence[pulumi.Input['JobConfigOverlayArgs']]] overlays: List of overlays on the output video, in descending Z-order.
228
+ Structure is documented below.
229
+ :param pulumi.Input['JobConfigPubsubDestinationArgs'] pubsub_destination: Pub/Sub destination.
230
+ Structure is documented below.
231
+ """
232
+ if ad_breaks is not None:
233
+ pulumi.set(__self__, "ad_breaks", ad_breaks)
234
+ if edit_lists is not None:
235
+ pulumi.set(__self__, "edit_lists", edit_lists)
236
+ if elementary_streams is not None:
237
+ pulumi.set(__self__, "elementary_streams", elementary_streams)
238
+ if encryptions is not None:
239
+ pulumi.set(__self__, "encryptions", encryptions)
240
+ if inputs is not None:
241
+ pulumi.set(__self__, "inputs", inputs)
242
+ if manifests is not None:
243
+ pulumi.set(__self__, "manifests", manifests)
244
+ if mux_streams is not None:
245
+ pulumi.set(__self__, "mux_streams", mux_streams)
246
+ if output is not None:
247
+ pulumi.set(__self__, "output", output)
248
+ if overlays is not None:
249
+ pulumi.set(__self__, "overlays", overlays)
250
+ if pubsub_destination is not None:
251
+ pulumi.set(__self__, "pubsub_destination", pubsub_destination)
252
+
253
+ @property
254
+ @pulumi.getter(name="adBreaks")
255
+ def ad_breaks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigAdBreakArgs']]]]:
256
+ """
257
+ Ad break.
258
+ Structure is documented below.
259
+ """
260
+ return pulumi.get(self, "ad_breaks")
261
+
262
+ @ad_breaks.setter
263
+ def ad_breaks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigAdBreakArgs']]]]):
264
+ pulumi.set(self, "ad_breaks", value)
265
+
266
+ @property
267
+ @pulumi.getter(name="editLists")
268
+ def edit_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigEditListArgs']]]]:
269
+ """
270
+ List of input assets stored in Cloud Storage.
271
+ Structure is documented below.
272
+ """
273
+ return pulumi.get(self, "edit_lists")
274
+
275
+ @edit_lists.setter
276
+ def edit_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigEditListArgs']]]]):
277
+ pulumi.set(self, "edit_lists", value)
278
+
279
+ @property
280
+ @pulumi.getter(name="elementaryStreams")
281
+ def elementary_streams(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigElementaryStreamArgs']]]]:
282
+ """
283
+ List of input assets stored in Cloud Storage.
284
+ Structure is documented below.
285
+ """
286
+ return pulumi.get(self, "elementary_streams")
287
+
288
+ @elementary_streams.setter
289
+ def elementary_streams(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigElementaryStreamArgs']]]]):
290
+ pulumi.set(self, "elementary_streams", value)
291
+
292
+ @property
293
+ @pulumi.getter
294
+ def encryptions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigEncryptionArgs']]]]:
295
+ """
296
+ List of encryption configurations for the content.
297
+ Structure is documented below.
298
+ """
299
+ return pulumi.get(self, "encryptions")
300
+
301
+ @encryptions.setter
302
+ def encryptions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigEncryptionArgs']]]]):
303
+ pulumi.set(self, "encryptions", value)
304
+
305
+ @property
306
+ @pulumi.getter
307
+ def inputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigInputArgs']]]]:
308
+ """
309
+ List of input assets stored in Cloud Storage.
310
+ Structure is documented below.
311
+ """
312
+ return pulumi.get(self, "inputs")
313
+
314
+ @inputs.setter
315
+ def inputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigInputArgs']]]]):
316
+ pulumi.set(self, "inputs", value)
317
+
318
+ @property
319
+ @pulumi.getter
320
+ def manifests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigManifestArgs']]]]:
321
+ """
322
+ Manifest configuration.
323
+ Structure is documented below.
324
+ """
325
+ return pulumi.get(self, "manifests")
326
+
327
+ @manifests.setter
328
+ def manifests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigManifestArgs']]]]):
329
+ pulumi.set(self, "manifests", value)
330
+
331
+ @property
332
+ @pulumi.getter(name="muxStreams")
333
+ def mux_streams(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigMuxStreamArgs']]]]:
334
+ """
335
+ Multiplexing settings for output stream.
336
+ Structure is documented below.
337
+ """
338
+ return pulumi.get(self, "mux_streams")
339
+
340
+ @mux_streams.setter
341
+ def mux_streams(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigMuxStreamArgs']]]]):
342
+ pulumi.set(self, "mux_streams", value)
343
+
344
+ @property
345
+ @pulumi.getter
346
+ def output(self) -> Optional[pulumi.Input['JobConfigOutputArgs']]:
347
+ """
348
+ Location of output file(s) in a Cloud Storage bucket.
349
+ Structure is documented below.
350
+ """
351
+ return pulumi.get(self, "output")
352
+
353
+ @output.setter
354
+ def output(self, value: Optional[pulumi.Input['JobConfigOutputArgs']]):
355
+ pulumi.set(self, "output", value)
356
+
357
+ @property
358
+ @pulumi.getter
359
+ def overlays(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigOverlayArgs']]]]:
360
+ """
361
+ List of overlays on the output video, in descending Z-order.
362
+ Structure is documented below.
363
+ """
364
+ return pulumi.get(self, "overlays")
365
+
366
+ @overlays.setter
367
+ def overlays(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigOverlayArgs']]]]):
368
+ pulumi.set(self, "overlays", value)
369
+
370
+ @property
371
+ @pulumi.getter(name="pubsubDestination")
372
+ def pubsub_destination(self) -> Optional[pulumi.Input['JobConfigPubsubDestinationArgs']]:
373
+ """
374
+ Pub/Sub destination.
375
+ Structure is documented below.
376
+ """
377
+ return pulumi.get(self, "pubsub_destination")
378
+
379
+ @pubsub_destination.setter
380
+ def pubsub_destination(self, value: Optional[pulumi.Input['JobConfigPubsubDestinationArgs']]):
381
+ pulumi.set(self, "pubsub_destination", value)
382
+
383
+
384
+ if not MYPY:
385
+ class JobConfigAdBreakArgsDict(TypedDict):
386
+ start_time_offset: NotRequired[pulumi.Input[str]]
387
+ """
388
+ Start time in seconds for the ad break, relative to the output file timeline
389
+ """
390
+ elif False:
391
+ JobConfigAdBreakArgsDict: TypeAlias = Mapping[str, Any]
392
+
393
+ @pulumi.input_type
394
+ class JobConfigAdBreakArgs:
395
+ def __init__(__self__, *,
396
+ start_time_offset: Optional[pulumi.Input[str]] = None):
397
+ """
398
+ :param pulumi.Input[str] start_time_offset: Start time in seconds for the ad break, relative to the output file timeline
399
+ """
400
+ if start_time_offset is not None:
401
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
402
+
403
+ @property
404
+ @pulumi.getter(name="startTimeOffset")
405
+ def start_time_offset(self) -> Optional[pulumi.Input[str]]:
406
+ """
407
+ Start time in seconds for the ad break, relative to the output file timeline
408
+ """
409
+ return pulumi.get(self, "start_time_offset")
410
+
411
+ @start_time_offset.setter
412
+ def start_time_offset(self, value: Optional[pulumi.Input[str]]):
413
+ pulumi.set(self, "start_time_offset", value)
414
+
415
+
416
+ if not MYPY:
417
+ class JobConfigEditListArgsDict(TypedDict):
418
+ inputs: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
419
+ """
420
+ List of values identifying files that should be used in this atom.
421
+ """
422
+ key: NotRequired[pulumi.Input[str]]
423
+ """
424
+ A unique key for this atom.
425
+ """
426
+ start_time_offset: NotRequired[pulumi.Input[str]]
427
+ """
428
+ Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.
429
+ """
430
+ elif False:
431
+ JobConfigEditListArgsDict: TypeAlias = Mapping[str, Any]
432
+
433
+ @pulumi.input_type
434
+ class JobConfigEditListArgs:
435
+ def __init__(__self__, *,
436
+ inputs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
437
+ key: Optional[pulumi.Input[str]] = None,
438
+ start_time_offset: Optional[pulumi.Input[str]] = None):
439
+ """
440
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] inputs: List of values identifying files that should be used in this atom.
441
+ :param pulumi.Input[str] key: A unique key for this atom.
442
+ :param pulumi.Input[str] start_time_offset: Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.
443
+ """
444
+ if inputs is not None:
445
+ pulumi.set(__self__, "inputs", inputs)
446
+ if key is not None:
447
+ pulumi.set(__self__, "key", key)
448
+ if start_time_offset is not None:
449
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
450
+
451
+ @property
452
+ @pulumi.getter
453
+ def inputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
454
+ """
455
+ List of values identifying files that should be used in this atom.
456
+ """
457
+ return pulumi.get(self, "inputs")
458
+
459
+ @inputs.setter
460
+ def inputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
461
+ pulumi.set(self, "inputs", value)
462
+
463
+ @property
464
+ @pulumi.getter
465
+ def key(self) -> Optional[pulumi.Input[str]]:
466
+ """
467
+ A unique key for this atom.
468
+ """
469
+ return pulumi.get(self, "key")
470
+
471
+ @key.setter
472
+ def key(self, value: Optional[pulumi.Input[str]]):
473
+ pulumi.set(self, "key", value)
474
+
475
+ @property
476
+ @pulumi.getter(name="startTimeOffset")
477
+ def start_time_offset(self) -> Optional[pulumi.Input[str]]:
478
+ """
479
+ Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.
480
+ """
481
+ return pulumi.get(self, "start_time_offset")
482
+
483
+ @start_time_offset.setter
484
+ def start_time_offset(self, value: Optional[pulumi.Input[str]]):
485
+ pulumi.set(self, "start_time_offset", value)
486
+
487
+
488
+ if not MYPY:
489
+ class JobConfigElementaryStreamArgsDict(TypedDict):
490
+ audio_stream: NotRequired[pulumi.Input['JobConfigElementaryStreamAudioStreamArgsDict']]
491
+ """
492
+ Encoding of an audio stream.
493
+ Structure is documented below.
494
+ """
495
+ key: NotRequired[pulumi.Input[str]]
496
+ """
497
+ A unique key for this atom.
498
+ """
499
+ video_stream: NotRequired[pulumi.Input['JobConfigElementaryStreamVideoStreamArgsDict']]
500
+ """
501
+ Encoding of a video stream.
502
+ Structure is documented below.
503
+ """
504
+ elif False:
505
+ JobConfigElementaryStreamArgsDict: TypeAlias = Mapping[str, Any]
506
+
507
+ @pulumi.input_type
508
+ class JobConfigElementaryStreamArgs:
509
+ def __init__(__self__, *,
510
+ audio_stream: Optional[pulumi.Input['JobConfigElementaryStreamAudioStreamArgs']] = None,
511
+ key: Optional[pulumi.Input[str]] = None,
512
+ video_stream: Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamArgs']] = None):
513
+ """
514
+ :param pulumi.Input['JobConfigElementaryStreamAudioStreamArgs'] audio_stream: Encoding of an audio stream.
515
+ Structure is documented below.
516
+ :param pulumi.Input[str] key: A unique key for this atom.
517
+ :param pulumi.Input['JobConfigElementaryStreamVideoStreamArgs'] video_stream: Encoding of a video stream.
518
+ Structure is documented below.
519
+ """
520
+ if audio_stream is not None:
521
+ pulumi.set(__self__, "audio_stream", audio_stream)
522
+ if key is not None:
523
+ pulumi.set(__self__, "key", key)
524
+ if video_stream is not None:
525
+ pulumi.set(__self__, "video_stream", video_stream)
526
+
527
+ @property
528
+ @pulumi.getter(name="audioStream")
529
+ def audio_stream(self) -> Optional[pulumi.Input['JobConfigElementaryStreamAudioStreamArgs']]:
530
+ """
531
+ Encoding of an audio stream.
532
+ Structure is documented below.
533
+ """
534
+ return pulumi.get(self, "audio_stream")
535
+
536
+ @audio_stream.setter
537
+ def audio_stream(self, value: Optional[pulumi.Input['JobConfigElementaryStreamAudioStreamArgs']]):
538
+ pulumi.set(self, "audio_stream", value)
539
+
540
+ @property
541
+ @pulumi.getter
542
+ def key(self) -> Optional[pulumi.Input[str]]:
543
+ """
544
+ A unique key for this atom.
545
+ """
546
+ return pulumi.get(self, "key")
547
+
548
+ @key.setter
549
+ def key(self, value: Optional[pulumi.Input[str]]):
550
+ pulumi.set(self, "key", value)
551
+
552
+ @property
553
+ @pulumi.getter(name="videoStream")
554
+ def video_stream(self) -> Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamArgs']]:
555
+ """
556
+ Encoding of a video stream.
557
+ Structure is documented below.
558
+ """
559
+ return pulumi.get(self, "video_stream")
560
+
561
+ @video_stream.setter
562
+ def video_stream(self, value: Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamArgs']]):
563
+ pulumi.set(self, "video_stream", value)
564
+
565
+
566
+ if not MYPY:
567
+ class JobConfigElementaryStreamAudioStreamArgsDict(TypedDict):
568
+ bitrate_bps: pulumi.Input[int]
569
+ """
570
+ Audio bitrate in bits per second.
571
+ """
572
+ channel_count: NotRequired[pulumi.Input[int]]
573
+ """
574
+ Number of audio channels. The default is `2`.
575
+ """
576
+ channel_layouts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
577
+ """
578
+ A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
579
+ """
580
+ codec: NotRequired[pulumi.Input[str]]
581
+ """
582
+ The codec for this audio stream. The default is `aac`.
583
+ """
584
+ sample_rate_hertz: NotRequired[pulumi.Input[int]]
585
+ """
586
+ The audio sample rate in Hertz. The default is `48000`.
587
+ """
588
+ elif False:
589
+ JobConfigElementaryStreamAudioStreamArgsDict: TypeAlias = Mapping[str, Any]
590
+
591
+ @pulumi.input_type
592
+ class JobConfigElementaryStreamAudioStreamArgs:
593
+ def __init__(__self__, *,
594
+ bitrate_bps: pulumi.Input[int],
595
+ channel_count: Optional[pulumi.Input[int]] = None,
596
+ channel_layouts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
597
+ codec: Optional[pulumi.Input[str]] = None,
598
+ sample_rate_hertz: Optional[pulumi.Input[int]] = None):
599
+ """
600
+ :param pulumi.Input[int] bitrate_bps: Audio bitrate in bits per second.
601
+ :param pulumi.Input[int] channel_count: Number of audio channels. The default is `2`.
602
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] channel_layouts: A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
603
+ :param pulumi.Input[str] codec: The codec for this audio stream. The default is `aac`.
604
+ :param pulumi.Input[int] sample_rate_hertz: The audio sample rate in Hertz. The default is `48000`.
605
+ """
606
+ pulumi.set(__self__, "bitrate_bps", bitrate_bps)
607
+ if channel_count is not None:
608
+ pulumi.set(__self__, "channel_count", channel_count)
609
+ if channel_layouts is not None:
610
+ pulumi.set(__self__, "channel_layouts", channel_layouts)
611
+ if codec is not None:
612
+ pulumi.set(__self__, "codec", codec)
613
+ if sample_rate_hertz is not None:
614
+ pulumi.set(__self__, "sample_rate_hertz", sample_rate_hertz)
615
+
616
+ @property
617
+ @pulumi.getter(name="bitrateBps")
618
+ def bitrate_bps(self) -> pulumi.Input[int]:
619
+ """
620
+ Audio bitrate in bits per second.
621
+ """
622
+ return pulumi.get(self, "bitrate_bps")
623
+
624
+ @bitrate_bps.setter
625
+ def bitrate_bps(self, value: pulumi.Input[int]):
626
+ pulumi.set(self, "bitrate_bps", value)
627
+
628
+ @property
629
+ @pulumi.getter(name="channelCount")
630
+ def channel_count(self) -> Optional[pulumi.Input[int]]:
631
+ """
632
+ Number of audio channels. The default is `2`.
633
+ """
634
+ return pulumi.get(self, "channel_count")
635
+
636
+ @channel_count.setter
637
+ def channel_count(self, value: Optional[pulumi.Input[int]]):
638
+ pulumi.set(self, "channel_count", value)
639
+
640
+ @property
641
+ @pulumi.getter(name="channelLayouts")
642
+ def channel_layouts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
643
+ """
644
+ A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
645
+ """
646
+ return pulumi.get(self, "channel_layouts")
647
+
648
+ @channel_layouts.setter
649
+ def channel_layouts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
650
+ pulumi.set(self, "channel_layouts", value)
651
+
652
+ @property
653
+ @pulumi.getter
654
+ def codec(self) -> Optional[pulumi.Input[str]]:
655
+ """
656
+ The codec for this audio stream. The default is `aac`.
657
+ """
658
+ return pulumi.get(self, "codec")
659
+
660
+ @codec.setter
661
+ def codec(self, value: Optional[pulumi.Input[str]]):
662
+ pulumi.set(self, "codec", value)
663
+
664
+ @property
665
+ @pulumi.getter(name="sampleRateHertz")
666
+ def sample_rate_hertz(self) -> Optional[pulumi.Input[int]]:
667
+ """
668
+ The audio sample rate in Hertz. The default is `48000`.
669
+ """
670
+ return pulumi.get(self, "sample_rate_hertz")
671
+
672
+ @sample_rate_hertz.setter
673
+ def sample_rate_hertz(self, value: Optional[pulumi.Input[int]]):
674
+ pulumi.set(self, "sample_rate_hertz", value)
675
+
676
+
677
+ if not MYPY:
678
+ class JobConfigElementaryStreamVideoStreamArgsDict(TypedDict):
679
+ h264: NotRequired[pulumi.Input['JobConfigElementaryStreamVideoStreamH264ArgsDict']]
680
+ """
681
+ H264 codec settings
682
+ Structure is documented below.
683
+
684
+
685
+ <a name="nested_h264"></a>The `h264` block supports:
686
+ """
687
+ elif False:
688
+ JobConfigElementaryStreamVideoStreamArgsDict: TypeAlias = Mapping[str, Any]
689
+
690
+ @pulumi.input_type
691
+ class JobConfigElementaryStreamVideoStreamArgs:
692
+ def __init__(__self__, *,
693
+ h264: Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamH264Args']] = None):
694
+ """
695
+ :param pulumi.Input['JobConfigElementaryStreamVideoStreamH264Args'] h264: H264 codec settings
696
+ Structure is documented below.
697
+
698
+
699
+ <a name="nested_h264"></a>The `h264` block supports:
700
+ """
701
+ if h264 is not None:
702
+ pulumi.set(__self__, "h264", h264)
703
+
704
+ @property
705
+ @pulumi.getter
706
+ def h264(self) -> Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamH264Args']]:
707
+ """
708
+ H264 codec settings
709
+ Structure is documented below.
710
+
711
+
712
+ <a name="nested_h264"></a>The `h264` block supports:
713
+ """
714
+ return pulumi.get(self, "h264")
715
+
716
+ @h264.setter
717
+ def h264(self, value: Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamH264Args']]):
718
+ pulumi.set(self, "h264", value)
719
+
720
+
721
+ if not MYPY:
722
+ class JobConfigElementaryStreamVideoStreamH264ArgsDict(TypedDict):
723
+ bitrate_bps: pulumi.Input[int]
724
+ """
725
+ The video bitrate in bits per second.
726
+ """
727
+ frame_rate: pulumi.Input[int]
728
+ """
729
+ The target video frame rate in frames per second (FPS).
730
+ """
731
+ crf_level: NotRequired[pulumi.Input[int]]
732
+ """
733
+ Target CRF level. The default is '21'.
734
+ """
735
+ entropy_coder: NotRequired[pulumi.Input[str]]
736
+ """
737
+ The entropy coder to use. The default is 'cabac'.
738
+ """
739
+ gop_duration: NotRequired[pulumi.Input[str]]
740
+ """
741
+ Select the GOP size based on the specified duration. The default is '3s'.
742
+ """
743
+ height_pixels: NotRequired[pulumi.Input[int]]
744
+ """
745
+ The height of the video in pixels.
746
+ """
747
+ hlg: NotRequired[pulumi.Input['JobConfigElementaryStreamVideoStreamH264HlgArgsDict']]
748
+ """
749
+ HLG color format setting for H264.
750
+ """
751
+ pixel_format: NotRequired[pulumi.Input[str]]
752
+ """
753
+ Pixel format to use. The default is 'yuv420p'.
754
+ """
755
+ preset: NotRequired[pulumi.Input[str]]
756
+ """
757
+ Enforces the specified codec preset. The default is 'veryfast'.
758
+ """
759
+ profile: NotRequired[pulumi.Input[str]]
760
+ """
761
+ Enforces the specified codec profile.
762
+ """
763
+ rate_control_mode: NotRequired[pulumi.Input[str]]
764
+ """
765
+ Specify the mode. The default is 'vbr'.
766
+ """
767
+ sdr: NotRequired[pulumi.Input['JobConfigElementaryStreamVideoStreamH264SdrArgsDict']]
768
+ """
769
+ SDR color format setting for H264.
770
+ """
771
+ vbv_fullness_bits: NotRequired[pulumi.Input[int]]
772
+ """
773
+ Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
774
+ """
775
+ vbv_size_bits: NotRequired[pulumi.Input[int]]
776
+ """
777
+ Size of the Video Buffering Verifier (VBV) buffer in bits.
778
+ """
779
+ width_pixels: NotRequired[pulumi.Input[int]]
780
+ """
781
+ The width of the video in pixels.
782
+ """
783
+ elif False:
784
+ JobConfigElementaryStreamVideoStreamH264ArgsDict: TypeAlias = Mapping[str, Any]
785
+
786
+ @pulumi.input_type
787
+ class JobConfigElementaryStreamVideoStreamH264Args:
788
+ def __init__(__self__, *,
789
+ bitrate_bps: pulumi.Input[int],
790
+ frame_rate: pulumi.Input[int],
791
+ crf_level: Optional[pulumi.Input[int]] = None,
792
+ entropy_coder: Optional[pulumi.Input[str]] = None,
793
+ gop_duration: Optional[pulumi.Input[str]] = None,
794
+ height_pixels: Optional[pulumi.Input[int]] = None,
795
+ hlg: Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamH264HlgArgs']] = None,
796
+ pixel_format: Optional[pulumi.Input[str]] = None,
797
+ preset: Optional[pulumi.Input[str]] = None,
798
+ profile: Optional[pulumi.Input[str]] = None,
799
+ rate_control_mode: Optional[pulumi.Input[str]] = None,
800
+ sdr: Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamH264SdrArgs']] = None,
801
+ vbv_fullness_bits: Optional[pulumi.Input[int]] = None,
802
+ vbv_size_bits: Optional[pulumi.Input[int]] = None,
803
+ width_pixels: Optional[pulumi.Input[int]] = None):
804
+ """
805
+ :param pulumi.Input[int] bitrate_bps: The video bitrate in bits per second.
806
+ :param pulumi.Input[int] frame_rate: The target video frame rate in frames per second (FPS).
807
+ :param pulumi.Input[int] crf_level: Target CRF level. The default is '21'.
808
+ :param pulumi.Input[str] entropy_coder: The entropy coder to use. The default is 'cabac'.
809
+ :param pulumi.Input[str] gop_duration: Select the GOP size based on the specified duration. The default is '3s'.
810
+ :param pulumi.Input[int] height_pixels: The height of the video in pixels.
811
+ :param pulumi.Input['JobConfigElementaryStreamVideoStreamH264HlgArgs'] hlg: HLG color format setting for H264.
812
+ :param pulumi.Input[str] pixel_format: Pixel format to use. The default is 'yuv420p'.
813
+ :param pulumi.Input[str] preset: Enforces the specified codec preset. The default is 'veryfast'.
814
+ :param pulumi.Input[str] profile: Enforces the specified codec profile.
815
+ :param pulumi.Input[str] rate_control_mode: Specify the mode. The default is 'vbr'.
816
+ :param pulumi.Input['JobConfigElementaryStreamVideoStreamH264SdrArgs'] sdr: SDR color format setting for H264.
817
+ :param pulumi.Input[int] vbv_fullness_bits: Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
818
+ :param pulumi.Input[int] vbv_size_bits: Size of the Video Buffering Verifier (VBV) buffer in bits.
819
+ :param pulumi.Input[int] width_pixels: The width of the video in pixels.
820
+ """
821
+ pulumi.set(__self__, "bitrate_bps", bitrate_bps)
822
+ pulumi.set(__self__, "frame_rate", frame_rate)
823
+ if crf_level is not None:
824
+ pulumi.set(__self__, "crf_level", crf_level)
825
+ if entropy_coder is not None:
826
+ pulumi.set(__self__, "entropy_coder", entropy_coder)
827
+ if gop_duration is not None:
828
+ pulumi.set(__self__, "gop_duration", gop_duration)
829
+ if height_pixels is not None:
830
+ pulumi.set(__self__, "height_pixels", height_pixels)
831
+ if hlg is not None:
832
+ pulumi.set(__self__, "hlg", hlg)
833
+ if pixel_format is not None:
834
+ pulumi.set(__self__, "pixel_format", pixel_format)
835
+ if preset is not None:
836
+ pulumi.set(__self__, "preset", preset)
837
+ if profile is not None:
838
+ pulumi.set(__self__, "profile", profile)
839
+ if rate_control_mode is not None:
840
+ pulumi.set(__self__, "rate_control_mode", rate_control_mode)
841
+ if sdr is not None:
842
+ pulumi.set(__self__, "sdr", sdr)
843
+ if vbv_fullness_bits is not None:
844
+ pulumi.set(__self__, "vbv_fullness_bits", vbv_fullness_bits)
845
+ if vbv_size_bits is not None:
846
+ pulumi.set(__self__, "vbv_size_bits", vbv_size_bits)
847
+ if width_pixels is not None:
848
+ pulumi.set(__self__, "width_pixels", width_pixels)
849
+
850
+ @property
851
+ @pulumi.getter(name="bitrateBps")
852
+ def bitrate_bps(self) -> pulumi.Input[int]:
853
+ """
854
+ The video bitrate in bits per second.
855
+ """
856
+ return pulumi.get(self, "bitrate_bps")
857
+
858
+ @bitrate_bps.setter
859
+ def bitrate_bps(self, value: pulumi.Input[int]):
860
+ pulumi.set(self, "bitrate_bps", value)
861
+
862
+ @property
863
+ @pulumi.getter(name="frameRate")
864
+ def frame_rate(self) -> pulumi.Input[int]:
865
+ """
866
+ The target video frame rate in frames per second (FPS).
867
+ """
868
+ return pulumi.get(self, "frame_rate")
869
+
870
+ @frame_rate.setter
871
+ def frame_rate(self, value: pulumi.Input[int]):
872
+ pulumi.set(self, "frame_rate", value)
873
+
874
+ @property
875
+ @pulumi.getter(name="crfLevel")
876
+ def crf_level(self) -> Optional[pulumi.Input[int]]:
877
+ """
878
+ Target CRF level. The default is '21'.
879
+ """
880
+ return pulumi.get(self, "crf_level")
881
+
882
+ @crf_level.setter
883
+ def crf_level(self, value: Optional[pulumi.Input[int]]):
884
+ pulumi.set(self, "crf_level", value)
885
+
886
+ @property
887
+ @pulumi.getter(name="entropyCoder")
888
+ def entropy_coder(self) -> Optional[pulumi.Input[str]]:
889
+ """
890
+ The entropy coder to use. The default is 'cabac'.
891
+ """
892
+ return pulumi.get(self, "entropy_coder")
893
+
894
+ @entropy_coder.setter
895
+ def entropy_coder(self, value: Optional[pulumi.Input[str]]):
896
+ pulumi.set(self, "entropy_coder", value)
897
+
898
+ @property
899
+ @pulumi.getter(name="gopDuration")
900
+ def gop_duration(self) -> Optional[pulumi.Input[str]]:
901
+ """
902
+ Select the GOP size based on the specified duration. The default is '3s'.
903
+ """
904
+ return pulumi.get(self, "gop_duration")
905
+
906
+ @gop_duration.setter
907
+ def gop_duration(self, value: Optional[pulumi.Input[str]]):
908
+ pulumi.set(self, "gop_duration", value)
909
+
910
+ @property
911
+ @pulumi.getter(name="heightPixels")
912
+ def height_pixels(self) -> Optional[pulumi.Input[int]]:
913
+ """
914
+ The height of the video in pixels.
915
+ """
916
+ return pulumi.get(self, "height_pixels")
917
+
918
+ @height_pixels.setter
919
+ def height_pixels(self, value: Optional[pulumi.Input[int]]):
920
+ pulumi.set(self, "height_pixels", value)
921
+
922
+ @property
923
+ @pulumi.getter
924
+ def hlg(self) -> Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamH264HlgArgs']]:
925
+ """
926
+ HLG color format setting for H264.
927
+ """
928
+ return pulumi.get(self, "hlg")
929
+
930
+ @hlg.setter
931
+ def hlg(self, value: Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamH264HlgArgs']]):
932
+ pulumi.set(self, "hlg", value)
933
+
934
+ @property
935
+ @pulumi.getter(name="pixelFormat")
936
+ def pixel_format(self) -> Optional[pulumi.Input[str]]:
937
+ """
938
+ Pixel format to use. The default is 'yuv420p'.
939
+ """
940
+ return pulumi.get(self, "pixel_format")
941
+
942
+ @pixel_format.setter
943
+ def pixel_format(self, value: Optional[pulumi.Input[str]]):
944
+ pulumi.set(self, "pixel_format", value)
945
+
946
+ @property
947
+ @pulumi.getter
948
+ def preset(self) -> Optional[pulumi.Input[str]]:
949
+ """
950
+ Enforces the specified codec preset. The default is 'veryfast'.
951
+ """
952
+ return pulumi.get(self, "preset")
953
+
954
+ @preset.setter
955
+ def preset(self, value: Optional[pulumi.Input[str]]):
956
+ pulumi.set(self, "preset", value)
957
+
958
+ @property
959
+ @pulumi.getter
960
+ def profile(self) -> Optional[pulumi.Input[str]]:
961
+ """
962
+ Enforces the specified codec profile.
963
+ """
964
+ return pulumi.get(self, "profile")
965
+
966
+ @profile.setter
967
+ def profile(self, value: Optional[pulumi.Input[str]]):
968
+ pulumi.set(self, "profile", value)
969
+
970
+ @property
971
+ @pulumi.getter(name="rateControlMode")
972
+ def rate_control_mode(self) -> Optional[pulumi.Input[str]]:
973
+ """
974
+ Specify the mode. The default is 'vbr'.
975
+ """
976
+ return pulumi.get(self, "rate_control_mode")
977
+
978
+ @rate_control_mode.setter
979
+ def rate_control_mode(self, value: Optional[pulumi.Input[str]]):
980
+ pulumi.set(self, "rate_control_mode", value)
981
+
982
+ @property
983
+ @pulumi.getter
984
+ def sdr(self) -> Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamH264SdrArgs']]:
985
+ """
986
+ SDR color format setting for H264.
987
+ """
988
+ return pulumi.get(self, "sdr")
989
+
990
+ @sdr.setter
991
+ def sdr(self, value: Optional[pulumi.Input['JobConfigElementaryStreamVideoStreamH264SdrArgs']]):
992
+ pulumi.set(self, "sdr", value)
993
+
994
+ @property
995
+ @pulumi.getter(name="vbvFullnessBits")
996
+ def vbv_fullness_bits(self) -> Optional[pulumi.Input[int]]:
997
+ """
998
+ Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
999
+ """
1000
+ return pulumi.get(self, "vbv_fullness_bits")
1001
+
1002
+ @vbv_fullness_bits.setter
1003
+ def vbv_fullness_bits(self, value: Optional[pulumi.Input[int]]):
1004
+ pulumi.set(self, "vbv_fullness_bits", value)
1005
+
1006
+ @property
1007
+ @pulumi.getter(name="vbvSizeBits")
1008
+ def vbv_size_bits(self) -> Optional[pulumi.Input[int]]:
1009
+ """
1010
+ Size of the Video Buffering Verifier (VBV) buffer in bits.
1011
+ """
1012
+ return pulumi.get(self, "vbv_size_bits")
1013
+
1014
+ @vbv_size_bits.setter
1015
+ def vbv_size_bits(self, value: Optional[pulumi.Input[int]]):
1016
+ pulumi.set(self, "vbv_size_bits", value)
1017
+
1018
+ @property
1019
+ @pulumi.getter(name="widthPixels")
1020
+ def width_pixels(self) -> Optional[pulumi.Input[int]]:
1021
+ """
1022
+ The width of the video in pixels.
1023
+ """
1024
+ return pulumi.get(self, "width_pixels")
1025
+
1026
+ @width_pixels.setter
1027
+ def width_pixels(self, value: Optional[pulumi.Input[int]]):
1028
+ pulumi.set(self, "width_pixels", value)
1029
+
1030
+
1031
+ if not MYPY:
1032
+ class JobConfigElementaryStreamVideoStreamH264HlgArgsDict(TypedDict):
1033
+ pass
1034
+ elif False:
1035
+ JobConfigElementaryStreamVideoStreamH264HlgArgsDict: TypeAlias = Mapping[str, Any]
1036
+
1037
+ @pulumi.input_type
1038
+ class JobConfigElementaryStreamVideoStreamH264HlgArgs:
1039
+ def __init__(__self__):
1040
+ pass
1041
+
1042
+
1043
+ if not MYPY:
1044
+ class JobConfigElementaryStreamVideoStreamH264SdrArgsDict(TypedDict):
1045
+ pass
1046
+ elif False:
1047
+ JobConfigElementaryStreamVideoStreamH264SdrArgsDict: TypeAlias = Mapping[str, Any]
1048
+
1049
+ @pulumi.input_type
1050
+ class JobConfigElementaryStreamVideoStreamH264SdrArgs:
1051
+ def __init__(__self__):
1052
+ pass
1053
+
1054
+
1055
+ if not MYPY:
1056
+ class JobConfigEncryptionArgsDict(TypedDict):
1057
+ id: pulumi.Input[str]
1058
+ """
1059
+ Identifier for this set of encryption options.
1060
+ """
1061
+ aes128: NotRequired[pulumi.Input['JobConfigEncryptionAes128ArgsDict']]
1062
+ """
1063
+ Configuration for AES-128 encryption.
1064
+ """
1065
+ drm_systems: NotRequired[pulumi.Input['JobConfigEncryptionDrmSystemsArgsDict']]
1066
+ """
1067
+ DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled.
1068
+ Structure is documented below.
1069
+ """
1070
+ mpeg_cenc: NotRequired[pulumi.Input['JobConfigEncryptionMpegCencArgsDict']]
1071
+ """
1072
+ Configuration for MPEG Common Encryption (MPEG-CENC).
1073
+ Structure is documented below.
1074
+ """
1075
+ sample_aes: NotRequired[pulumi.Input['JobConfigEncryptionSampleAesArgsDict']]
1076
+ """
1077
+ Configuration for SAMPLE-AES encryption.
1078
+ """
1079
+ secret_manager_key_source: NotRequired[pulumi.Input['JobConfigEncryptionSecretManagerKeySourceArgsDict']]
1080
+ """
1081
+ Configuration for secrets stored in Google Secret Manager.
1082
+ Structure is documented below.
1083
+ """
1084
+ elif False:
1085
+ JobConfigEncryptionArgsDict: TypeAlias = Mapping[str, Any]
1086
+
1087
+ @pulumi.input_type
1088
+ class JobConfigEncryptionArgs:
1089
+ def __init__(__self__, *,
1090
+ id: pulumi.Input[str],
1091
+ aes128: Optional[pulumi.Input['JobConfigEncryptionAes128Args']] = None,
1092
+ drm_systems: Optional[pulumi.Input['JobConfigEncryptionDrmSystemsArgs']] = None,
1093
+ mpeg_cenc: Optional[pulumi.Input['JobConfigEncryptionMpegCencArgs']] = None,
1094
+ sample_aes: Optional[pulumi.Input['JobConfigEncryptionSampleAesArgs']] = None,
1095
+ secret_manager_key_source: Optional[pulumi.Input['JobConfigEncryptionSecretManagerKeySourceArgs']] = None):
1096
+ """
1097
+ :param pulumi.Input[str] id: Identifier for this set of encryption options.
1098
+ :param pulumi.Input['JobConfigEncryptionAes128Args'] aes128: Configuration for AES-128 encryption.
1099
+ :param pulumi.Input['JobConfigEncryptionDrmSystemsArgs'] drm_systems: DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled.
1100
+ Structure is documented below.
1101
+ :param pulumi.Input['JobConfigEncryptionMpegCencArgs'] mpeg_cenc: Configuration for MPEG Common Encryption (MPEG-CENC).
1102
+ Structure is documented below.
1103
+ :param pulumi.Input['JobConfigEncryptionSampleAesArgs'] sample_aes: Configuration for SAMPLE-AES encryption.
1104
+ :param pulumi.Input['JobConfigEncryptionSecretManagerKeySourceArgs'] secret_manager_key_source: Configuration for secrets stored in Google Secret Manager.
1105
+ Structure is documented below.
1106
+ """
1107
+ pulumi.set(__self__, "id", id)
1108
+ if aes128 is not None:
1109
+ pulumi.set(__self__, "aes128", aes128)
1110
+ if drm_systems is not None:
1111
+ pulumi.set(__self__, "drm_systems", drm_systems)
1112
+ if mpeg_cenc is not None:
1113
+ pulumi.set(__self__, "mpeg_cenc", mpeg_cenc)
1114
+ if sample_aes is not None:
1115
+ pulumi.set(__self__, "sample_aes", sample_aes)
1116
+ if secret_manager_key_source is not None:
1117
+ pulumi.set(__self__, "secret_manager_key_source", secret_manager_key_source)
1118
+
1119
+ @property
1120
+ @pulumi.getter
1121
+ def id(self) -> pulumi.Input[str]:
1122
+ """
1123
+ Identifier for this set of encryption options.
1124
+ """
1125
+ return pulumi.get(self, "id")
1126
+
1127
+ @id.setter
1128
+ def id(self, value: pulumi.Input[str]):
1129
+ pulumi.set(self, "id", value)
1130
+
1131
+ @property
1132
+ @pulumi.getter
1133
+ def aes128(self) -> Optional[pulumi.Input['JobConfigEncryptionAes128Args']]:
1134
+ """
1135
+ Configuration for AES-128 encryption.
1136
+ """
1137
+ return pulumi.get(self, "aes128")
1138
+
1139
+ @aes128.setter
1140
+ def aes128(self, value: Optional[pulumi.Input['JobConfigEncryptionAes128Args']]):
1141
+ pulumi.set(self, "aes128", value)
1142
+
1143
+ @property
1144
+ @pulumi.getter(name="drmSystems")
1145
+ def drm_systems(self) -> Optional[pulumi.Input['JobConfigEncryptionDrmSystemsArgs']]:
1146
+ """
1147
+ DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled.
1148
+ Structure is documented below.
1149
+ """
1150
+ return pulumi.get(self, "drm_systems")
1151
+
1152
+ @drm_systems.setter
1153
+ def drm_systems(self, value: Optional[pulumi.Input['JobConfigEncryptionDrmSystemsArgs']]):
1154
+ pulumi.set(self, "drm_systems", value)
1155
+
1156
+ @property
1157
+ @pulumi.getter(name="mpegCenc")
1158
+ def mpeg_cenc(self) -> Optional[pulumi.Input['JobConfigEncryptionMpegCencArgs']]:
1159
+ """
1160
+ Configuration for MPEG Common Encryption (MPEG-CENC).
1161
+ Structure is documented below.
1162
+ """
1163
+ return pulumi.get(self, "mpeg_cenc")
1164
+
1165
+ @mpeg_cenc.setter
1166
+ def mpeg_cenc(self, value: Optional[pulumi.Input['JobConfigEncryptionMpegCencArgs']]):
1167
+ pulumi.set(self, "mpeg_cenc", value)
1168
+
1169
+ @property
1170
+ @pulumi.getter(name="sampleAes")
1171
+ def sample_aes(self) -> Optional[pulumi.Input['JobConfigEncryptionSampleAesArgs']]:
1172
+ """
1173
+ Configuration for SAMPLE-AES encryption.
1174
+ """
1175
+ return pulumi.get(self, "sample_aes")
1176
+
1177
+ @sample_aes.setter
1178
+ def sample_aes(self, value: Optional[pulumi.Input['JobConfigEncryptionSampleAesArgs']]):
1179
+ pulumi.set(self, "sample_aes", value)
1180
+
1181
+ @property
1182
+ @pulumi.getter(name="secretManagerKeySource")
1183
+ def secret_manager_key_source(self) -> Optional[pulumi.Input['JobConfigEncryptionSecretManagerKeySourceArgs']]:
1184
+ """
1185
+ Configuration for secrets stored in Google Secret Manager.
1186
+ Structure is documented below.
1187
+ """
1188
+ return pulumi.get(self, "secret_manager_key_source")
1189
+
1190
+ @secret_manager_key_source.setter
1191
+ def secret_manager_key_source(self, value: Optional[pulumi.Input['JobConfigEncryptionSecretManagerKeySourceArgs']]):
1192
+ pulumi.set(self, "secret_manager_key_source", value)
1193
+
1194
+
1195
+ if not MYPY:
1196
+ class JobConfigEncryptionAes128ArgsDict(TypedDict):
1197
+ pass
1198
+ elif False:
1199
+ JobConfigEncryptionAes128ArgsDict: TypeAlias = Mapping[str, Any]
1200
+
1201
+ @pulumi.input_type
1202
+ class JobConfigEncryptionAes128Args:
1203
+ def __init__(__self__):
1204
+ pass
1205
+
1206
+
1207
+ if not MYPY:
1208
+ class JobConfigEncryptionDrmSystemsArgsDict(TypedDict):
1209
+ clearkey: NotRequired[pulumi.Input['JobConfigEncryptionDrmSystemsClearkeyArgsDict']]
1210
+ """
1211
+ Clearkey configuration.
1212
+ """
1213
+ fairplay: NotRequired[pulumi.Input['JobConfigEncryptionDrmSystemsFairplayArgsDict']]
1214
+ """
1215
+ Fairplay configuration.
1216
+ """
1217
+ playready: NotRequired[pulumi.Input['JobConfigEncryptionDrmSystemsPlayreadyArgsDict']]
1218
+ """
1219
+ Playready configuration.
1220
+ """
1221
+ widevine: NotRequired[pulumi.Input['JobConfigEncryptionDrmSystemsWidevineArgsDict']]
1222
+ """
1223
+ Widevine configuration.
1224
+ """
1225
+ elif False:
1226
+ JobConfigEncryptionDrmSystemsArgsDict: TypeAlias = Mapping[str, Any]
1227
+
1228
+ @pulumi.input_type
1229
+ class JobConfigEncryptionDrmSystemsArgs:
1230
+ def __init__(__self__, *,
1231
+ clearkey: Optional[pulumi.Input['JobConfigEncryptionDrmSystemsClearkeyArgs']] = None,
1232
+ fairplay: Optional[pulumi.Input['JobConfigEncryptionDrmSystemsFairplayArgs']] = None,
1233
+ playready: Optional[pulumi.Input['JobConfigEncryptionDrmSystemsPlayreadyArgs']] = None,
1234
+ widevine: Optional[pulumi.Input['JobConfigEncryptionDrmSystemsWidevineArgs']] = None):
1235
+ """
1236
+ :param pulumi.Input['JobConfigEncryptionDrmSystemsClearkeyArgs'] clearkey: Clearkey configuration.
1237
+ :param pulumi.Input['JobConfigEncryptionDrmSystemsFairplayArgs'] fairplay: Fairplay configuration.
1238
+ :param pulumi.Input['JobConfigEncryptionDrmSystemsPlayreadyArgs'] playready: Playready configuration.
1239
+ :param pulumi.Input['JobConfigEncryptionDrmSystemsWidevineArgs'] widevine: Widevine configuration.
1240
+ """
1241
+ if clearkey is not None:
1242
+ pulumi.set(__self__, "clearkey", clearkey)
1243
+ if fairplay is not None:
1244
+ pulumi.set(__self__, "fairplay", fairplay)
1245
+ if playready is not None:
1246
+ pulumi.set(__self__, "playready", playready)
1247
+ if widevine is not None:
1248
+ pulumi.set(__self__, "widevine", widevine)
1249
+
1250
+ @property
1251
+ @pulumi.getter
1252
+ def clearkey(self) -> Optional[pulumi.Input['JobConfigEncryptionDrmSystemsClearkeyArgs']]:
1253
+ """
1254
+ Clearkey configuration.
1255
+ """
1256
+ return pulumi.get(self, "clearkey")
1257
+
1258
+ @clearkey.setter
1259
+ def clearkey(self, value: Optional[pulumi.Input['JobConfigEncryptionDrmSystemsClearkeyArgs']]):
1260
+ pulumi.set(self, "clearkey", value)
1261
+
1262
+ @property
1263
+ @pulumi.getter
1264
+ def fairplay(self) -> Optional[pulumi.Input['JobConfigEncryptionDrmSystemsFairplayArgs']]:
1265
+ """
1266
+ Fairplay configuration.
1267
+ """
1268
+ return pulumi.get(self, "fairplay")
1269
+
1270
+ @fairplay.setter
1271
+ def fairplay(self, value: Optional[pulumi.Input['JobConfigEncryptionDrmSystemsFairplayArgs']]):
1272
+ pulumi.set(self, "fairplay", value)
1273
+
1274
+ @property
1275
+ @pulumi.getter
1276
+ def playready(self) -> Optional[pulumi.Input['JobConfigEncryptionDrmSystemsPlayreadyArgs']]:
1277
+ """
1278
+ Playready configuration.
1279
+ """
1280
+ return pulumi.get(self, "playready")
1281
+
1282
+ @playready.setter
1283
+ def playready(self, value: Optional[pulumi.Input['JobConfigEncryptionDrmSystemsPlayreadyArgs']]):
1284
+ pulumi.set(self, "playready", value)
1285
+
1286
+ @property
1287
+ @pulumi.getter
1288
+ def widevine(self) -> Optional[pulumi.Input['JobConfigEncryptionDrmSystemsWidevineArgs']]:
1289
+ """
1290
+ Widevine configuration.
1291
+ """
1292
+ return pulumi.get(self, "widevine")
1293
+
1294
+ @widevine.setter
1295
+ def widevine(self, value: Optional[pulumi.Input['JobConfigEncryptionDrmSystemsWidevineArgs']]):
1296
+ pulumi.set(self, "widevine", value)
1297
+
1298
+
1299
+ if not MYPY:
1300
+ class JobConfigEncryptionDrmSystemsClearkeyArgsDict(TypedDict):
1301
+ pass
1302
+ elif False:
1303
+ JobConfigEncryptionDrmSystemsClearkeyArgsDict: TypeAlias = Mapping[str, Any]
1304
+
1305
+ @pulumi.input_type
1306
+ class JobConfigEncryptionDrmSystemsClearkeyArgs:
1307
+ def __init__(__self__):
1308
+ pass
1309
+
1310
+
1311
+ if not MYPY:
1312
+ class JobConfigEncryptionDrmSystemsFairplayArgsDict(TypedDict):
1313
+ pass
1314
+ elif False:
1315
+ JobConfigEncryptionDrmSystemsFairplayArgsDict: TypeAlias = Mapping[str, Any]
1316
+
1317
+ @pulumi.input_type
1318
+ class JobConfigEncryptionDrmSystemsFairplayArgs:
1319
+ def __init__(__self__):
1320
+ pass
1321
+
1322
+
1323
+ if not MYPY:
1324
+ class JobConfigEncryptionDrmSystemsPlayreadyArgsDict(TypedDict):
1325
+ pass
1326
+ elif False:
1327
+ JobConfigEncryptionDrmSystemsPlayreadyArgsDict: TypeAlias = Mapping[str, Any]
1328
+
1329
+ @pulumi.input_type
1330
+ class JobConfigEncryptionDrmSystemsPlayreadyArgs:
1331
+ def __init__(__self__):
1332
+ pass
1333
+
1334
+
1335
+ if not MYPY:
1336
+ class JobConfigEncryptionDrmSystemsWidevineArgsDict(TypedDict):
1337
+ pass
1338
+ elif False:
1339
+ JobConfigEncryptionDrmSystemsWidevineArgsDict: TypeAlias = Mapping[str, Any]
1340
+
1341
+ @pulumi.input_type
1342
+ class JobConfigEncryptionDrmSystemsWidevineArgs:
1343
+ def __init__(__self__):
1344
+ pass
1345
+
1346
+
1347
+ if not MYPY:
1348
+ class JobConfigEncryptionMpegCencArgsDict(TypedDict):
1349
+ scheme: pulumi.Input[str]
1350
+ """
1351
+ Specify the encryption scheme.
1352
+ """
1353
+ elif False:
1354
+ JobConfigEncryptionMpegCencArgsDict: TypeAlias = Mapping[str, Any]
1355
+
1356
+ @pulumi.input_type
1357
+ class JobConfigEncryptionMpegCencArgs:
1358
+ def __init__(__self__, *,
1359
+ scheme: pulumi.Input[str]):
1360
+ """
1361
+ :param pulumi.Input[str] scheme: Specify the encryption scheme.
1362
+ """
1363
+ pulumi.set(__self__, "scheme", scheme)
1364
+
1365
+ @property
1366
+ @pulumi.getter
1367
+ def scheme(self) -> pulumi.Input[str]:
1368
+ """
1369
+ Specify the encryption scheme.
1370
+ """
1371
+ return pulumi.get(self, "scheme")
1372
+
1373
+ @scheme.setter
1374
+ def scheme(self, value: pulumi.Input[str]):
1375
+ pulumi.set(self, "scheme", value)
1376
+
1377
+
1378
+ if not MYPY:
1379
+ class JobConfigEncryptionSampleAesArgsDict(TypedDict):
1380
+ pass
1381
+ elif False:
1382
+ JobConfigEncryptionSampleAesArgsDict: TypeAlias = Mapping[str, Any]
1383
+
1384
+ @pulumi.input_type
1385
+ class JobConfigEncryptionSampleAesArgs:
1386
+ def __init__(__self__):
1387
+ pass
1388
+
1389
+
1390
+ if not MYPY:
1391
+ class JobConfigEncryptionSecretManagerKeySourceArgsDict(TypedDict):
1392
+ secret_version: pulumi.Input[str]
1393
+ """
1394
+ The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
1395
+ """
1396
+ elif False:
1397
+ JobConfigEncryptionSecretManagerKeySourceArgsDict: TypeAlias = Mapping[str, Any]
1398
+
1399
+ @pulumi.input_type
1400
+ class JobConfigEncryptionSecretManagerKeySourceArgs:
1401
+ def __init__(__self__, *,
1402
+ secret_version: pulumi.Input[str]):
1403
+ """
1404
+ :param pulumi.Input[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}.
1405
+ """
1406
+ pulumi.set(__self__, "secret_version", secret_version)
1407
+
1408
+ @property
1409
+ @pulumi.getter(name="secretVersion")
1410
+ def secret_version(self) -> pulumi.Input[str]:
1411
+ """
1412
+ The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
1413
+ """
1414
+ return pulumi.get(self, "secret_version")
1415
+
1416
+ @secret_version.setter
1417
+ def secret_version(self, value: pulumi.Input[str]):
1418
+ pulumi.set(self, "secret_version", value)
1419
+
1420
+
1421
+ if not MYPY:
1422
+ class JobConfigInputArgsDict(TypedDict):
1423
+ key: NotRequired[pulumi.Input[str]]
1424
+ """
1425
+ A unique key for this input. Must be specified when using advanced mapping and edit lists.
1426
+ """
1427
+ uri: NotRequired[pulumi.Input[str]]
1428
+ """
1429
+ 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).
1430
+ If empty, the value is populated from Job.input_uri.
1431
+ """
1432
+ elif False:
1433
+ JobConfigInputArgsDict: TypeAlias = Mapping[str, Any]
1434
+
1435
+ @pulumi.input_type
1436
+ class JobConfigInputArgs:
1437
+ def __init__(__self__, *,
1438
+ key: Optional[pulumi.Input[str]] = None,
1439
+ uri: Optional[pulumi.Input[str]] = None):
1440
+ """
1441
+ :param pulumi.Input[str] key: A unique key for this input. Must be specified when using advanced mapping and edit lists.
1442
+ :param pulumi.Input[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).
1443
+ If empty, the value is populated from Job.input_uri.
1444
+ """
1445
+ if key is not None:
1446
+ pulumi.set(__self__, "key", key)
1447
+ if uri is not None:
1448
+ pulumi.set(__self__, "uri", uri)
1449
+
1450
+ @property
1451
+ @pulumi.getter
1452
+ def key(self) -> Optional[pulumi.Input[str]]:
1453
+ """
1454
+ A unique key for this input. Must be specified when using advanced mapping and edit lists.
1455
+ """
1456
+ return pulumi.get(self, "key")
1457
+
1458
+ @key.setter
1459
+ def key(self, value: Optional[pulumi.Input[str]]):
1460
+ pulumi.set(self, "key", value)
1461
+
1462
+ @property
1463
+ @pulumi.getter
1464
+ def uri(self) -> Optional[pulumi.Input[str]]:
1465
+ """
1466
+ 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).
1467
+ If empty, the value is populated from Job.input_uri.
1468
+ """
1469
+ return pulumi.get(self, "uri")
1470
+
1471
+ @uri.setter
1472
+ def uri(self, value: Optional[pulumi.Input[str]]):
1473
+ pulumi.set(self, "uri", value)
1474
+
1475
+
1476
+ if not MYPY:
1477
+ class JobConfigManifestArgsDict(TypedDict):
1478
+ file_name: NotRequired[pulumi.Input[str]]
1479
+ """
1480
+ The name of the generated file. The default is `manifest`.
1481
+ """
1482
+ mux_streams: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1483
+ """
1484
+ List of user supplied MuxStream.key values that should appear in this manifest.
1485
+ """
1486
+ type: NotRequired[pulumi.Input[str]]
1487
+ """
1488
+ Type of the manifest.
1489
+ Possible values are: `MANIFEST_TYPE_UNSPECIFIED`, `HLS`, `DASH`.
1490
+ """
1491
+ elif False:
1492
+ JobConfigManifestArgsDict: TypeAlias = Mapping[str, Any]
1493
+
1494
+ @pulumi.input_type
1495
+ class JobConfigManifestArgs:
1496
+ def __init__(__self__, *,
1497
+ file_name: Optional[pulumi.Input[str]] = None,
1498
+ mux_streams: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1499
+ type: Optional[pulumi.Input[str]] = None):
1500
+ """
1501
+ :param pulumi.Input[str] file_name: The name of the generated file. The default is `manifest`.
1502
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] mux_streams: List of user supplied MuxStream.key values that should appear in this manifest.
1503
+ :param pulumi.Input[str] type: Type of the manifest.
1504
+ Possible values are: `MANIFEST_TYPE_UNSPECIFIED`, `HLS`, `DASH`.
1505
+ """
1506
+ if file_name is not None:
1507
+ pulumi.set(__self__, "file_name", file_name)
1508
+ if mux_streams is not None:
1509
+ pulumi.set(__self__, "mux_streams", mux_streams)
1510
+ if type is not None:
1511
+ pulumi.set(__self__, "type", type)
1512
+
1513
+ @property
1514
+ @pulumi.getter(name="fileName")
1515
+ def file_name(self) -> Optional[pulumi.Input[str]]:
1516
+ """
1517
+ The name of the generated file. The default is `manifest`.
1518
+ """
1519
+ return pulumi.get(self, "file_name")
1520
+
1521
+ @file_name.setter
1522
+ def file_name(self, value: Optional[pulumi.Input[str]]):
1523
+ pulumi.set(self, "file_name", value)
1524
+
1525
+ @property
1526
+ @pulumi.getter(name="muxStreams")
1527
+ def mux_streams(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1528
+ """
1529
+ List of user supplied MuxStream.key values that should appear in this manifest.
1530
+ """
1531
+ return pulumi.get(self, "mux_streams")
1532
+
1533
+ @mux_streams.setter
1534
+ def mux_streams(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1535
+ pulumi.set(self, "mux_streams", value)
1536
+
1537
+ @property
1538
+ @pulumi.getter
1539
+ def type(self) -> Optional[pulumi.Input[str]]:
1540
+ """
1541
+ Type of the manifest.
1542
+ Possible values are: `MANIFEST_TYPE_UNSPECIFIED`, `HLS`, `DASH`.
1543
+ """
1544
+ return pulumi.get(self, "type")
1545
+
1546
+ @type.setter
1547
+ def type(self, value: Optional[pulumi.Input[str]]):
1548
+ pulumi.set(self, "type", value)
1549
+
1550
+
1551
+ if not MYPY:
1552
+ class JobConfigMuxStreamArgsDict(TypedDict):
1553
+ container: NotRequired[pulumi.Input[str]]
1554
+ """
1555
+ The container format. The default is `mp4`.
1556
+ """
1557
+ elementary_streams: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1558
+ """
1559
+ List of ElementaryStream.key values multiplexed in this stream.
1560
+ """
1561
+ encryption_id: NotRequired[pulumi.Input[str]]
1562
+ """
1563
+ Identifier of the encryption configuration to use.
1564
+ """
1565
+ file_name: NotRequired[pulumi.Input[str]]
1566
+ """
1567
+ The name of the generated file.
1568
+ """
1569
+ key: NotRequired[pulumi.Input[str]]
1570
+ """
1571
+ A unique key for this multiplexed stream.
1572
+ """
1573
+ segment_settings: NotRequired[pulumi.Input['JobConfigMuxStreamSegmentSettingsArgsDict']]
1574
+ """
1575
+ Segment settings for ts, fmp4 and vtt.
1576
+ Structure is documented below.
1577
+ """
1578
+ elif False:
1579
+ JobConfigMuxStreamArgsDict: TypeAlias = Mapping[str, Any]
1580
+
1581
+ @pulumi.input_type
1582
+ class JobConfigMuxStreamArgs:
1583
+ def __init__(__self__, *,
1584
+ container: Optional[pulumi.Input[str]] = None,
1585
+ elementary_streams: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1586
+ encryption_id: Optional[pulumi.Input[str]] = None,
1587
+ file_name: Optional[pulumi.Input[str]] = None,
1588
+ key: Optional[pulumi.Input[str]] = None,
1589
+ segment_settings: Optional[pulumi.Input['JobConfigMuxStreamSegmentSettingsArgs']] = None):
1590
+ """
1591
+ :param pulumi.Input[str] container: The container format. The default is `mp4`.
1592
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] elementary_streams: List of ElementaryStream.key values multiplexed in this stream.
1593
+ :param pulumi.Input[str] encryption_id: Identifier of the encryption configuration to use.
1594
+ :param pulumi.Input[str] file_name: The name of the generated file.
1595
+ :param pulumi.Input[str] key: A unique key for this multiplexed stream.
1596
+ :param pulumi.Input['JobConfigMuxStreamSegmentSettingsArgs'] segment_settings: Segment settings for ts, fmp4 and vtt.
1597
+ Structure is documented below.
1598
+ """
1599
+ if container is not None:
1600
+ pulumi.set(__self__, "container", container)
1601
+ if elementary_streams is not None:
1602
+ pulumi.set(__self__, "elementary_streams", elementary_streams)
1603
+ if encryption_id is not None:
1604
+ pulumi.set(__self__, "encryption_id", encryption_id)
1605
+ if file_name is not None:
1606
+ pulumi.set(__self__, "file_name", file_name)
1607
+ if key is not None:
1608
+ pulumi.set(__self__, "key", key)
1609
+ if segment_settings is not None:
1610
+ pulumi.set(__self__, "segment_settings", segment_settings)
1611
+
1612
+ @property
1613
+ @pulumi.getter
1614
+ def container(self) -> Optional[pulumi.Input[str]]:
1615
+ """
1616
+ The container format. The default is `mp4`.
1617
+ """
1618
+ return pulumi.get(self, "container")
1619
+
1620
+ @container.setter
1621
+ def container(self, value: Optional[pulumi.Input[str]]):
1622
+ pulumi.set(self, "container", value)
1623
+
1624
+ @property
1625
+ @pulumi.getter(name="elementaryStreams")
1626
+ def elementary_streams(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1627
+ """
1628
+ List of ElementaryStream.key values multiplexed in this stream.
1629
+ """
1630
+ return pulumi.get(self, "elementary_streams")
1631
+
1632
+ @elementary_streams.setter
1633
+ def elementary_streams(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1634
+ pulumi.set(self, "elementary_streams", value)
1635
+
1636
+ @property
1637
+ @pulumi.getter(name="encryptionId")
1638
+ def encryption_id(self) -> Optional[pulumi.Input[str]]:
1639
+ """
1640
+ Identifier of the encryption configuration to use.
1641
+ """
1642
+ return pulumi.get(self, "encryption_id")
1643
+
1644
+ @encryption_id.setter
1645
+ def encryption_id(self, value: Optional[pulumi.Input[str]]):
1646
+ pulumi.set(self, "encryption_id", value)
1647
+
1648
+ @property
1649
+ @pulumi.getter(name="fileName")
1650
+ def file_name(self) -> Optional[pulumi.Input[str]]:
1651
+ """
1652
+ The name of the generated file.
1653
+ """
1654
+ return pulumi.get(self, "file_name")
1655
+
1656
+ @file_name.setter
1657
+ def file_name(self, value: Optional[pulumi.Input[str]]):
1658
+ pulumi.set(self, "file_name", value)
1659
+
1660
+ @property
1661
+ @pulumi.getter
1662
+ def key(self) -> Optional[pulumi.Input[str]]:
1663
+ """
1664
+ A unique key for this multiplexed stream.
1665
+ """
1666
+ return pulumi.get(self, "key")
1667
+
1668
+ @key.setter
1669
+ def key(self, value: Optional[pulumi.Input[str]]):
1670
+ pulumi.set(self, "key", value)
1671
+
1672
+ @property
1673
+ @pulumi.getter(name="segmentSettings")
1674
+ def segment_settings(self) -> Optional[pulumi.Input['JobConfigMuxStreamSegmentSettingsArgs']]:
1675
+ """
1676
+ Segment settings for ts, fmp4 and vtt.
1677
+ Structure is documented below.
1678
+ """
1679
+ return pulumi.get(self, "segment_settings")
1680
+
1681
+ @segment_settings.setter
1682
+ def segment_settings(self, value: Optional[pulumi.Input['JobConfigMuxStreamSegmentSettingsArgs']]):
1683
+ pulumi.set(self, "segment_settings", value)
1684
+
1685
+
1686
+ if not MYPY:
1687
+ class JobConfigMuxStreamSegmentSettingsArgsDict(TypedDict):
1688
+ segment_duration: NotRequired[pulumi.Input[str]]
1689
+ """
1690
+ Duration of the segments in seconds. The default is `6.0s`.
1691
+ """
1692
+ elif False:
1693
+ JobConfigMuxStreamSegmentSettingsArgsDict: TypeAlias = Mapping[str, Any]
1694
+
1695
+ @pulumi.input_type
1696
+ class JobConfigMuxStreamSegmentSettingsArgs:
1697
+ def __init__(__self__, *,
1698
+ segment_duration: Optional[pulumi.Input[str]] = None):
1699
+ """
1700
+ :param pulumi.Input[str] segment_duration: Duration of the segments in seconds. The default is `6.0s`.
1701
+ """
1702
+ if segment_duration is not None:
1703
+ pulumi.set(__self__, "segment_duration", segment_duration)
1704
+
1705
+ @property
1706
+ @pulumi.getter(name="segmentDuration")
1707
+ def segment_duration(self) -> Optional[pulumi.Input[str]]:
1708
+ """
1709
+ Duration of the segments in seconds. The default is `6.0s`.
1710
+ """
1711
+ return pulumi.get(self, "segment_duration")
1712
+
1713
+ @segment_duration.setter
1714
+ def segment_duration(self, value: Optional[pulumi.Input[str]]):
1715
+ pulumi.set(self, "segment_duration", value)
1716
+
1717
+
1718
+ if not MYPY:
1719
+ class JobConfigOutputArgsDict(TypedDict):
1720
+ uri: NotRequired[pulumi.Input[str]]
1721
+ """
1722
+ URI for the output file(s). For example, gs://my-bucket/outputs/.
1723
+ """
1724
+ elif False:
1725
+ JobConfigOutputArgsDict: TypeAlias = Mapping[str, Any]
1726
+
1727
+ @pulumi.input_type
1728
+ class JobConfigOutputArgs:
1729
+ def __init__(__self__, *,
1730
+ uri: Optional[pulumi.Input[str]] = None):
1731
+ """
1732
+ :param pulumi.Input[str] uri: URI for the output file(s). For example, gs://my-bucket/outputs/.
1733
+ """
1734
+ if uri is not None:
1735
+ pulumi.set(__self__, "uri", uri)
1736
+
1737
+ @property
1738
+ @pulumi.getter
1739
+ def uri(self) -> Optional[pulumi.Input[str]]:
1740
+ """
1741
+ URI for the output file(s). For example, gs://my-bucket/outputs/.
1742
+ """
1743
+ return pulumi.get(self, "uri")
1744
+
1745
+ @uri.setter
1746
+ def uri(self, value: Optional[pulumi.Input[str]]):
1747
+ pulumi.set(self, "uri", value)
1748
+
1749
+
1750
+ if not MYPY:
1751
+ class JobConfigOverlayArgsDict(TypedDict):
1752
+ animations: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobConfigOverlayAnimationArgsDict']]]]
1753
+ """
1754
+ List of animations. The list should be chronological, without any time overlap.
1755
+ Structure is documented below.
1756
+ """
1757
+ image: NotRequired[pulumi.Input['JobConfigOverlayImageArgsDict']]
1758
+ """
1759
+ Image overlay.
1760
+ Structure is documented below.
1761
+ """
1762
+ elif False:
1763
+ JobConfigOverlayArgsDict: TypeAlias = Mapping[str, Any]
1764
+
1765
+ @pulumi.input_type
1766
+ class JobConfigOverlayArgs:
1767
+ def __init__(__self__, *,
1768
+ animations: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigOverlayAnimationArgs']]]] = None,
1769
+ image: Optional[pulumi.Input['JobConfigOverlayImageArgs']] = None):
1770
+ """
1771
+ :param pulumi.Input[Sequence[pulumi.Input['JobConfigOverlayAnimationArgs']]] animations: List of animations. The list should be chronological, without any time overlap.
1772
+ Structure is documented below.
1773
+ :param pulumi.Input['JobConfigOverlayImageArgs'] image: Image overlay.
1774
+ Structure is documented below.
1775
+ """
1776
+ if animations is not None:
1777
+ pulumi.set(__self__, "animations", animations)
1778
+ if image is not None:
1779
+ pulumi.set(__self__, "image", image)
1780
+
1781
+ @property
1782
+ @pulumi.getter
1783
+ def animations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigOverlayAnimationArgs']]]]:
1784
+ """
1785
+ List of animations. The list should be chronological, without any time overlap.
1786
+ Structure is documented below.
1787
+ """
1788
+ return pulumi.get(self, "animations")
1789
+
1790
+ @animations.setter
1791
+ def animations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobConfigOverlayAnimationArgs']]]]):
1792
+ pulumi.set(self, "animations", value)
1793
+
1794
+ @property
1795
+ @pulumi.getter
1796
+ def image(self) -> Optional[pulumi.Input['JobConfigOverlayImageArgs']]:
1797
+ """
1798
+ Image overlay.
1799
+ Structure is documented below.
1800
+ """
1801
+ return pulumi.get(self, "image")
1802
+
1803
+ @image.setter
1804
+ def image(self, value: Optional[pulumi.Input['JobConfigOverlayImageArgs']]):
1805
+ pulumi.set(self, "image", value)
1806
+
1807
+
1808
+ if not MYPY:
1809
+ class JobConfigOverlayAnimationArgsDict(TypedDict):
1810
+ animation_fade: NotRequired[pulumi.Input['JobConfigOverlayAnimationAnimationFadeArgsDict']]
1811
+ """
1812
+ Display overlay object with fade animation.
1813
+ Structure is documented below.
1814
+ """
1815
+ elif False:
1816
+ JobConfigOverlayAnimationArgsDict: TypeAlias = Mapping[str, Any]
1817
+
1818
+ @pulumi.input_type
1819
+ class JobConfigOverlayAnimationArgs:
1820
+ def __init__(__self__, *,
1821
+ animation_fade: Optional[pulumi.Input['JobConfigOverlayAnimationAnimationFadeArgs']] = None):
1822
+ """
1823
+ :param pulumi.Input['JobConfigOverlayAnimationAnimationFadeArgs'] animation_fade: Display overlay object with fade animation.
1824
+ Structure is documented below.
1825
+ """
1826
+ if animation_fade is not None:
1827
+ pulumi.set(__self__, "animation_fade", animation_fade)
1828
+
1829
+ @property
1830
+ @pulumi.getter(name="animationFade")
1831
+ def animation_fade(self) -> Optional[pulumi.Input['JobConfigOverlayAnimationAnimationFadeArgs']]:
1832
+ """
1833
+ Display overlay object with fade animation.
1834
+ Structure is documented below.
1835
+ """
1836
+ return pulumi.get(self, "animation_fade")
1837
+
1838
+ @animation_fade.setter
1839
+ def animation_fade(self, value: Optional[pulumi.Input['JobConfigOverlayAnimationAnimationFadeArgs']]):
1840
+ pulumi.set(self, "animation_fade", value)
1841
+
1842
+
1843
+ if not MYPY:
1844
+ class JobConfigOverlayAnimationAnimationFadeArgsDict(TypedDict):
1845
+ fade_type: pulumi.Input[str]
1846
+ """
1847
+ Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
1848
+ The possible values are:
1849
+ * `FADE_TYPE_UNSPECIFIED`: The fade type is not specified.
1850
+ * `FADE_IN`: Fade the overlay object into view.
1851
+ * `FADE_OUT`: Fade the overlay object out of view.
1852
+ Possible values are: `FADE_TYPE_UNSPECIFIED`, `FADE_IN`, `FADE_OUT`.
1853
+ """
1854
+ end_time_offset: NotRequired[pulumi.Input[str]]
1855
+ """
1856
+ The time to end the fade animation, in seconds.
1857
+ """
1858
+ start_time_offset: NotRequired[pulumi.Input[str]]
1859
+ """
1860
+ The time to start the fade animation, in seconds.
1861
+ """
1862
+ xy: NotRequired[pulumi.Input['JobConfigOverlayAnimationAnimationFadeXyArgsDict']]
1863
+ """
1864
+ Normalized coordinates based on output video resolution.
1865
+ Structure is documented below.
1866
+ """
1867
+ elif False:
1868
+ JobConfigOverlayAnimationAnimationFadeArgsDict: TypeAlias = Mapping[str, Any]
1869
+
1870
+ @pulumi.input_type
1871
+ class JobConfigOverlayAnimationAnimationFadeArgs:
1872
+ def __init__(__self__, *,
1873
+ fade_type: pulumi.Input[str],
1874
+ end_time_offset: Optional[pulumi.Input[str]] = None,
1875
+ start_time_offset: Optional[pulumi.Input[str]] = None,
1876
+ xy: Optional[pulumi.Input['JobConfigOverlayAnimationAnimationFadeXyArgs']] = None):
1877
+ """
1878
+ :param pulumi.Input[str] fade_type: Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
1879
+ The possible values are:
1880
+ * `FADE_TYPE_UNSPECIFIED`: The fade type is not specified.
1881
+ * `FADE_IN`: Fade the overlay object into view.
1882
+ * `FADE_OUT`: Fade the overlay object out of view.
1883
+ Possible values are: `FADE_TYPE_UNSPECIFIED`, `FADE_IN`, `FADE_OUT`.
1884
+ :param pulumi.Input[str] end_time_offset: The time to end the fade animation, in seconds.
1885
+ :param pulumi.Input[str] start_time_offset: The time to start the fade animation, in seconds.
1886
+ :param pulumi.Input['JobConfigOverlayAnimationAnimationFadeXyArgs'] xy: Normalized coordinates based on output video resolution.
1887
+ Structure is documented below.
1888
+ """
1889
+ pulumi.set(__self__, "fade_type", fade_type)
1890
+ if end_time_offset is not None:
1891
+ pulumi.set(__self__, "end_time_offset", end_time_offset)
1892
+ if start_time_offset is not None:
1893
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
1894
+ if xy is not None:
1895
+ pulumi.set(__self__, "xy", xy)
1896
+
1897
+ @property
1898
+ @pulumi.getter(name="fadeType")
1899
+ def fade_type(self) -> pulumi.Input[str]:
1900
+ """
1901
+ Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
1902
+ The possible values are:
1903
+ * `FADE_TYPE_UNSPECIFIED`: The fade type is not specified.
1904
+ * `FADE_IN`: Fade the overlay object into view.
1905
+ * `FADE_OUT`: Fade the overlay object out of view.
1906
+ Possible values are: `FADE_TYPE_UNSPECIFIED`, `FADE_IN`, `FADE_OUT`.
1907
+ """
1908
+ return pulumi.get(self, "fade_type")
1909
+
1910
+ @fade_type.setter
1911
+ def fade_type(self, value: pulumi.Input[str]):
1912
+ pulumi.set(self, "fade_type", value)
1913
+
1914
+ @property
1915
+ @pulumi.getter(name="endTimeOffset")
1916
+ def end_time_offset(self) -> Optional[pulumi.Input[str]]:
1917
+ """
1918
+ The time to end the fade animation, in seconds.
1919
+ """
1920
+ return pulumi.get(self, "end_time_offset")
1921
+
1922
+ @end_time_offset.setter
1923
+ def end_time_offset(self, value: Optional[pulumi.Input[str]]):
1924
+ pulumi.set(self, "end_time_offset", value)
1925
+
1926
+ @property
1927
+ @pulumi.getter(name="startTimeOffset")
1928
+ def start_time_offset(self) -> Optional[pulumi.Input[str]]:
1929
+ """
1930
+ The time to start the fade animation, in seconds.
1931
+ """
1932
+ return pulumi.get(self, "start_time_offset")
1933
+
1934
+ @start_time_offset.setter
1935
+ def start_time_offset(self, value: Optional[pulumi.Input[str]]):
1936
+ pulumi.set(self, "start_time_offset", value)
1937
+
1938
+ @property
1939
+ @pulumi.getter
1940
+ def xy(self) -> Optional[pulumi.Input['JobConfigOverlayAnimationAnimationFadeXyArgs']]:
1941
+ """
1942
+ Normalized coordinates based on output video resolution.
1943
+ Structure is documented below.
1944
+ """
1945
+ return pulumi.get(self, "xy")
1946
+
1947
+ @xy.setter
1948
+ def xy(self, value: Optional[pulumi.Input['JobConfigOverlayAnimationAnimationFadeXyArgs']]):
1949
+ pulumi.set(self, "xy", value)
1950
+
1951
+
1952
+ if not MYPY:
1953
+ class JobConfigOverlayAnimationAnimationFadeXyArgsDict(TypedDict):
1954
+ x: NotRequired[pulumi.Input[float]]
1955
+ """
1956
+ Normalized x coordinate.
1957
+ """
1958
+ y: NotRequired[pulumi.Input[float]]
1959
+ """
1960
+ Normalized y coordinate.
1961
+ """
1962
+ elif False:
1963
+ JobConfigOverlayAnimationAnimationFadeXyArgsDict: TypeAlias = Mapping[str, Any]
1964
+
1965
+ @pulumi.input_type
1966
+ class JobConfigOverlayAnimationAnimationFadeXyArgs:
1967
+ def __init__(__self__, *,
1968
+ x: Optional[pulumi.Input[float]] = None,
1969
+ y: Optional[pulumi.Input[float]] = None):
1970
+ """
1971
+ :param pulumi.Input[float] x: Normalized x coordinate.
1972
+ :param pulumi.Input[float] y: Normalized y coordinate.
1973
+ """
1974
+ if x is not None:
1975
+ pulumi.set(__self__, "x", x)
1976
+ if y is not None:
1977
+ pulumi.set(__self__, "y", y)
1978
+
1979
+ @property
1980
+ @pulumi.getter
1981
+ def x(self) -> Optional[pulumi.Input[float]]:
1982
+ """
1983
+ Normalized x coordinate.
1984
+ """
1985
+ return pulumi.get(self, "x")
1986
+
1987
+ @x.setter
1988
+ def x(self, value: Optional[pulumi.Input[float]]):
1989
+ pulumi.set(self, "x", value)
1990
+
1991
+ @property
1992
+ @pulumi.getter
1993
+ def y(self) -> Optional[pulumi.Input[float]]:
1994
+ """
1995
+ Normalized y coordinate.
1996
+ """
1997
+ return pulumi.get(self, "y")
1998
+
1999
+ @y.setter
2000
+ def y(self, value: Optional[pulumi.Input[float]]):
2001
+ pulumi.set(self, "y", value)
2002
+
2003
+
2004
+ if not MYPY:
2005
+ class JobConfigOverlayImageArgsDict(TypedDict):
2006
+ uri: pulumi.Input[str]
2007
+ """
2008
+ URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
2009
+ """
2010
+ elif False:
2011
+ JobConfigOverlayImageArgsDict: TypeAlias = Mapping[str, Any]
2012
+
2013
+ @pulumi.input_type
2014
+ class JobConfigOverlayImageArgs:
2015
+ def __init__(__self__, *,
2016
+ uri: pulumi.Input[str]):
2017
+ """
2018
+ :param pulumi.Input[str] uri: URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
2019
+ """
2020
+ pulumi.set(__self__, "uri", uri)
2021
+
2022
+ @property
2023
+ @pulumi.getter
2024
+ def uri(self) -> pulumi.Input[str]:
2025
+ """
2026
+ URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
2027
+ """
2028
+ return pulumi.get(self, "uri")
2029
+
2030
+ @uri.setter
2031
+ def uri(self, value: pulumi.Input[str]):
2032
+ pulumi.set(self, "uri", value)
2033
+
2034
+
2035
+ if not MYPY:
2036
+ class JobConfigPubsubDestinationArgsDict(TypedDict):
2037
+ topic: NotRequired[pulumi.Input[str]]
2038
+ """
2039
+ The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
2040
+ """
2041
+ elif False:
2042
+ JobConfigPubsubDestinationArgsDict: TypeAlias = Mapping[str, Any]
2043
+
2044
+ @pulumi.input_type
2045
+ class JobConfigPubsubDestinationArgs:
2046
+ def __init__(__self__, *,
2047
+ topic: Optional[pulumi.Input[str]] = None):
2048
+ """
2049
+ :param pulumi.Input[str] topic: The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
2050
+ """
2051
+ if topic is not None:
2052
+ pulumi.set(__self__, "topic", topic)
2053
+
2054
+ @property
2055
+ @pulumi.getter
2056
+ def topic(self) -> Optional[pulumi.Input[str]]:
2057
+ """
2058
+ The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
2059
+ """
2060
+ return pulumi.get(self, "topic")
2061
+
2062
+ @topic.setter
2063
+ def topic(self, value: Optional[pulumi.Input[str]]):
2064
+ pulumi.set(self, "topic", value)
2065
+
2066
+
2067
+ if not MYPY:
2068
+ class JobTemplateConfigArgsDict(TypedDict):
2069
+ ad_breaks: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigAdBreakArgsDict']]]]
2070
+ """
2071
+ Ad break.
2072
+ Structure is documented below.
2073
+ """
2074
+ edit_lists: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigEditListArgsDict']]]]
2075
+ """
2076
+ List of input assets stored in Cloud Storage.
2077
+ Structure is documented below.
2078
+ """
2079
+ elementary_streams: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigElementaryStreamArgsDict']]]]
2080
+ """
2081
+ List of input assets stored in Cloud Storage.
2082
+ Structure is documented below.
2083
+ """
2084
+ encryptions: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigEncryptionArgsDict']]]]
2085
+ """
2086
+ List of encryption configurations for the content.
2087
+ Structure is documented below.
2088
+ """
2089
+ inputs: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigInputArgsDict']]]]
2090
+ """
2091
+ List of input assets stored in Cloud Storage.
2092
+ Structure is documented below.
2093
+ """
2094
+ manifests: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigManifestArgsDict']]]]
2095
+ """
2096
+ Manifest configuration.
2097
+ Structure is documented below.
2098
+ """
2099
+ mux_streams: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigMuxStreamArgsDict']]]]
2100
+ """
2101
+ Multiplexing settings for output stream.
2102
+ Structure is documented below.
2103
+ """
2104
+ output: NotRequired[pulumi.Input['JobTemplateConfigOutputArgsDict']]
2105
+ """
2106
+ Location of output file(s) in a Cloud Storage bucket.
2107
+ Structure is documented below.
2108
+ """
2109
+ overlays: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigOverlayArgsDict']]]]
2110
+ """
2111
+ List of overlays on the output video, in descending Z-order.
2112
+ Structure is documented below.
2113
+ """
2114
+ pubsub_destination: NotRequired[pulumi.Input['JobTemplateConfigPubsubDestinationArgsDict']]
2115
+ """
2116
+ Pub/Sub destination.
2117
+ Structure is documented below.
2118
+ """
2119
+ elif False:
2120
+ JobTemplateConfigArgsDict: TypeAlias = Mapping[str, Any]
2121
+
2122
+ @pulumi.input_type
2123
+ class JobTemplateConfigArgs:
2124
+ def __init__(__self__, *,
2125
+ ad_breaks: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigAdBreakArgs']]]] = None,
2126
+ edit_lists: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigEditListArgs']]]] = None,
2127
+ elementary_streams: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigElementaryStreamArgs']]]] = None,
2128
+ encryptions: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigEncryptionArgs']]]] = None,
2129
+ inputs: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigInputArgs']]]] = None,
2130
+ manifests: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigManifestArgs']]]] = None,
2131
+ mux_streams: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigMuxStreamArgs']]]] = None,
2132
+ output: Optional[pulumi.Input['JobTemplateConfigOutputArgs']] = None,
2133
+ overlays: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigOverlayArgs']]]] = None,
2134
+ pubsub_destination: Optional[pulumi.Input['JobTemplateConfigPubsubDestinationArgs']] = None):
2135
+ """
2136
+ :param pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigAdBreakArgs']]] ad_breaks: Ad break.
2137
+ Structure is documented below.
2138
+ :param pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigEditListArgs']]] edit_lists: List of input assets stored in Cloud Storage.
2139
+ Structure is documented below.
2140
+ :param pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigElementaryStreamArgs']]] elementary_streams: List of input assets stored in Cloud Storage.
2141
+ Structure is documented below.
2142
+ :param pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigEncryptionArgs']]] encryptions: List of encryption configurations for the content.
2143
+ Structure is documented below.
2144
+ :param pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigInputArgs']]] inputs: List of input assets stored in Cloud Storage.
2145
+ Structure is documented below.
2146
+ :param pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigManifestArgs']]] manifests: Manifest configuration.
2147
+ Structure is documented below.
2148
+ :param pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigMuxStreamArgs']]] mux_streams: Multiplexing settings for output stream.
2149
+ Structure is documented below.
2150
+ :param pulumi.Input['JobTemplateConfigOutputArgs'] output: Location of output file(s) in a Cloud Storage bucket.
2151
+ Structure is documented below.
2152
+ :param pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigOverlayArgs']]] overlays: List of overlays on the output video, in descending Z-order.
2153
+ Structure is documented below.
2154
+ :param pulumi.Input['JobTemplateConfigPubsubDestinationArgs'] pubsub_destination: Pub/Sub destination.
2155
+ Structure is documented below.
2156
+ """
2157
+ if ad_breaks is not None:
2158
+ pulumi.set(__self__, "ad_breaks", ad_breaks)
2159
+ if edit_lists is not None:
2160
+ pulumi.set(__self__, "edit_lists", edit_lists)
2161
+ if elementary_streams is not None:
2162
+ pulumi.set(__self__, "elementary_streams", elementary_streams)
2163
+ if encryptions is not None:
2164
+ pulumi.set(__self__, "encryptions", encryptions)
2165
+ if inputs is not None:
2166
+ pulumi.set(__self__, "inputs", inputs)
2167
+ if manifests is not None:
2168
+ pulumi.set(__self__, "manifests", manifests)
2169
+ if mux_streams is not None:
2170
+ pulumi.set(__self__, "mux_streams", mux_streams)
2171
+ if output is not None:
2172
+ pulumi.set(__self__, "output", output)
2173
+ if overlays is not None:
2174
+ pulumi.set(__self__, "overlays", overlays)
2175
+ if pubsub_destination is not None:
2176
+ pulumi.set(__self__, "pubsub_destination", pubsub_destination)
2177
+
2178
+ @property
2179
+ @pulumi.getter(name="adBreaks")
2180
+ def ad_breaks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigAdBreakArgs']]]]:
2181
+ """
2182
+ Ad break.
2183
+ Structure is documented below.
2184
+ """
2185
+ return pulumi.get(self, "ad_breaks")
2186
+
2187
+ @ad_breaks.setter
2188
+ def ad_breaks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigAdBreakArgs']]]]):
2189
+ pulumi.set(self, "ad_breaks", value)
2190
+
2191
+ @property
2192
+ @pulumi.getter(name="editLists")
2193
+ def edit_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigEditListArgs']]]]:
2194
+ """
2195
+ List of input assets stored in Cloud Storage.
2196
+ Structure is documented below.
2197
+ """
2198
+ return pulumi.get(self, "edit_lists")
2199
+
2200
+ @edit_lists.setter
2201
+ def edit_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigEditListArgs']]]]):
2202
+ pulumi.set(self, "edit_lists", value)
2203
+
2204
+ @property
2205
+ @pulumi.getter(name="elementaryStreams")
2206
+ def elementary_streams(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigElementaryStreamArgs']]]]:
2207
+ """
2208
+ List of input assets stored in Cloud Storage.
2209
+ Structure is documented below.
2210
+ """
2211
+ return pulumi.get(self, "elementary_streams")
2212
+
2213
+ @elementary_streams.setter
2214
+ def elementary_streams(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigElementaryStreamArgs']]]]):
2215
+ pulumi.set(self, "elementary_streams", value)
2216
+
2217
+ @property
2218
+ @pulumi.getter
2219
+ def encryptions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigEncryptionArgs']]]]:
2220
+ """
2221
+ List of encryption configurations for the content.
2222
+ Structure is documented below.
2223
+ """
2224
+ return pulumi.get(self, "encryptions")
2225
+
2226
+ @encryptions.setter
2227
+ def encryptions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigEncryptionArgs']]]]):
2228
+ pulumi.set(self, "encryptions", value)
2229
+
2230
+ @property
2231
+ @pulumi.getter
2232
+ def inputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigInputArgs']]]]:
2233
+ """
2234
+ List of input assets stored in Cloud Storage.
2235
+ Structure is documented below.
2236
+ """
2237
+ return pulumi.get(self, "inputs")
2238
+
2239
+ @inputs.setter
2240
+ def inputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigInputArgs']]]]):
2241
+ pulumi.set(self, "inputs", value)
2242
+
2243
+ @property
2244
+ @pulumi.getter
2245
+ def manifests(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigManifestArgs']]]]:
2246
+ """
2247
+ Manifest configuration.
2248
+ Structure is documented below.
2249
+ """
2250
+ return pulumi.get(self, "manifests")
2251
+
2252
+ @manifests.setter
2253
+ def manifests(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigManifestArgs']]]]):
2254
+ pulumi.set(self, "manifests", value)
2255
+
2256
+ @property
2257
+ @pulumi.getter(name="muxStreams")
2258
+ def mux_streams(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigMuxStreamArgs']]]]:
2259
+ """
2260
+ Multiplexing settings for output stream.
2261
+ Structure is documented below.
2262
+ """
2263
+ return pulumi.get(self, "mux_streams")
2264
+
2265
+ @mux_streams.setter
2266
+ def mux_streams(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigMuxStreamArgs']]]]):
2267
+ pulumi.set(self, "mux_streams", value)
2268
+
2269
+ @property
2270
+ @pulumi.getter
2271
+ def output(self) -> Optional[pulumi.Input['JobTemplateConfigOutputArgs']]:
2272
+ """
2273
+ Location of output file(s) in a Cloud Storage bucket.
2274
+ Structure is documented below.
2275
+ """
2276
+ return pulumi.get(self, "output")
2277
+
2278
+ @output.setter
2279
+ def output(self, value: Optional[pulumi.Input['JobTemplateConfigOutputArgs']]):
2280
+ pulumi.set(self, "output", value)
2281
+
2282
+ @property
2283
+ @pulumi.getter
2284
+ def overlays(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigOverlayArgs']]]]:
2285
+ """
2286
+ List of overlays on the output video, in descending Z-order.
2287
+ Structure is documented below.
2288
+ """
2289
+ return pulumi.get(self, "overlays")
2290
+
2291
+ @overlays.setter
2292
+ def overlays(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigOverlayArgs']]]]):
2293
+ pulumi.set(self, "overlays", value)
2294
+
2295
+ @property
2296
+ @pulumi.getter(name="pubsubDestination")
2297
+ def pubsub_destination(self) -> Optional[pulumi.Input['JobTemplateConfigPubsubDestinationArgs']]:
2298
+ """
2299
+ Pub/Sub destination.
2300
+ Structure is documented below.
2301
+ """
2302
+ return pulumi.get(self, "pubsub_destination")
2303
+
2304
+ @pubsub_destination.setter
2305
+ def pubsub_destination(self, value: Optional[pulumi.Input['JobTemplateConfigPubsubDestinationArgs']]):
2306
+ pulumi.set(self, "pubsub_destination", value)
2307
+
2308
+
2309
+ if not MYPY:
2310
+ class JobTemplateConfigAdBreakArgsDict(TypedDict):
2311
+ start_time_offset: NotRequired[pulumi.Input[str]]
2312
+ """
2313
+ Start time in seconds for the ad break, relative to the output file timeline
2314
+ """
2315
+ elif False:
2316
+ JobTemplateConfigAdBreakArgsDict: TypeAlias = Mapping[str, Any]
2317
+
2318
+ @pulumi.input_type
2319
+ class JobTemplateConfigAdBreakArgs:
2320
+ def __init__(__self__, *,
2321
+ start_time_offset: Optional[pulumi.Input[str]] = None):
2322
+ """
2323
+ :param pulumi.Input[str] start_time_offset: Start time in seconds for the ad break, relative to the output file timeline
2324
+ """
2325
+ if start_time_offset is not None:
2326
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
2327
+
2328
+ @property
2329
+ @pulumi.getter(name="startTimeOffset")
2330
+ def start_time_offset(self) -> Optional[pulumi.Input[str]]:
2331
+ """
2332
+ Start time in seconds for the ad break, relative to the output file timeline
2333
+ """
2334
+ return pulumi.get(self, "start_time_offset")
2335
+
2336
+ @start_time_offset.setter
2337
+ def start_time_offset(self, value: Optional[pulumi.Input[str]]):
2338
+ pulumi.set(self, "start_time_offset", value)
2339
+
2340
+
2341
+ if not MYPY:
2342
+ class JobTemplateConfigEditListArgsDict(TypedDict):
2343
+ inputs: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2344
+ """
2345
+ List of values identifying files that should be used in this atom.
2346
+ """
2347
+ key: NotRequired[pulumi.Input[str]]
2348
+ """
2349
+ A unique key for this atom.
2350
+ """
2351
+ start_time_offset: NotRequired[pulumi.Input[str]]
2352
+ """
2353
+ Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.
2354
+ """
2355
+ elif False:
2356
+ JobTemplateConfigEditListArgsDict: TypeAlias = Mapping[str, Any]
2357
+
2358
+ @pulumi.input_type
2359
+ class JobTemplateConfigEditListArgs:
2360
+ def __init__(__self__, *,
2361
+ inputs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2362
+ key: Optional[pulumi.Input[str]] = None,
2363
+ start_time_offset: Optional[pulumi.Input[str]] = None):
2364
+ """
2365
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] inputs: List of values identifying files that should be used in this atom.
2366
+ :param pulumi.Input[str] key: A unique key for this atom.
2367
+ :param pulumi.Input[str] start_time_offset: Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.
2368
+ """
2369
+ if inputs is not None:
2370
+ pulumi.set(__self__, "inputs", inputs)
2371
+ if key is not None:
2372
+ pulumi.set(__self__, "key", key)
2373
+ if start_time_offset is not None:
2374
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
2375
+
2376
+ @property
2377
+ @pulumi.getter
2378
+ def inputs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2379
+ """
2380
+ List of values identifying files that should be used in this atom.
2381
+ """
2382
+ return pulumi.get(self, "inputs")
2383
+
2384
+ @inputs.setter
2385
+ def inputs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2386
+ pulumi.set(self, "inputs", value)
2387
+
2388
+ @property
2389
+ @pulumi.getter
2390
+ def key(self) -> Optional[pulumi.Input[str]]:
2391
+ """
2392
+ A unique key for this atom.
2393
+ """
2394
+ return pulumi.get(self, "key")
2395
+
2396
+ @key.setter
2397
+ def key(self, value: Optional[pulumi.Input[str]]):
2398
+ pulumi.set(self, "key", value)
2399
+
2400
+ @property
2401
+ @pulumi.getter(name="startTimeOffset")
2402
+ def start_time_offset(self) -> Optional[pulumi.Input[str]]:
2403
+ """
2404
+ Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.
2405
+ """
2406
+ return pulumi.get(self, "start_time_offset")
2407
+
2408
+ @start_time_offset.setter
2409
+ def start_time_offset(self, value: Optional[pulumi.Input[str]]):
2410
+ pulumi.set(self, "start_time_offset", value)
2411
+
2412
+
2413
+ if not MYPY:
2414
+ class JobTemplateConfigElementaryStreamArgsDict(TypedDict):
2415
+ audio_stream: NotRequired[pulumi.Input['JobTemplateConfigElementaryStreamAudioStreamArgsDict']]
2416
+ """
2417
+ Encoding of an audio stream.
2418
+ Structure is documented below.
2419
+ """
2420
+ key: NotRequired[pulumi.Input[str]]
2421
+ """
2422
+ A unique key for this atom.
2423
+ """
2424
+ video_stream: NotRequired[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamArgsDict']]
2425
+ """
2426
+ Encoding of a video stream.
2427
+ Structure is documented below.
2428
+ """
2429
+ elif False:
2430
+ JobTemplateConfigElementaryStreamArgsDict: TypeAlias = Mapping[str, Any]
2431
+
2432
+ @pulumi.input_type
2433
+ class JobTemplateConfigElementaryStreamArgs:
2434
+ def __init__(__self__, *,
2435
+ audio_stream: Optional[pulumi.Input['JobTemplateConfigElementaryStreamAudioStreamArgs']] = None,
2436
+ key: Optional[pulumi.Input[str]] = None,
2437
+ video_stream: Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamArgs']] = None):
2438
+ """
2439
+ :param pulumi.Input['JobTemplateConfigElementaryStreamAudioStreamArgs'] audio_stream: Encoding of an audio stream.
2440
+ Structure is documented below.
2441
+ :param pulumi.Input[str] key: A unique key for this atom.
2442
+ :param pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamArgs'] video_stream: Encoding of a video stream.
2443
+ Structure is documented below.
2444
+ """
2445
+ if audio_stream is not None:
2446
+ pulumi.set(__self__, "audio_stream", audio_stream)
2447
+ if key is not None:
2448
+ pulumi.set(__self__, "key", key)
2449
+ if video_stream is not None:
2450
+ pulumi.set(__self__, "video_stream", video_stream)
2451
+
2452
+ @property
2453
+ @pulumi.getter(name="audioStream")
2454
+ def audio_stream(self) -> Optional[pulumi.Input['JobTemplateConfigElementaryStreamAudioStreamArgs']]:
2455
+ """
2456
+ Encoding of an audio stream.
2457
+ Structure is documented below.
2458
+ """
2459
+ return pulumi.get(self, "audio_stream")
2460
+
2461
+ @audio_stream.setter
2462
+ def audio_stream(self, value: Optional[pulumi.Input['JobTemplateConfigElementaryStreamAudioStreamArgs']]):
2463
+ pulumi.set(self, "audio_stream", value)
2464
+
2465
+ @property
2466
+ @pulumi.getter
2467
+ def key(self) -> Optional[pulumi.Input[str]]:
2468
+ """
2469
+ A unique key for this atom.
2470
+ """
2471
+ return pulumi.get(self, "key")
2472
+
2473
+ @key.setter
2474
+ def key(self, value: Optional[pulumi.Input[str]]):
2475
+ pulumi.set(self, "key", value)
2476
+
2477
+ @property
2478
+ @pulumi.getter(name="videoStream")
2479
+ def video_stream(self) -> Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamArgs']]:
2480
+ """
2481
+ Encoding of a video stream.
2482
+ Structure is documented below.
2483
+ """
2484
+ return pulumi.get(self, "video_stream")
2485
+
2486
+ @video_stream.setter
2487
+ def video_stream(self, value: Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamArgs']]):
2488
+ pulumi.set(self, "video_stream", value)
2489
+
2490
+
2491
+ if not MYPY:
2492
+ class JobTemplateConfigElementaryStreamAudioStreamArgsDict(TypedDict):
2493
+ bitrate_bps: pulumi.Input[int]
2494
+ """
2495
+ Audio bitrate in bits per second.
2496
+ """
2497
+ channel_count: NotRequired[pulumi.Input[int]]
2498
+ """
2499
+ Number of audio channels. The default is `2`.
2500
+ """
2501
+ channel_layouts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2502
+ """
2503
+ A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
2504
+ """
2505
+ codec: NotRequired[pulumi.Input[str]]
2506
+ """
2507
+ The codec for this audio stream. The default is `aac`.
2508
+ """
2509
+ sample_rate_hertz: NotRequired[pulumi.Input[int]]
2510
+ """
2511
+ The audio sample rate in Hertz. The default is `48000`.
2512
+ """
2513
+ elif False:
2514
+ JobTemplateConfigElementaryStreamAudioStreamArgsDict: TypeAlias = Mapping[str, Any]
2515
+
2516
+ @pulumi.input_type
2517
+ class JobTemplateConfigElementaryStreamAudioStreamArgs:
2518
+ def __init__(__self__, *,
2519
+ bitrate_bps: pulumi.Input[int],
2520
+ channel_count: Optional[pulumi.Input[int]] = None,
2521
+ channel_layouts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2522
+ codec: Optional[pulumi.Input[str]] = None,
2523
+ sample_rate_hertz: Optional[pulumi.Input[int]] = None):
2524
+ """
2525
+ :param pulumi.Input[int] bitrate_bps: Audio bitrate in bits per second.
2526
+ :param pulumi.Input[int] channel_count: Number of audio channels. The default is `2`.
2527
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] channel_layouts: A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
2528
+ :param pulumi.Input[str] codec: The codec for this audio stream. The default is `aac`.
2529
+ :param pulumi.Input[int] sample_rate_hertz: The audio sample rate in Hertz. The default is `48000`.
2530
+ """
2531
+ pulumi.set(__self__, "bitrate_bps", bitrate_bps)
2532
+ if channel_count is not None:
2533
+ pulumi.set(__self__, "channel_count", channel_count)
2534
+ if channel_layouts is not None:
2535
+ pulumi.set(__self__, "channel_layouts", channel_layouts)
2536
+ if codec is not None:
2537
+ pulumi.set(__self__, "codec", codec)
2538
+ if sample_rate_hertz is not None:
2539
+ pulumi.set(__self__, "sample_rate_hertz", sample_rate_hertz)
2540
+
2541
+ @property
2542
+ @pulumi.getter(name="bitrateBps")
2543
+ def bitrate_bps(self) -> pulumi.Input[int]:
2544
+ """
2545
+ Audio bitrate in bits per second.
2546
+ """
2547
+ return pulumi.get(self, "bitrate_bps")
2548
+
2549
+ @bitrate_bps.setter
2550
+ def bitrate_bps(self, value: pulumi.Input[int]):
2551
+ pulumi.set(self, "bitrate_bps", value)
2552
+
2553
+ @property
2554
+ @pulumi.getter(name="channelCount")
2555
+ def channel_count(self) -> Optional[pulumi.Input[int]]:
2556
+ """
2557
+ Number of audio channels. The default is `2`.
2558
+ """
2559
+ return pulumi.get(self, "channel_count")
2560
+
2561
+ @channel_count.setter
2562
+ def channel_count(self, value: Optional[pulumi.Input[int]]):
2563
+ pulumi.set(self, "channel_count", value)
2564
+
2565
+ @property
2566
+ @pulumi.getter(name="channelLayouts")
2567
+ def channel_layouts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2568
+ """
2569
+ A list of channel names specifying layout of the audio channels. The default is ["fl", "fr"].
2570
+ """
2571
+ return pulumi.get(self, "channel_layouts")
2572
+
2573
+ @channel_layouts.setter
2574
+ def channel_layouts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2575
+ pulumi.set(self, "channel_layouts", value)
2576
+
2577
+ @property
2578
+ @pulumi.getter
2579
+ def codec(self) -> Optional[pulumi.Input[str]]:
2580
+ """
2581
+ The codec for this audio stream. The default is `aac`.
2582
+ """
2583
+ return pulumi.get(self, "codec")
2584
+
2585
+ @codec.setter
2586
+ def codec(self, value: Optional[pulumi.Input[str]]):
2587
+ pulumi.set(self, "codec", value)
2588
+
2589
+ @property
2590
+ @pulumi.getter(name="sampleRateHertz")
2591
+ def sample_rate_hertz(self) -> Optional[pulumi.Input[int]]:
2592
+ """
2593
+ The audio sample rate in Hertz. The default is `48000`.
2594
+ """
2595
+ return pulumi.get(self, "sample_rate_hertz")
2596
+
2597
+ @sample_rate_hertz.setter
2598
+ def sample_rate_hertz(self, value: Optional[pulumi.Input[int]]):
2599
+ pulumi.set(self, "sample_rate_hertz", value)
2600
+
2601
+
2602
+ if not MYPY:
2603
+ class JobTemplateConfigElementaryStreamVideoStreamArgsDict(TypedDict):
2604
+ h264: NotRequired[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264ArgsDict']]
2605
+ """
2606
+ H264 codec settings
2607
+ Structure is documented below.
2608
+
2609
+
2610
+ <a name="nested_h264"></a>The `h264` block supports:
2611
+ """
2612
+ elif False:
2613
+ JobTemplateConfigElementaryStreamVideoStreamArgsDict: TypeAlias = Mapping[str, Any]
2614
+
2615
+ @pulumi.input_type
2616
+ class JobTemplateConfigElementaryStreamVideoStreamArgs:
2617
+ def __init__(__self__, *,
2618
+ h264: Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264Args']] = None):
2619
+ """
2620
+ :param pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264Args'] h264: H264 codec settings
2621
+ Structure is documented below.
2622
+
2623
+
2624
+ <a name="nested_h264"></a>The `h264` block supports:
2625
+ """
2626
+ if h264 is not None:
2627
+ pulumi.set(__self__, "h264", h264)
2628
+
2629
+ @property
2630
+ @pulumi.getter
2631
+ def h264(self) -> Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264Args']]:
2632
+ """
2633
+ H264 codec settings
2634
+ Structure is documented below.
2635
+
2636
+
2637
+ <a name="nested_h264"></a>The `h264` block supports:
2638
+ """
2639
+ return pulumi.get(self, "h264")
2640
+
2641
+ @h264.setter
2642
+ def h264(self, value: Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264Args']]):
2643
+ pulumi.set(self, "h264", value)
2644
+
2645
+
2646
+ if not MYPY:
2647
+ class JobTemplateConfigElementaryStreamVideoStreamH264ArgsDict(TypedDict):
2648
+ bitrate_bps: pulumi.Input[int]
2649
+ """
2650
+ The video bitrate in bits per second.
2651
+ """
2652
+ frame_rate: pulumi.Input[int]
2653
+ """
2654
+ The target video frame rate in frames per second (FPS).
2655
+ """
2656
+ crf_level: NotRequired[pulumi.Input[int]]
2657
+ """
2658
+ Target CRF level. The default is '21'.
2659
+ """
2660
+ entropy_coder: NotRequired[pulumi.Input[str]]
2661
+ """
2662
+ The entropy coder to use. The default is 'cabac'.
2663
+ """
2664
+ gop_duration: NotRequired[pulumi.Input[str]]
2665
+ """
2666
+ Select the GOP size based on the specified duration. The default is '3s'.
2667
+ """
2668
+ height_pixels: NotRequired[pulumi.Input[int]]
2669
+ """
2670
+ The height of the video in pixels.
2671
+ """
2672
+ hlg: NotRequired[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264HlgArgsDict']]
2673
+ """
2674
+ HLG color format setting for H264.
2675
+ """
2676
+ pixel_format: NotRequired[pulumi.Input[str]]
2677
+ """
2678
+ Pixel format to use. The default is 'yuv420p'.
2679
+ """
2680
+ preset: NotRequired[pulumi.Input[str]]
2681
+ """
2682
+ Enforces the specified codec preset. The default is 'veryfast'.
2683
+ """
2684
+ profile: NotRequired[pulumi.Input[str]]
2685
+ """
2686
+ Enforces the specified codec profile.
2687
+ """
2688
+ rate_control_mode: NotRequired[pulumi.Input[str]]
2689
+ """
2690
+ Specify the mode. The default is 'vbr'.
2691
+ """
2692
+ sdr: NotRequired[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264SdrArgsDict']]
2693
+ """
2694
+ SDR color format setting for H264.
2695
+ """
2696
+ vbv_fullness_bits: NotRequired[pulumi.Input[int]]
2697
+ """
2698
+ Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
2699
+ """
2700
+ vbv_size_bits: NotRequired[pulumi.Input[int]]
2701
+ """
2702
+ Size of the Video Buffering Verifier (VBV) buffer in bits.
2703
+ """
2704
+ width_pixels: NotRequired[pulumi.Input[int]]
2705
+ """
2706
+ The width of the video in pixels.
2707
+ """
2708
+ elif False:
2709
+ JobTemplateConfigElementaryStreamVideoStreamH264ArgsDict: TypeAlias = Mapping[str, Any]
2710
+
2711
+ @pulumi.input_type
2712
+ class JobTemplateConfigElementaryStreamVideoStreamH264Args:
2713
+ def __init__(__self__, *,
2714
+ bitrate_bps: pulumi.Input[int],
2715
+ frame_rate: pulumi.Input[int],
2716
+ crf_level: Optional[pulumi.Input[int]] = None,
2717
+ entropy_coder: Optional[pulumi.Input[str]] = None,
2718
+ gop_duration: Optional[pulumi.Input[str]] = None,
2719
+ height_pixels: Optional[pulumi.Input[int]] = None,
2720
+ hlg: Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264HlgArgs']] = None,
2721
+ pixel_format: Optional[pulumi.Input[str]] = None,
2722
+ preset: Optional[pulumi.Input[str]] = None,
2723
+ profile: Optional[pulumi.Input[str]] = None,
2724
+ rate_control_mode: Optional[pulumi.Input[str]] = None,
2725
+ sdr: Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264SdrArgs']] = None,
2726
+ vbv_fullness_bits: Optional[pulumi.Input[int]] = None,
2727
+ vbv_size_bits: Optional[pulumi.Input[int]] = None,
2728
+ width_pixels: Optional[pulumi.Input[int]] = None):
2729
+ """
2730
+ :param pulumi.Input[int] bitrate_bps: The video bitrate in bits per second.
2731
+ :param pulumi.Input[int] frame_rate: The target video frame rate in frames per second (FPS).
2732
+ :param pulumi.Input[int] crf_level: Target CRF level. The default is '21'.
2733
+ :param pulumi.Input[str] entropy_coder: The entropy coder to use. The default is 'cabac'.
2734
+ :param pulumi.Input[str] gop_duration: Select the GOP size based on the specified duration. The default is '3s'.
2735
+ :param pulumi.Input[int] height_pixels: The height of the video in pixels.
2736
+ :param pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264HlgArgs'] hlg: HLG color format setting for H264.
2737
+ :param pulumi.Input[str] pixel_format: Pixel format to use. The default is 'yuv420p'.
2738
+ :param pulumi.Input[str] preset: Enforces the specified codec preset. The default is 'veryfast'.
2739
+ :param pulumi.Input[str] profile: Enforces the specified codec profile.
2740
+ :param pulumi.Input[str] rate_control_mode: Specify the mode. The default is 'vbr'.
2741
+ :param pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264SdrArgs'] sdr: SDR color format setting for H264.
2742
+ :param pulumi.Input[int] vbv_fullness_bits: Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
2743
+ :param pulumi.Input[int] vbv_size_bits: Size of the Video Buffering Verifier (VBV) buffer in bits.
2744
+ :param pulumi.Input[int] width_pixels: The width of the video in pixels.
2745
+ """
2746
+ pulumi.set(__self__, "bitrate_bps", bitrate_bps)
2747
+ pulumi.set(__self__, "frame_rate", frame_rate)
2748
+ if crf_level is not None:
2749
+ pulumi.set(__self__, "crf_level", crf_level)
2750
+ if entropy_coder is not None:
2751
+ pulumi.set(__self__, "entropy_coder", entropy_coder)
2752
+ if gop_duration is not None:
2753
+ pulumi.set(__self__, "gop_duration", gop_duration)
2754
+ if height_pixels is not None:
2755
+ pulumi.set(__self__, "height_pixels", height_pixels)
2756
+ if hlg is not None:
2757
+ pulumi.set(__self__, "hlg", hlg)
2758
+ if pixel_format is not None:
2759
+ pulumi.set(__self__, "pixel_format", pixel_format)
2760
+ if preset is not None:
2761
+ pulumi.set(__self__, "preset", preset)
2762
+ if profile is not None:
2763
+ pulumi.set(__self__, "profile", profile)
2764
+ if rate_control_mode is not None:
2765
+ pulumi.set(__self__, "rate_control_mode", rate_control_mode)
2766
+ if sdr is not None:
2767
+ pulumi.set(__self__, "sdr", sdr)
2768
+ if vbv_fullness_bits is not None:
2769
+ pulumi.set(__self__, "vbv_fullness_bits", vbv_fullness_bits)
2770
+ if vbv_size_bits is not None:
2771
+ pulumi.set(__self__, "vbv_size_bits", vbv_size_bits)
2772
+ if width_pixels is not None:
2773
+ pulumi.set(__self__, "width_pixels", width_pixels)
2774
+
2775
+ @property
2776
+ @pulumi.getter(name="bitrateBps")
2777
+ def bitrate_bps(self) -> pulumi.Input[int]:
2778
+ """
2779
+ The video bitrate in bits per second.
2780
+ """
2781
+ return pulumi.get(self, "bitrate_bps")
2782
+
2783
+ @bitrate_bps.setter
2784
+ def bitrate_bps(self, value: pulumi.Input[int]):
2785
+ pulumi.set(self, "bitrate_bps", value)
2786
+
2787
+ @property
2788
+ @pulumi.getter(name="frameRate")
2789
+ def frame_rate(self) -> pulumi.Input[int]:
2790
+ """
2791
+ The target video frame rate in frames per second (FPS).
2792
+ """
2793
+ return pulumi.get(self, "frame_rate")
2794
+
2795
+ @frame_rate.setter
2796
+ def frame_rate(self, value: pulumi.Input[int]):
2797
+ pulumi.set(self, "frame_rate", value)
2798
+
2799
+ @property
2800
+ @pulumi.getter(name="crfLevel")
2801
+ def crf_level(self) -> Optional[pulumi.Input[int]]:
2802
+ """
2803
+ Target CRF level. The default is '21'.
2804
+ """
2805
+ return pulumi.get(self, "crf_level")
2806
+
2807
+ @crf_level.setter
2808
+ def crf_level(self, value: Optional[pulumi.Input[int]]):
2809
+ pulumi.set(self, "crf_level", value)
2810
+
2811
+ @property
2812
+ @pulumi.getter(name="entropyCoder")
2813
+ def entropy_coder(self) -> Optional[pulumi.Input[str]]:
2814
+ """
2815
+ The entropy coder to use. The default is 'cabac'.
2816
+ """
2817
+ return pulumi.get(self, "entropy_coder")
2818
+
2819
+ @entropy_coder.setter
2820
+ def entropy_coder(self, value: Optional[pulumi.Input[str]]):
2821
+ pulumi.set(self, "entropy_coder", value)
2822
+
2823
+ @property
2824
+ @pulumi.getter(name="gopDuration")
2825
+ def gop_duration(self) -> Optional[pulumi.Input[str]]:
2826
+ """
2827
+ Select the GOP size based on the specified duration. The default is '3s'.
2828
+ """
2829
+ return pulumi.get(self, "gop_duration")
2830
+
2831
+ @gop_duration.setter
2832
+ def gop_duration(self, value: Optional[pulumi.Input[str]]):
2833
+ pulumi.set(self, "gop_duration", value)
2834
+
2835
+ @property
2836
+ @pulumi.getter(name="heightPixels")
2837
+ def height_pixels(self) -> Optional[pulumi.Input[int]]:
2838
+ """
2839
+ The height of the video in pixels.
2840
+ """
2841
+ return pulumi.get(self, "height_pixels")
2842
+
2843
+ @height_pixels.setter
2844
+ def height_pixels(self, value: Optional[pulumi.Input[int]]):
2845
+ pulumi.set(self, "height_pixels", value)
2846
+
2847
+ @property
2848
+ @pulumi.getter
2849
+ def hlg(self) -> Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264HlgArgs']]:
2850
+ """
2851
+ HLG color format setting for H264.
2852
+ """
2853
+ return pulumi.get(self, "hlg")
2854
+
2855
+ @hlg.setter
2856
+ def hlg(self, value: Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264HlgArgs']]):
2857
+ pulumi.set(self, "hlg", value)
2858
+
2859
+ @property
2860
+ @pulumi.getter(name="pixelFormat")
2861
+ def pixel_format(self) -> Optional[pulumi.Input[str]]:
2862
+ """
2863
+ Pixel format to use. The default is 'yuv420p'.
2864
+ """
2865
+ return pulumi.get(self, "pixel_format")
2866
+
2867
+ @pixel_format.setter
2868
+ def pixel_format(self, value: Optional[pulumi.Input[str]]):
2869
+ pulumi.set(self, "pixel_format", value)
2870
+
2871
+ @property
2872
+ @pulumi.getter
2873
+ def preset(self) -> Optional[pulumi.Input[str]]:
2874
+ """
2875
+ Enforces the specified codec preset. The default is 'veryfast'.
2876
+ """
2877
+ return pulumi.get(self, "preset")
2878
+
2879
+ @preset.setter
2880
+ def preset(self, value: Optional[pulumi.Input[str]]):
2881
+ pulumi.set(self, "preset", value)
2882
+
2883
+ @property
2884
+ @pulumi.getter
2885
+ def profile(self) -> Optional[pulumi.Input[str]]:
2886
+ """
2887
+ Enforces the specified codec profile.
2888
+ """
2889
+ return pulumi.get(self, "profile")
2890
+
2891
+ @profile.setter
2892
+ def profile(self, value: Optional[pulumi.Input[str]]):
2893
+ pulumi.set(self, "profile", value)
2894
+
2895
+ @property
2896
+ @pulumi.getter(name="rateControlMode")
2897
+ def rate_control_mode(self) -> Optional[pulumi.Input[str]]:
2898
+ """
2899
+ Specify the mode. The default is 'vbr'.
2900
+ """
2901
+ return pulumi.get(self, "rate_control_mode")
2902
+
2903
+ @rate_control_mode.setter
2904
+ def rate_control_mode(self, value: Optional[pulumi.Input[str]]):
2905
+ pulumi.set(self, "rate_control_mode", value)
2906
+
2907
+ @property
2908
+ @pulumi.getter
2909
+ def sdr(self) -> Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264SdrArgs']]:
2910
+ """
2911
+ SDR color format setting for H264.
2912
+ """
2913
+ return pulumi.get(self, "sdr")
2914
+
2915
+ @sdr.setter
2916
+ def sdr(self, value: Optional[pulumi.Input['JobTemplateConfigElementaryStreamVideoStreamH264SdrArgs']]):
2917
+ pulumi.set(self, "sdr", value)
2918
+
2919
+ @property
2920
+ @pulumi.getter(name="vbvFullnessBits")
2921
+ def vbv_fullness_bits(self) -> Optional[pulumi.Input[int]]:
2922
+ """
2923
+ Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
2924
+ """
2925
+ return pulumi.get(self, "vbv_fullness_bits")
2926
+
2927
+ @vbv_fullness_bits.setter
2928
+ def vbv_fullness_bits(self, value: Optional[pulumi.Input[int]]):
2929
+ pulumi.set(self, "vbv_fullness_bits", value)
2930
+
2931
+ @property
2932
+ @pulumi.getter(name="vbvSizeBits")
2933
+ def vbv_size_bits(self) -> Optional[pulumi.Input[int]]:
2934
+ """
2935
+ Size of the Video Buffering Verifier (VBV) buffer in bits.
2936
+ """
2937
+ return pulumi.get(self, "vbv_size_bits")
2938
+
2939
+ @vbv_size_bits.setter
2940
+ def vbv_size_bits(self, value: Optional[pulumi.Input[int]]):
2941
+ pulumi.set(self, "vbv_size_bits", value)
2942
+
2943
+ @property
2944
+ @pulumi.getter(name="widthPixels")
2945
+ def width_pixels(self) -> Optional[pulumi.Input[int]]:
2946
+ """
2947
+ The width of the video in pixels.
2948
+ """
2949
+ return pulumi.get(self, "width_pixels")
2950
+
2951
+ @width_pixels.setter
2952
+ def width_pixels(self, value: Optional[pulumi.Input[int]]):
2953
+ pulumi.set(self, "width_pixels", value)
2954
+
2955
+
2956
+ if not MYPY:
2957
+ class JobTemplateConfigElementaryStreamVideoStreamH264HlgArgsDict(TypedDict):
2958
+ pass
2959
+ elif False:
2960
+ JobTemplateConfigElementaryStreamVideoStreamH264HlgArgsDict: TypeAlias = Mapping[str, Any]
2961
+
2962
+ @pulumi.input_type
2963
+ class JobTemplateConfigElementaryStreamVideoStreamH264HlgArgs:
2964
+ def __init__(__self__):
2965
+ pass
2966
+
2967
+
2968
+ if not MYPY:
2969
+ class JobTemplateConfigElementaryStreamVideoStreamH264SdrArgsDict(TypedDict):
2970
+ pass
2971
+ elif False:
2972
+ JobTemplateConfigElementaryStreamVideoStreamH264SdrArgsDict: TypeAlias = Mapping[str, Any]
2973
+
2974
+ @pulumi.input_type
2975
+ class JobTemplateConfigElementaryStreamVideoStreamH264SdrArgs:
2976
+ def __init__(__self__):
2977
+ pass
2978
+
2979
+
2980
+ if not MYPY:
2981
+ class JobTemplateConfigEncryptionArgsDict(TypedDict):
2982
+ id: pulumi.Input[str]
2983
+ """
2984
+ Identifier for this set of encryption options.
2985
+ """
2986
+ aes128: NotRequired[pulumi.Input['JobTemplateConfigEncryptionAes128ArgsDict']]
2987
+ """
2988
+ Configuration for AES-128 encryption.
2989
+ """
2990
+ drm_systems: NotRequired[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsArgsDict']]
2991
+ """
2992
+ DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled.
2993
+ Structure is documented below.
2994
+ """
2995
+ mpeg_cenc: NotRequired[pulumi.Input['JobTemplateConfigEncryptionMpegCencArgsDict']]
2996
+ """
2997
+ Configuration for MPEG Common Encryption (MPEG-CENC).
2998
+ Structure is documented below.
2999
+ """
3000
+ sample_aes: NotRequired[pulumi.Input['JobTemplateConfigEncryptionSampleAesArgsDict']]
3001
+ """
3002
+ Configuration for SAMPLE-AES encryption.
3003
+ """
3004
+ secret_manager_key_source: NotRequired[pulumi.Input['JobTemplateConfigEncryptionSecretManagerKeySourceArgsDict']]
3005
+ """
3006
+ Configuration for secrets stored in Google Secret Manager.
3007
+ Structure is documented below.
3008
+ """
3009
+ elif False:
3010
+ JobTemplateConfigEncryptionArgsDict: TypeAlias = Mapping[str, Any]
3011
+
3012
+ @pulumi.input_type
3013
+ class JobTemplateConfigEncryptionArgs:
3014
+ def __init__(__self__, *,
3015
+ id: pulumi.Input[str],
3016
+ aes128: Optional[pulumi.Input['JobTemplateConfigEncryptionAes128Args']] = None,
3017
+ drm_systems: Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsArgs']] = None,
3018
+ mpeg_cenc: Optional[pulumi.Input['JobTemplateConfigEncryptionMpegCencArgs']] = None,
3019
+ sample_aes: Optional[pulumi.Input['JobTemplateConfigEncryptionSampleAesArgs']] = None,
3020
+ secret_manager_key_source: Optional[pulumi.Input['JobTemplateConfigEncryptionSecretManagerKeySourceArgs']] = None):
3021
+ """
3022
+ :param pulumi.Input[str] id: Identifier for this set of encryption options.
3023
+ :param pulumi.Input['JobTemplateConfigEncryptionAes128Args'] aes128: Configuration for AES-128 encryption.
3024
+ :param pulumi.Input['JobTemplateConfigEncryptionDrmSystemsArgs'] drm_systems: DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled.
3025
+ Structure is documented below.
3026
+ :param pulumi.Input['JobTemplateConfigEncryptionMpegCencArgs'] mpeg_cenc: Configuration for MPEG Common Encryption (MPEG-CENC).
3027
+ Structure is documented below.
3028
+ :param pulumi.Input['JobTemplateConfigEncryptionSampleAesArgs'] sample_aes: Configuration for SAMPLE-AES encryption.
3029
+ :param pulumi.Input['JobTemplateConfigEncryptionSecretManagerKeySourceArgs'] secret_manager_key_source: Configuration for secrets stored in Google Secret Manager.
3030
+ Structure is documented below.
3031
+ """
3032
+ pulumi.set(__self__, "id", id)
3033
+ if aes128 is not None:
3034
+ pulumi.set(__self__, "aes128", aes128)
3035
+ if drm_systems is not None:
3036
+ pulumi.set(__self__, "drm_systems", drm_systems)
3037
+ if mpeg_cenc is not None:
3038
+ pulumi.set(__self__, "mpeg_cenc", mpeg_cenc)
3039
+ if sample_aes is not None:
3040
+ pulumi.set(__self__, "sample_aes", sample_aes)
3041
+ if secret_manager_key_source is not None:
3042
+ pulumi.set(__self__, "secret_manager_key_source", secret_manager_key_source)
3043
+
3044
+ @property
3045
+ @pulumi.getter
3046
+ def id(self) -> pulumi.Input[str]:
3047
+ """
3048
+ Identifier for this set of encryption options.
3049
+ """
3050
+ return pulumi.get(self, "id")
3051
+
3052
+ @id.setter
3053
+ def id(self, value: pulumi.Input[str]):
3054
+ pulumi.set(self, "id", value)
3055
+
3056
+ @property
3057
+ @pulumi.getter
3058
+ def aes128(self) -> Optional[pulumi.Input['JobTemplateConfigEncryptionAes128Args']]:
3059
+ """
3060
+ Configuration for AES-128 encryption.
3061
+ """
3062
+ return pulumi.get(self, "aes128")
3063
+
3064
+ @aes128.setter
3065
+ def aes128(self, value: Optional[pulumi.Input['JobTemplateConfigEncryptionAes128Args']]):
3066
+ pulumi.set(self, "aes128", value)
3067
+
3068
+ @property
3069
+ @pulumi.getter(name="drmSystems")
3070
+ def drm_systems(self) -> Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsArgs']]:
3071
+ """
3072
+ DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled.
3073
+ Structure is documented below.
3074
+ """
3075
+ return pulumi.get(self, "drm_systems")
3076
+
3077
+ @drm_systems.setter
3078
+ def drm_systems(self, value: Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsArgs']]):
3079
+ pulumi.set(self, "drm_systems", value)
3080
+
3081
+ @property
3082
+ @pulumi.getter(name="mpegCenc")
3083
+ def mpeg_cenc(self) -> Optional[pulumi.Input['JobTemplateConfigEncryptionMpegCencArgs']]:
3084
+ """
3085
+ Configuration for MPEG Common Encryption (MPEG-CENC).
3086
+ Structure is documented below.
3087
+ """
3088
+ return pulumi.get(self, "mpeg_cenc")
3089
+
3090
+ @mpeg_cenc.setter
3091
+ def mpeg_cenc(self, value: Optional[pulumi.Input['JobTemplateConfigEncryptionMpegCencArgs']]):
3092
+ pulumi.set(self, "mpeg_cenc", value)
3093
+
3094
+ @property
3095
+ @pulumi.getter(name="sampleAes")
3096
+ def sample_aes(self) -> Optional[pulumi.Input['JobTemplateConfigEncryptionSampleAesArgs']]:
3097
+ """
3098
+ Configuration for SAMPLE-AES encryption.
3099
+ """
3100
+ return pulumi.get(self, "sample_aes")
3101
+
3102
+ @sample_aes.setter
3103
+ def sample_aes(self, value: Optional[pulumi.Input['JobTemplateConfigEncryptionSampleAesArgs']]):
3104
+ pulumi.set(self, "sample_aes", value)
3105
+
3106
+ @property
3107
+ @pulumi.getter(name="secretManagerKeySource")
3108
+ def secret_manager_key_source(self) -> Optional[pulumi.Input['JobTemplateConfigEncryptionSecretManagerKeySourceArgs']]:
3109
+ """
3110
+ Configuration for secrets stored in Google Secret Manager.
3111
+ Structure is documented below.
3112
+ """
3113
+ return pulumi.get(self, "secret_manager_key_source")
3114
+
3115
+ @secret_manager_key_source.setter
3116
+ def secret_manager_key_source(self, value: Optional[pulumi.Input['JobTemplateConfigEncryptionSecretManagerKeySourceArgs']]):
3117
+ pulumi.set(self, "secret_manager_key_source", value)
3118
+
3119
+
3120
+ if not MYPY:
3121
+ class JobTemplateConfigEncryptionAes128ArgsDict(TypedDict):
3122
+ pass
3123
+ elif False:
3124
+ JobTemplateConfigEncryptionAes128ArgsDict: TypeAlias = Mapping[str, Any]
3125
+
3126
+ @pulumi.input_type
3127
+ class JobTemplateConfigEncryptionAes128Args:
3128
+ def __init__(__self__):
3129
+ pass
3130
+
3131
+
3132
+ if not MYPY:
3133
+ class JobTemplateConfigEncryptionDrmSystemsArgsDict(TypedDict):
3134
+ clearkey: NotRequired[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsClearkeyArgsDict']]
3135
+ """
3136
+ Clearkey configuration.
3137
+ """
3138
+ fairplay: NotRequired[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsFairplayArgsDict']]
3139
+ """
3140
+ Fairplay configuration.
3141
+ """
3142
+ playready: NotRequired[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsPlayreadyArgsDict']]
3143
+ """
3144
+ Playready configuration.
3145
+ """
3146
+ widevine: NotRequired[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsWidevineArgsDict']]
3147
+ """
3148
+ Widevine configuration.
3149
+ """
3150
+ elif False:
3151
+ JobTemplateConfigEncryptionDrmSystemsArgsDict: TypeAlias = Mapping[str, Any]
3152
+
3153
+ @pulumi.input_type
3154
+ class JobTemplateConfigEncryptionDrmSystemsArgs:
3155
+ def __init__(__self__, *,
3156
+ clearkey: Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsClearkeyArgs']] = None,
3157
+ fairplay: Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsFairplayArgs']] = None,
3158
+ playready: Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsPlayreadyArgs']] = None,
3159
+ widevine: Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsWidevineArgs']] = None):
3160
+ """
3161
+ :param pulumi.Input['JobTemplateConfigEncryptionDrmSystemsClearkeyArgs'] clearkey: Clearkey configuration.
3162
+ :param pulumi.Input['JobTemplateConfigEncryptionDrmSystemsFairplayArgs'] fairplay: Fairplay configuration.
3163
+ :param pulumi.Input['JobTemplateConfigEncryptionDrmSystemsPlayreadyArgs'] playready: Playready configuration.
3164
+ :param pulumi.Input['JobTemplateConfigEncryptionDrmSystemsWidevineArgs'] widevine: Widevine configuration.
3165
+ """
3166
+ if clearkey is not None:
3167
+ pulumi.set(__self__, "clearkey", clearkey)
3168
+ if fairplay is not None:
3169
+ pulumi.set(__self__, "fairplay", fairplay)
3170
+ if playready is not None:
3171
+ pulumi.set(__self__, "playready", playready)
3172
+ if widevine is not None:
3173
+ pulumi.set(__self__, "widevine", widevine)
3174
+
3175
+ @property
3176
+ @pulumi.getter
3177
+ def clearkey(self) -> Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsClearkeyArgs']]:
3178
+ """
3179
+ Clearkey configuration.
3180
+ """
3181
+ return pulumi.get(self, "clearkey")
3182
+
3183
+ @clearkey.setter
3184
+ def clearkey(self, value: Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsClearkeyArgs']]):
3185
+ pulumi.set(self, "clearkey", value)
3186
+
3187
+ @property
3188
+ @pulumi.getter
3189
+ def fairplay(self) -> Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsFairplayArgs']]:
3190
+ """
3191
+ Fairplay configuration.
3192
+ """
3193
+ return pulumi.get(self, "fairplay")
3194
+
3195
+ @fairplay.setter
3196
+ def fairplay(self, value: Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsFairplayArgs']]):
3197
+ pulumi.set(self, "fairplay", value)
3198
+
3199
+ @property
3200
+ @pulumi.getter
3201
+ def playready(self) -> Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsPlayreadyArgs']]:
3202
+ """
3203
+ Playready configuration.
3204
+ """
3205
+ return pulumi.get(self, "playready")
3206
+
3207
+ @playready.setter
3208
+ def playready(self, value: Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsPlayreadyArgs']]):
3209
+ pulumi.set(self, "playready", value)
3210
+
3211
+ @property
3212
+ @pulumi.getter
3213
+ def widevine(self) -> Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsWidevineArgs']]:
3214
+ """
3215
+ Widevine configuration.
3216
+ """
3217
+ return pulumi.get(self, "widevine")
3218
+
3219
+ @widevine.setter
3220
+ def widevine(self, value: Optional[pulumi.Input['JobTemplateConfigEncryptionDrmSystemsWidevineArgs']]):
3221
+ pulumi.set(self, "widevine", value)
3222
+
3223
+
3224
+ if not MYPY:
3225
+ class JobTemplateConfigEncryptionDrmSystemsClearkeyArgsDict(TypedDict):
3226
+ pass
3227
+ elif False:
3228
+ JobTemplateConfigEncryptionDrmSystemsClearkeyArgsDict: TypeAlias = Mapping[str, Any]
3229
+
3230
+ @pulumi.input_type
3231
+ class JobTemplateConfigEncryptionDrmSystemsClearkeyArgs:
3232
+ def __init__(__self__):
3233
+ pass
3234
+
3235
+
3236
+ if not MYPY:
3237
+ class JobTemplateConfigEncryptionDrmSystemsFairplayArgsDict(TypedDict):
3238
+ pass
3239
+ elif False:
3240
+ JobTemplateConfigEncryptionDrmSystemsFairplayArgsDict: TypeAlias = Mapping[str, Any]
3241
+
3242
+ @pulumi.input_type
3243
+ class JobTemplateConfigEncryptionDrmSystemsFairplayArgs:
3244
+ def __init__(__self__):
3245
+ pass
3246
+
3247
+
3248
+ if not MYPY:
3249
+ class JobTemplateConfigEncryptionDrmSystemsPlayreadyArgsDict(TypedDict):
3250
+ pass
3251
+ elif False:
3252
+ JobTemplateConfigEncryptionDrmSystemsPlayreadyArgsDict: TypeAlias = Mapping[str, Any]
3253
+
3254
+ @pulumi.input_type
3255
+ class JobTemplateConfigEncryptionDrmSystemsPlayreadyArgs:
3256
+ def __init__(__self__):
3257
+ pass
3258
+
3259
+
3260
+ if not MYPY:
3261
+ class JobTemplateConfigEncryptionDrmSystemsWidevineArgsDict(TypedDict):
3262
+ pass
3263
+ elif False:
3264
+ JobTemplateConfigEncryptionDrmSystemsWidevineArgsDict: TypeAlias = Mapping[str, Any]
3265
+
3266
+ @pulumi.input_type
3267
+ class JobTemplateConfigEncryptionDrmSystemsWidevineArgs:
3268
+ def __init__(__self__):
3269
+ pass
3270
+
3271
+
3272
+ if not MYPY:
3273
+ class JobTemplateConfigEncryptionMpegCencArgsDict(TypedDict):
3274
+ scheme: pulumi.Input[str]
3275
+ """
3276
+ Specify the encryption scheme.
3277
+ """
3278
+ elif False:
3279
+ JobTemplateConfigEncryptionMpegCencArgsDict: TypeAlias = Mapping[str, Any]
3280
+
3281
+ @pulumi.input_type
3282
+ class JobTemplateConfigEncryptionMpegCencArgs:
3283
+ def __init__(__self__, *,
3284
+ scheme: pulumi.Input[str]):
3285
+ """
3286
+ :param pulumi.Input[str] scheme: Specify the encryption scheme.
3287
+ """
3288
+ pulumi.set(__self__, "scheme", scheme)
3289
+
3290
+ @property
3291
+ @pulumi.getter
3292
+ def scheme(self) -> pulumi.Input[str]:
3293
+ """
3294
+ Specify the encryption scheme.
3295
+ """
3296
+ return pulumi.get(self, "scheme")
3297
+
3298
+ @scheme.setter
3299
+ def scheme(self, value: pulumi.Input[str]):
3300
+ pulumi.set(self, "scheme", value)
3301
+
3302
+
3303
+ if not MYPY:
3304
+ class JobTemplateConfigEncryptionSampleAesArgsDict(TypedDict):
3305
+ pass
3306
+ elif False:
3307
+ JobTemplateConfigEncryptionSampleAesArgsDict: TypeAlias = Mapping[str, Any]
3308
+
3309
+ @pulumi.input_type
3310
+ class JobTemplateConfigEncryptionSampleAesArgs:
3311
+ def __init__(__self__):
3312
+ pass
3313
+
3314
+
3315
+ if not MYPY:
3316
+ class JobTemplateConfigEncryptionSecretManagerKeySourceArgsDict(TypedDict):
3317
+ secret_version: pulumi.Input[str]
3318
+ """
3319
+ The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
3320
+ """
3321
+ elif False:
3322
+ JobTemplateConfigEncryptionSecretManagerKeySourceArgsDict: TypeAlias = Mapping[str, Any]
3323
+
3324
+ @pulumi.input_type
3325
+ class JobTemplateConfigEncryptionSecretManagerKeySourceArgs:
3326
+ def __init__(__self__, *,
3327
+ secret_version: pulumi.Input[str]):
3328
+ """
3329
+ :param pulumi.Input[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}.
3330
+ """
3331
+ pulumi.set(__self__, "secret_version", secret_version)
3332
+
3333
+ @property
3334
+ @pulumi.getter(name="secretVersion")
3335
+ def secret_version(self) -> pulumi.Input[str]:
3336
+ """
3337
+ The name of the Secret Version containing the encryption key in the following format: projects/{project}/secrets/{secret_id}/versions/{version_number}.
3338
+ """
3339
+ return pulumi.get(self, "secret_version")
3340
+
3341
+ @secret_version.setter
3342
+ def secret_version(self, value: pulumi.Input[str]):
3343
+ pulumi.set(self, "secret_version", value)
3344
+
3345
+
3346
+ if not MYPY:
3347
+ class JobTemplateConfigInputArgsDict(TypedDict):
3348
+ key: NotRequired[pulumi.Input[str]]
3349
+ """
3350
+ A unique key for this input. Must be specified when using advanced mapping and edit lists.
3351
+ """
3352
+ uri: NotRequired[pulumi.Input[str]]
3353
+ """
3354
+ 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).
3355
+ If empty, the value is populated from Job.input_uri.
3356
+ """
3357
+ elif False:
3358
+ JobTemplateConfigInputArgsDict: TypeAlias = Mapping[str, Any]
3359
+
3360
+ @pulumi.input_type
3361
+ class JobTemplateConfigInputArgs:
3362
+ def __init__(__self__, *,
3363
+ key: Optional[pulumi.Input[str]] = None,
3364
+ uri: Optional[pulumi.Input[str]] = None):
3365
+ """
3366
+ :param pulumi.Input[str] key: A unique key for this input. Must be specified when using advanced mapping and edit lists.
3367
+ :param pulumi.Input[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).
3368
+ If empty, the value is populated from Job.input_uri.
3369
+ """
3370
+ if key is not None:
3371
+ pulumi.set(__self__, "key", key)
3372
+ if uri is not None:
3373
+ pulumi.set(__self__, "uri", uri)
3374
+
3375
+ @property
3376
+ @pulumi.getter
3377
+ def key(self) -> Optional[pulumi.Input[str]]:
3378
+ """
3379
+ A unique key for this input. Must be specified when using advanced mapping and edit lists.
3380
+ """
3381
+ return pulumi.get(self, "key")
3382
+
3383
+ @key.setter
3384
+ def key(self, value: Optional[pulumi.Input[str]]):
3385
+ pulumi.set(self, "key", value)
3386
+
3387
+ @property
3388
+ @pulumi.getter
3389
+ def uri(self) -> Optional[pulumi.Input[str]]:
3390
+ """
3391
+ 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).
3392
+ If empty, the value is populated from Job.input_uri.
3393
+ """
3394
+ return pulumi.get(self, "uri")
3395
+
3396
+ @uri.setter
3397
+ def uri(self, value: Optional[pulumi.Input[str]]):
3398
+ pulumi.set(self, "uri", value)
3399
+
3400
+
3401
+ if not MYPY:
3402
+ class JobTemplateConfigManifestArgsDict(TypedDict):
3403
+ file_name: NotRequired[pulumi.Input[str]]
3404
+ """
3405
+ The name of the generated file. The default is `manifest`.
3406
+ """
3407
+ mux_streams: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
3408
+ """
3409
+ List of user supplied MuxStream.key values that should appear in this manifest.
3410
+ """
3411
+ type: NotRequired[pulumi.Input[str]]
3412
+ """
3413
+ Type of the manifest.
3414
+ Possible values are: `MANIFEST_TYPE_UNSPECIFIED`, `HLS`, `DASH`.
3415
+ """
3416
+ elif False:
3417
+ JobTemplateConfigManifestArgsDict: TypeAlias = Mapping[str, Any]
3418
+
3419
+ @pulumi.input_type
3420
+ class JobTemplateConfigManifestArgs:
3421
+ def __init__(__self__, *,
3422
+ file_name: Optional[pulumi.Input[str]] = None,
3423
+ mux_streams: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3424
+ type: Optional[pulumi.Input[str]] = None):
3425
+ """
3426
+ :param pulumi.Input[str] file_name: The name of the generated file. The default is `manifest`.
3427
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] mux_streams: List of user supplied MuxStream.key values that should appear in this manifest.
3428
+ :param pulumi.Input[str] type: Type of the manifest.
3429
+ Possible values are: `MANIFEST_TYPE_UNSPECIFIED`, `HLS`, `DASH`.
3430
+ """
3431
+ if file_name is not None:
3432
+ pulumi.set(__self__, "file_name", file_name)
3433
+ if mux_streams is not None:
3434
+ pulumi.set(__self__, "mux_streams", mux_streams)
3435
+ if type is not None:
3436
+ pulumi.set(__self__, "type", type)
3437
+
3438
+ @property
3439
+ @pulumi.getter(name="fileName")
3440
+ def file_name(self) -> Optional[pulumi.Input[str]]:
3441
+ """
3442
+ The name of the generated file. The default is `manifest`.
3443
+ """
3444
+ return pulumi.get(self, "file_name")
3445
+
3446
+ @file_name.setter
3447
+ def file_name(self, value: Optional[pulumi.Input[str]]):
3448
+ pulumi.set(self, "file_name", value)
3449
+
3450
+ @property
3451
+ @pulumi.getter(name="muxStreams")
3452
+ def mux_streams(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
3453
+ """
3454
+ List of user supplied MuxStream.key values that should appear in this manifest.
3455
+ """
3456
+ return pulumi.get(self, "mux_streams")
3457
+
3458
+ @mux_streams.setter
3459
+ def mux_streams(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
3460
+ pulumi.set(self, "mux_streams", value)
3461
+
3462
+ @property
3463
+ @pulumi.getter
3464
+ def type(self) -> Optional[pulumi.Input[str]]:
3465
+ """
3466
+ Type of the manifest.
3467
+ Possible values are: `MANIFEST_TYPE_UNSPECIFIED`, `HLS`, `DASH`.
3468
+ """
3469
+ return pulumi.get(self, "type")
3470
+
3471
+ @type.setter
3472
+ def type(self, value: Optional[pulumi.Input[str]]):
3473
+ pulumi.set(self, "type", value)
3474
+
3475
+
3476
+ if not MYPY:
3477
+ class JobTemplateConfigMuxStreamArgsDict(TypedDict):
3478
+ container: NotRequired[pulumi.Input[str]]
3479
+ """
3480
+ The container format. The default is `mp4`.
3481
+ """
3482
+ elementary_streams: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
3483
+ """
3484
+ List of ElementaryStream.key values multiplexed in this stream.
3485
+ """
3486
+ encryption_id: NotRequired[pulumi.Input[str]]
3487
+ """
3488
+ Identifier of the encryption configuration to use.
3489
+ """
3490
+ file_name: NotRequired[pulumi.Input[str]]
3491
+ """
3492
+ The name of the generated file.
3493
+ """
3494
+ key: NotRequired[pulumi.Input[str]]
3495
+ """
3496
+ A unique key for this multiplexed stream.
3497
+ """
3498
+ segment_settings: NotRequired[pulumi.Input['JobTemplateConfigMuxStreamSegmentSettingsArgsDict']]
3499
+ """
3500
+ Segment settings for ts, fmp4 and vtt.
3501
+ Structure is documented below.
3502
+ """
3503
+ elif False:
3504
+ JobTemplateConfigMuxStreamArgsDict: TypeAlias = Mapping[str, Any]
3505
+
3506
+ @pulumi.input_type
3507
+ class JobTemplateConfigMuxStreamArgs:
3508
+ def __init__(__self__, *,
3509
+ container: Optional[pulumi.Input[str]] = None,
3510
+ elementary_streams: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3511
+ encryption_id: Optional[pulumi.Input[str]] = None,
3512
+ file_name: Optional[pulumi.Input[str]] = None,
3513
+ key: Optional[pulumi.Input[str]] = None,
3514
+ segment_settings: Optional[pulumi.Input['JobTemplateConfigMuxStreamSegmentSettingsArgs']] = None):
3515
+ """
3516
+ :param pulumi.Input[str] container: The container format. The default is `mp4`.
3517
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] elementary_streams: List of ElementaryStream.key values multiplexed in this stream.
3518
+ :param pulumi.Input[str] encryption_id: Identifier of the encryption configuration to use.
3519
+ :param pulumi.Input[str] file_name: The name of the generated file.
3520
+ :param pulumi.Input[str] key: A unique key for this multiplexed stream.
3521
+ :param pulumi.Input['JobTemplateConfigMuxStreamSegmentSettingsArgs'] segment_settings: Segment settings for ts, fmp4 and vtt.
3522
+ Structure is documented below.
3523
+ """
3524
+ if container is not None:
3525
+ pulumi.set(__self__, "container", container)
3526
+ if elementary_streams is not None:
3527
+ pulumi.set(__self__, "elementary_streams", elementary_streams)
3528
+ if encryption_id is not None:
3529
+ pulumi.set(__self__, "encryption_id", encryption_id)
3530
+ if file_name is not None:
3531
+ pulumi.set(__self__, "file_name", file_name)
3532
+ if key is not None:
3533
+ pulumi.set(__self__, "key", key)
3534
+ if segment_settings is not None:
3535
+ pulumi.set(__self__, "segment_settings", segment_settings)
3536
+
3537
+ @property
3538
+ @pulumi.getter
3539
+ def container(self) -> Optional[pulumi.Input[str]]:
3540
+ """
3541
+ The container format. The default is `mp4`.
3542
+ """
3543
+ return pulumi.get(self, "container")
3544
+
3545
+ @container.setter
3546
+ def container(self, value: Optional[pulumi.Input[str]]):
3547
+ pulumi.set(self, "container", value)
3548
+
3549
+ @property
3550
+ @pulumi.getter(name="elementaryStreams")
3551
+ def elementary_streams(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
3552
+ """
3553
+ List of ElementaryStream.key values multiplexed in this stream.
3554
+ """
3555
+ return pulumi.get(self, "elementary_streams")
3556
+
3557
+ @elementary_streams.setter
3558
+ def elementary_streams(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
3559
+ pulumi.set(self, "elementary_streams", value)
3560
+
3561
+ @property
3562
+ @pulumi.getter(name="encryptionId")
3563
+ def encryption_id(self) -> Optional[pulumi.Input[str]]:
3564
+ """
3565
+ Identifier of the encryption configuration to use.
3566
+ """
3567
+ return pulumi.get(self, "encryption_id")
3568
+
3569
+ @encryption_id.setter
3570
+ def encryption_id(self, value: Optional[pulumi.Input[str]]):
3571
+ pulumi.set(self, "encryption_id", value)
3572
+
3573
+ @property
3574
+ @pulumi.getter(name="fileName")
3575
+ def file_name(self) -> Optional[pulumi.Input[str]]:
3576
+ """
3577
+ The name of the generated file.
3578
+ """
3579
+ return pulumi.get(self, "file_name")
3580
+
3581
+ @file_name.setter
3582
+ def file_name(self, value: Optional[pulumi.Input[str]]):
3583
+ pulumi.set(self, "file_name", value)
3584
+
3585
+ @property
3586
+ @pulumi.getter
3587
+ def key(self) -> Optional[pulumi.Input[str]]:
3588
+ """
3589
+ A unique key for this multiplexed stream.
3590
+ """
3591
+ return pulumi.get(self, "key")
3592
+
3593
+ @key.setter
3594
+ def key(self, value: Optional[pulumi.Input[str]]):
3595
+ pulumi.set(self, "key", value)
3596
+
3597
+ @property
3598
+ @pulumi.getter(name="segmentSettings")
3599
+ def segment_settings(self) -> Optional[pulumi.Input['JobTemplateConfigMuxStreamSegmentSettingsArgs']]:
3600
+ """
3601
+ Segment settings for ts, fmp4 and vtt.
3602
+ Structure is documented below.
3603
+ """
3604
+ return pulumi.get(self, "segment_settings")
3605
+
3606
+ @segment_settings.setter
3607
+ def segment_settings(self, value: Optional[pulumi.Input['JobTemplateConfigMuxStreamSegmentSettingsArgs']]):
3608
+ pulumi.set(self, "segment_settings", value)
3609
+
3610
+
3611
+ if not MYPY:
3612
+ class JobTemplateConfigMuxStreamSegmentSettingsArgsDict(TypedDict):
3613
+ segment_duration: NotRequired[pulumi.Input[str]]
3614
+ """
3615
+ Duration of the segments in seconds. The default is `6.0s`.
3616
+ """
3617
+ elif False:
3618
+ JobTemplateConfigMuxStreamSegmentSettingsArgsDict: TypeAlias = Mapping[str, Any]
3619
+
3620
+ @pulumi.input_type
3621
+ class JobTemplateConfigMuxStreamSegmentSettingsArgs:
3622
+ def __init__(__self__, *,
3623
+ segment_duration: Optional[pulumi.Input[str]] = None):
3624
+ """
3625
+ :param pulumi.Input[str] segment_duration: Duration of the segments in seconds. The default is `6.0s`.
3626
+ """
3627
+ if segment_duration is not None:
3628
+ pulumi.set(__self__, "segment_duration", segment_duration)
3629
+
3630
+ @property
3631
+ @pulumi.getter(name="segmentDuration")
3632
+ def segment_duration(self) -> Optional[pulumi.Input[str]]:
3633
+ """
3634
+ Duration of the segments in seconds. The default is `6.0s`.
3635
+ """
3636
+ return pulumi.get(self, "segment_duration")
3637
+
3638
+ @segment_duration.setter
3639
+ def segment_duration(self, value: Optional[pulumi.Input[str]]):
3640
+ pulumi.set(self, "segment_duration", value)
3641
+
3642
+
3643
+ if not MYPY:
3644
+ class JobTemplateConfigOutputArgsDict(TypedDict):
3645
+ uri: NotRequired[pulumi.Input[str]]
3646
+ """
3647
+ URI for the output file(s). For example, gs://my-bucket/outputs/.
3648
+ """
3649
+ elif False:
3650
+ JobTemplateConfigOutputArgsDict: TypeAlias = Mapping[str, Any]
3651
+
3652
+ @pulumi.input_type
3653
+ class JobTemplateConfigOutputArgs:
3654
+ def __init__(__self__, *,
3655
+ uri: Optional[pulumi.Input[str]] = None):
3656
+ """
3657
+ :param pulumi.Input[str] uri: URI for the output file(s). For example, gs://my-bucket/outputs/.
3658
+ """
3659
+ if uri is not None:
3660
+ pulumi.set(__self__, "uri", uri)
3661
+
3662
+ @property
3663
+ @pulumi.getter
3664
+ def uri(self) -> Optional[pulumi.Input[str]]:
3665
+ """
3666
+ URI for the output file(s). For example, gs://my-bucket/outputs/.
3667
+ """
3668
+ return pulumi.get(self, "uri")
3669
+
3670
+ @uri.setter
3671
+ def uri(self, value: Optional[pulumi.Input[str]]):
3672
+ pulumi.set(self, "uri", value)
3673
+
3674
+
3675
+ if not MYPY:
3676
+ class JobTemplateConfigOverlayArgsDict(TypedDict):
3677
+ animations: NotRequired[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigOverlayAnimationArgsDict']]]]
3678
+ """
3679
+ List of animations. The list should be chronological, without any time overlap.
3680
+ Structure is documented below.
3681
+ """
3682
+ image: NotRequired[pulumi.Input['JobTemplateConfigOverlayImageArgsDict']]
3683
+ """
3684
+ Image overlay.
3685
+ Structure is documented below.
3686
+ """
3687
+ elif False:
3688
+ JobTemplateConfigOverlayArgsDict: TypeAlias = Mapping[str, Any]
3689
+
3690
+ @pulumi.input_type
3691
+ class JobTemplateConfigOverlayArgs:
3692
+ def __init__(__self__, *,
3693
+ animations: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigOverlayAnimationArgs']]]] = None,
3694
+ image: Optional[pulumi.Input['JobTemplateConfigOverlayImageArgs']] = None):
3695
+ """
3696
+ :param pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigOverlayAnimationArgs']]] animations: List of animations. The list should be chronological, without any time overlap.
3697
+ Structure is documented below.
3698
+ :param pulumi.Input['JobTemplateConfigOverlayImageArgs'] image: Image overlay.
3699
+ Structure is documented below.
3700
+ """
3701
+ if animations is not None:
3702
+ pulumi.set(__self__, "animations", animations)
3703
+ if image is not None:
3704
+ pulumi.set(__self__, "image", image)
3705
+
3706
+ @property
3707
+ @pulumi.getter
3708
+ def animations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigOverlayAnimationArgs']]]]:
3709
+ """
3710
+ List of animations. The list should be chronological, without any time overlap.
3711
+ Structure is documented below.
3712
+ """
3713
+ return pulumi.get(self, "animations")
3714
+
3715
+ @animations.setter
3716
+ def animations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['JobTemplateConfigOverlayAnimationArgs']]]]):
3717
+ pulumi.set(self, "animations", value)
3718
+
3719
+ @property
3720
+ @pulumi.getter
3721
+ def image(self) -> Optional[pulumi.Input['JobTemplateConfigOverlayImageArgs']]:
3722
+ """
3723
+ Image overlay.
3724
+ Structure is documented below.
3725
+ """
3726
+ return pulumi.get(self, "image")
3727
+
3728
+ @image.setter
3729
+ def image(self, value: Optional[pulumi.Input['JobTemplateConfigOverlayImageArgs']]):
3730
+ pulumi.set(self, "image", value)
3731
+
3732
+
3733
+ if not MYPY:
3734
+ class JobTemplateConfigOverlayAnimationArgsDict(TypedDict):
3735
+ animation_fade: NotRequired[pulumi.Input['JobTemplateConfigOverlayAnimationAnimationFadeArgsDict']]
3736
+ """
3737
+ Display overlay object with fade animation.
3738
+ Structure is documented below.
3739
+ """
3740
+ elif False:
3741
+ JobTemplateConfigOverlayAnimationArgsDict: TypeAlias = Mapping[str, Any]
3742
+
3743
+ @pulumi.input_type
3744
+ class JobTemplateConfigOverlayAnimationArgs:
3745
+ def __init__(__self__, *,
3746
+ animation_fade: Optional[pulumi.Input['JobTemplateConfigOverlayAnimationAnimationFadeArgs']] = None):
3747
+ """
3748
+ :param pulumi.Input['JobTemplateConfigOverlayAnimationAnimationFadeArgs'] animation_fade: Display overlay object with fade animation.
3749
+ Structure is documented below.
3750
+ """
3751
+ if animation_fade is not None:
3752
+ pulumi.set(__self__, "animation_fade", animation_fade)
3753
+
3754
+ @property
3755
+ @pulumi.getter(name="animationFade")
3756
+ def animation_fade(self) -> Optional[pulumi.Input['JobTemplateConfigOverlayAnimationAnimationFadeArgs']]:
3757
+ """
3758
+ Display overlay object with fade animation.
3759
+ Structure is documented below.
3760
+ """
3761
+ return pulumi.get(self, "animation_fade")
3762
+
3763
+ @animation_fade.setter
3764
+ def animation_fade(self, value: Optional[pulumi.Input['JobTemplateConfigOverlayAnimationAnimationFadeArgs']]):
3765
+ pulumi.set(self, "animation_fade", value)
3766
+
3767
+
3768
+ if not MYPY:
3769
+ class JobTemplateConfigOverlayAnimationAnimationFadeArgsDict(TypedDict):
3770
+ fade_type: pulumi.Input[str]
3771
+ """
3772
+ Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
3773
+ The possible values are:
3774
+ * `FADE_TYPE_UNSPECIFIED`: The fade type is not specified.
3775
+ * `FADE_IN`: Fade the overlay object into view.
3776
+ * `FADE_OUT`: Fade the overlay object out of view.
3777
+ Possible values are: `FADE_TYPE_UNSPECIFIED`, `FADE_IN`, `FADE_OUT`.
3778
+ """
3779
+ end_time_offset: NotRequired[pulumi.Input[str]]
3780
+ """
3781
+ The time to end the fade animation, in seconds.
3782
+ """
3783
+ start_time_offset: NotRequired[pulumi.Input[str]]
3784
+ """
3785
+ The time to start the fade animation, in seconds.
3786
+ """
3787
+ xy: NotRequired[pulumi.Input['JobTemplateConfigOverlayAnimationAnimationFadeXyArgsDict']]
3788
+ """
3789
+ Normalized coordinates based on output video resolution.
3790
+ Structure is documented below.
3791
+ """
3792
+ elif False:
3793
+ JobTemplateConfigOverlayAnimationAnimationFadeArgsDict: TypeAlias = Mapping[str, Any]
3794
+
3795
+ @pulumi.input_type
3796
+ class JobTemplateConfigOverlayAnimationAnimationFadeArgs:
3797
+ def __init__(__self__, *,
3798
+ fade_type: pulumi.Input[str],
3799
+ end_time_offset: Optional[pulumi.Input[str]] = None,
3800
+ start_time_offset: Optional[pulumi.Input[str]] = None,
3801
+ xy: Optional[pulumi.Input['JobTemplateConfigOverlayAnimationAnimationFadeXyArgs']] = None):
3802
+ """
3803
+ :param pulumi.Input[str] fade_type: Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
3804
+ The possible values are:
3805
+ * `FADE_TYPE_UNSPECIFIED`: The fade type is not specified.
3806
+ * `FADE_IN`: Fade the overlay object into view.
3807
+ * `FADE_OUT`: Fade the overlay object out of view.
3808
+ Possible values are: `FADE_TYPE_UNSPECIFIED`, `FADE_IN`, `FADE_OUT`.
3809
+ :param pulumi.Input[str] end_time_offset: The time to end the fade animation, in seconds.
3810
+ :param pulumi.Input[str] start_time_offset: The time to start the fade animation, in seconds.
3811
+ :param pulumi.Input['JobTemplateConfigOverlayAnimationAnimationFadeXyArgs'] xy: Normalized coordinates based on output video resolution.
3812
+ Structure is documented below.
3813
+ """
3814
+ pulumi.set(__self__, "fade_type", fade_type)
3815
+ if end_time_offset is not None:
3816
+ pulumi.set(__self__, "end_time_offset", end_time_offset)
3817
+ if start_time_offset is not None:
3818
+ pulumi.set(__self__, "start_time_offset", start_time_offset)
3819
+ if xy is not None:
3820
+ pulumi.set(__self__, "xy", xy)
3821
+
3822
+ @property
3823
+ @pulumi.getter(name="fadeType")
3824
+ def fade_type(self) -> pulumi.Input[str]:
3825
+ """
3826
+ Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
3827
+ The possible values are:
3828
+ * `FADE_TYPE_UNSPECIFIED`: The fade type is not specified.
3829
+ * `FADE_IN`: Fade the overlay object into view.
3830
+ * `FADE_OUT`: Fade the overlay object out of view.
3831
+ Possible values are: `FADE_TYPE_UNSPECIFIED`, `FADE_IN`, `FADE_OUT`.
3832
+ """
3833
+ return pulumi.get(self, "fade_type")
3834
+
3835
+ @fade_type.setter
3836
+ def fade_type(self, value: pulumi.Input[str]):
3837
+ pulumi.set(self, "fade_type", value)
3838
+
3839
+ @property
3840
+ @pulumi.getter(name="endTimeOffset")
3841
+ def end_time_offset(self) -> Optional[pulumi.Input[str]]:
3842
+ """
3843
+ The time to end the fade animation, in seconds.
3844
+ """
3845
+ return pulumi.get(self, "end_time_offset")
3846
+
3847
+ @end_time_offset.setter
3848
+ def end_time_offset(self, value: Optional[pulumi.Input[str]]):
3849
+ pulumi.set(self, "end_time_offset", value)
3850
+
3851
+ @property
3852
+ @pulumi.getter(name="startTimeOffset")
3853
+ def start_time_offset(self) -> Optional[pulumi.Input[str]]:
3854
+ """
3855
+ The time to start the fade animation, in seconds.
3856
+ """
3857
+ return pulumi.get(self, "start_time_offset")
3858
+
3859
+ @start_time_offset.setter
3860
+ def start_time_offset(self, value: Optional[pulumi.Input[str]]):
3861
+ pulumi.set(self, "start_time_offset", value)
3862
+
3863
+ @property
3864
+ @pulumi.getter
3865
+ def xy(self) -> Optional[pulumi.Input['JobTemplateConfigOverlayAnimationAnimationFadeXyArgs']]:
3866
+ """
3867
+ Normalized coordinates based on output video resolution.
3868
+ Structure is documented below.
3869
+ """
3870
+ return pulumi.get(self, "xy")
3871
+
3872
+ @xy.setter
3873
+ def xy(self, value: Optional[pulumi.Input['JobTemplateConfigOverlayAnimationAnimationFadeXyArgs']]):
3874
+ pulumi.set(self, "xy", value)
3875
+
3876
+
3877
+ if not MYPY:
3878
+ class JobTemplateConfigOverlayAnimationAnimationFadeXyArgsDict(TypedDict):
3879
+ x: NotRequired[pulumi.Input[float]]
3880
+ """
3881
+ Normalized x coordinate.
3882
+ """
3883
+ y: NotRequired[pulumi.Input[float]]
3884
+ """
3885
+ Normalized y coordinate.
3886
+ """
3887
+ elif False:
3888
+ JobTemplateConfigOverlayAnimationAnimationFadeXyArgsDict: TypeAlias = Mapping[str, Any]
3889
+
3890
+ @pulumi.input_type
3891
+ class JobTemplateConfigOverlayAnimationAnimationFadeXyArgs:
3892
+ def __init__(__self__, *,
3893
+ x: Optional[pulumi.Input[float]] = None,
3894
+ y: Optional[pulumi.Input[float]] = None):
3895
+ """
3896
+ :param pulumi.Input[float] x: Normalized x coordinate.
3897
+ :param pulumi.Input[float] y: Normalized y coordinate.
3898
+ """
3899
+ if x is not None:
3900
+ pulumi.set(__self__, "x", x)
3901
+ if y is not None:
3902
+ pulumi.set(__self__, "y", y)
3903
+
3904
+ @property
3905
+ @pulumi.getter
3906
+ def x(self) -> Optional[pulumi.Input[float]]:
3907
+ """
3908
+ Normalized x coordinate.
3909
+ """
3910
+ return pulumi.get(self, "x")
3911
+
3912
+ @x.setter
3913
+ def x(self, value: Optional[pulumi.Input[float]]):
3914
+ pulumi.set(self, "x", value)
3915
+
3916
+ @property
3917
+ @pulumi.getter
3918
+ def y(self) -> Optional[pulumi.Input[float]]:
3919
+ """
3920
+ Normalized y coordinate.
3921
+ """
3922
+ return pulumi.get(self, "y")
3923
+
3924
+ @y.setter
3925
+ def y(self, value: Optional[pulumi.Input[float]]):
3926
+ pulumi.set(self, "y", value)
3927
+
3928
+
3929
+ if not MYPY:
3930
+ class JobTemplateConfigOverlayImageArgsDict(TypedDict):
3931
+ uri: pulumi.Input[str]
3932
+ """
3933
+ URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
3934
+ """
3935
+ elif False:
3936
+ JobTemplateConfigOverlayImageArgsDict: TypeAlias = Mapping[str, Any]
3937
+
3938
+ @pulumi.input_type
3939
+ class JobTemplateConfigOverlayImageArgs:
3940
+ def __init__(__self__, *,
3941
+ uri: pulumi.Input[str]):
3942
+ """
3943
+ :param pulumi.Input[str] uri: URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
3944
+ """
3945
+ pulumi.set(__self__, "uri", uri)
3946
+
3947
+ @property
3948
+ @pulumi.getter
3949
+ def uri(self) -> pulumi.Input[str]:
3950
+ """
3951
+ URI of the image in Cloud Storage. For example, gs://bucket/inputs/image.png.
3952
+ """
3953
+ return pulumi.get(self, "uri")
3954
+
3955
+ @uri.setter
3956
+ def uri(self, value: pulumi.Input[str]):
3957
+ pulumi.set(self, "uri", value)
3958
+
3959
+
3960
+ if not MYPY:
3961
+ class JobTemplateConfigPubsubDestinationArgsDict(TypedDict):
3962
+ topic: NotRequired[pulumi.Input[str]]
3963
+ """
3964
+ The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
3965
+ """
3966
+ elif False:
3967
+ JobTemplateConfigPubsubDestinationArgsDict: TypeAlias = Mapping[str, Any]
3968
+
3969
+ @pulumi.input_type
3970
+ class JobTemplateConfigPubsubDestinationArgs:
3971
+ def __init__(__self__, *,
3972
+ topic: Optional[pulumi.Input[str]] = None):
3973
+ """
3974
+ :param pulumi.Input[str] topic: The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
3975
+ """
3976
+ if topic is not None:
3977
+ pulumi.set(__self__, "topic", topic)
3978
+
3979
+ @property
3980
+ @pulumi.getter
3981
+ def topic(self) -> Optional[pulumi.Input[str]]:
3982
+ """
3983
+ The name of the Pub/Sub topic to publish job completion notification to. For example: projects/{project}/topics/{topic}.
3984
+ """
3985
+ return pulumi.get(self, "topic")
3986
+
3987
+ @topic.setter
3988
+ def topic(self, value: Optional[pulumi.Input[str]]):
3989
+ pulumi.set(self, "topic", value)
3990
+
3991
+