hashicorp / terraform-provider-aws

The AWS Provider enables Terraform to manage AWS resources.
https://registry.terraform.io/providers/hashicorp/aws
Mozilla Public License 2.0
9.64k stars 9.01k forks source link

Feature Request: MediaConvert Job Template Resource #11189

Open bflad opened 4 years ago

bflad commented 4 years ago

Community Note

Description

Split feature request from https://github.com/terraform-providers/terraform-provider-aws/issues/7533

New Resource

Potential Terraform Configuration

resource "aws_media_convert_job_template" "example" {
  acceleration_settings {
    mode = ""
  }

  category = ""
  description = ""
  name = ""
  priority = 1
  queue = ""

  settings {
    ad_avail_offset = 1

    avail_blanking {
      avail_blanking_image = ""
    }

    esam {
      manifest_confirm_condition_notification {
        mcc_xml = ""
      }

      response_signal_preroll = 1

      signal_processing_notification {
        scc_xml = ""
      }
    }

    input {
      audio_selector_group {
        # This might want to wait until named configuration block support
        # otherwise we'll need to add a nested attribute as a map key
        # map[string]*AudioSelectorGroup
        audio_selector_names = [""]
      }

      audio_selector {
        # This might want to wait until named configuration block support
        # otherwise we'll need to add a nested attribute as a map key
        # map[string]*AudioSelector
        custom_language_code = ""
        default_selection = ""
        external_audio_file_input = ""
        language_code = ""
        offset = 0
        pids = [0]
        program_selection = 0

        remix_settings {
          channel_mapping {
            output_channel {
              input_channels = [1]
            }
          }

          channels_in = 1
          channels_out = 1
        }

        selector_type = ""
        tracks = [1]
      }

      caption_selector {
        # This might want to wait until named configuration block support
        # otherwise we'll need to add a nested attribute as a map key
        # map[string]*CaptionSelector
        custom_language_code = ""
        language_code = ""

        source_settings {
          ancillary_source_settings {
            convert_608_to_708 = ""
            source_ancillary_channel_number = 0
            terminate_captions = ""
          }

          dvb_sub_source_settings {
            pid = 0
          }

          embedded_source_settings {
            convert_608_to_708 = ""
            source_608_channel_number = 0
            source_608_track_number = 0
            terminate_captions = ""
          }

          file_source_settings {
            convert_608_to_708 = ""
            source_file = ""
            time_delta = 0
          }

          source_type = ""

          teletext_source_settings {
            page_number = ""
          }

          track_source_settings {
            track_number = 0
          }
        }
      }

      crop {
        height = 123
        width = 123
        x = 234
        y = 234
      }

      deblock_filter = ""
      denoise_filter = ""
      filter_enable = ""
      filter_strength = 0

      image_inserter {
        insertable_image {
          duration = 123
          fade_in = 123
          fade_out = 123
          height = 123
          image_inserter_input = ""
          image_x = 123
          image_y = 123
          layer = 123
          opacity = 100
          start_time = ""
          width = 123
        }
      }

      input_clipping {
        end_timecode = ""
        start_timecode = ""
      }

      position {
        height = 123
        width = 123
        x = 234
        y = 234
      }

      program_number = 1
      psi_control = ""
      timecode_source = ""
      timecode_start = ""

      video_selector {
        alpha_behavior = ""
        color_space = ""
        color_space_usage = ""

        hdr10_metadata {
          blue_primary_x = 0
          blue_primary_y = 0
          green_primary_x = 0
          green_primary_y = 0
          max_content_light_level = 0
          max_frame_average_light_level = 0
          max_luminance = 0
          min_luminance = 0
          red_primary_x = 0
          red_primary_y = 0
          white_point_x = 0
          white_point_y = 0
        }

        pid = 1
        program_number = 1
        rotate = ""
      }
    }

    motion_image_inserter {
      framerate {
        framerate_denominator = 1
        framerate_numerator = 24
      }

      input = ""
      insertion_mode = ""

      offset {
        image_x = 123
        image_y = 123
      }

      playback = ""
      start_time = ""
    }

    nielsen_configuration {
      distributor_id = ""
    }

    output_group {
      custom_name = ""
      name = ""

      output_group_settings {
        cmaf_group_settings {
          additional_manifest {
            manifest_name_modifier = ""
            selected_outputs = [""]
          }

          base_url = ""
          client_cache = ""
          code_specification = ""
          destination = ""

          destination_settings {
            s3_settings {
              access_control {
                canned_acl = ""
              }

              encryption {
                encryption_type = ""
                kms_key_arn = ""
              }
            }
          }

          encryption {
            constant_initialization_vector = ""
            encryption_method = ""
            initialization_vector_in_manifest = ""

            speke_key_provider {
              certificate_arn = ""
              dash_signaled_system_ids = [""]
              hls_signaled_system_ids = [""]
              resource_id = ""
              url = ""
            }

            static_key_provider {
              key_format = ""
              key_format_versions = ""
              static_key_value = ""
              url = ""
            }

            type = ""
          }

          fragment_length = 1
          manifest_compression = ""
          manifest_duration_format = ""
          min_buffer_time = 1
          min_final_segment_length = 0.0
          mpd_profile = ""
          segment_control = ""
          segment_length = 1
          stream_inf_resolution = ""
          write_dash_manifest = ""
          write_hls_manifest = ""
        }

        dash_iso_group_settings {
          additional_manifest {
            manifest_name_modifier = ""
            selected_outputs = [""]
          }

          base_url = ""
          destination = ""

          destination_settings {
            s3_settings {
              access_control {
                canned_acl = ""
              }

              encryption {
                encryption_type = ""
                kms_key_arn = ""
              }
            }
          }

          encryption {
            playback_device_compatibility = ""

            speke_key_provider {
              certificate_arn = ""
              resource_id = ""
              system_ids = [""]
              url = ""
            }
          }

          fragment_length = 1
          hbbtv_compliance = ""
          min_buffer_time = 1
          mpd_profile = ""
          segment_control = ""
          segment_length = 1
          write_segment_timeline_in_representation = ""
        }

        file_group_settings {
          destination = ""

          destination_settings {
            s3_settings {
              access_control {
                canned_acl = ""
              }

              encryption {
                encryption_type = ""
                kms_key_arn = ""
              }
            }
          }
        }

        hls_group_settings {
          ad_markers = [""]

          additional_manifest {
            manifest_name_modifier = ""
            selected_outputs = [""]
          }

          base_url = ""

          caption_language_mapping {
            caption_channel = 1
            custom_language_code = ""
            language_code = ""
            language_description = ""
          }

          caption_language_setting = ""
          client_cache = ""
          codec_specification = ""
          destination = ""

          destination_settings {
            s3_settings {
              access_control {
                canned_acl = ""
              }

              encryption {
                encryption_type = ""
                kms_key_arn = ""
              }
            }
          }

          directory_structure = ""

          encryption {
            constant_initialization_vector = ""
            encryption_method = ""
            initialization_vector_in_manifest = ""
            offline_encrypted = ""

            speke_key_provider {
              certificate_arn = ""
              dash_signaled_system_ids = [""]
              hls_signaled_system_ids = [""]
              resource_id = ""
              url = ""
            }

            static_key_provider {
              key_format = ""
              key_format_versions = ""
              static_key_value = ""
              url = ""
            }

            type = ""
          }

          manifest_compression = ""
          manifest_duration_format = ""
          min_final_segment_length = 0.0
          min_segment_length = 1
          output_selection = ""
          program_date_time = ""
          program_date_time_period = 1
          segment_control = ""
          segment_length = 1
          segments_per_subdirectory = 1
          stream_inf_resolution = ""
          timed_metadata_id3_frame = ""
          timed_metadata_id3_period = 1
          timestamp_delta_milliseconds = 1
        }

        ms_smooth_group_settings {
          additional_manifest {
            manifest_name_modifier = ""
            selected_outputs = [""]
          }

          audio_deduplication = ""
          destination = ""

          destination_settings {
            s3_settings {
              access_control {
                canned_acl = ""
              }

              encryption {
                encryption_type = ""
                kms_key_arn = ""
              }
            }
          }

          encryption {
            speke_key_provider {
              certificate_arn = ""
              resource_id = ""
              system_ids = [""]
              url = ""
            }
          }

          fragment_length = 1
          manifest_encoding = ""
        }

        type = ""
      }

      output {
        audio_description {
          audio_normalization_settings {
            algorithm = ""
            algorithm_control = ""
            correction_gate_level = 0
            loudness_logging = ""
            peak_calculation = ""
            target_lkfs = 0.0
          }

          audio_source_name = ""
          audio_type = 0
          audio_type_control = ""

          codec_settings {
            aac_settings {
              audio_description_broadcaster_mix = ""
              bitrate = 6000
              codec_profile = ""
              coding_mode = ""
              rate_control_mode = ""
              raw_format = ""
              sample_rate = 8000
              specification = ""
              vbr_quality = ""
            }

            ac3_settings {
              bitrate = 64000
              bitstream_mode = ""
              coding_mode = ""
              dianorm = 1
              dynamic_range_compression_profile = ""
              lfe_filter = ""
              metadata_control = ""
              sample_rate = 48000
            }

            aiff_settings {
              bitdepth = 16
              channels = 1
              sample_rate = 8000
            }

            codec = ""

            eac3_atmos_settings {
              bitrate = 384000
              bitstream_mode = ""
              coding_mode = ""
              dialogue_intelligence = ""
              dynamic_range_compression_line = ""
              dynamic_range_compression_rf = ""
              lo_ro_center_mix_level = 0.0
              lo_ro_surround_mix_level = 0.0
              lt_rt_center_mix_level = 0.0
              lt_rt_surround_mix_level = 0.0
              metering_mode = ""
              sample_rate = 48000
              speech_threshold = 1
              stereo_downmix = ""
              surround_ex_mode = ""
            }

            eac3_settings {
              attenuation_control = ""
              bitrate = 64000
              bitstream_mode = ""
              coding_mode = ""
              dc_filter = ""
              dialnorm = 1
              dynamic_range_compression_line = ""
              dynamic_range_compression_rf = ""
              lfe_control = ""
              lfe_filter = ""
              lo_ro_center_mix_level = 0.0
              lo_ro_surround_mix_level = 0.0
              lt_rt_center_mix_level = 0.0
              lt_rt_surround_mix_level = 0.0
              metadata_control = ""
              passthrough_control = ""
              phase_control = ""
              sample_rate = 48000
              stereo_downmix = ""
              surround_ex_mode = ""
              surround_mode = ""
            }

            mp2_settings {
              bitrate = 32000
              channels = 1
              sample_rate = 32000
            }

            wav_settings {
              bit_depth = 16
              channels = 1
              format = ""
              sample_rate = 8000
            }
          }

          custom_language_code = ""
          language_code = ""
          language_code_control = ""

          remix_settings {
            channel_mapping {
              output_channel {
                input_channels = [1]
              }
            }

            channels_in = 1
            channels_out = 1
          }

          stream_name = ""
        }

        caption_description {
          caption_selector_name = ""
          custom_language_code = ""

          destination_settings {
            burnin_destination_settings {
              alignment = ""
              background_color = ""
              background_opacity = 255
              font_color = ""
              font_opacity = 255
              font_resolution = 96
              font_script = ""
              font_size = 0
              outline_color = ""
              outline_size = 0
              shadow_color = ""
              shadow_opacity = 255
              shadow_x_offset = 0
              shadow_y_offset = 0
              teletext_spacing = ""
              x_position = 0
              y_position = 0
            }

            destination_type = ""

            dvb_sub_destination_settings {
              alignment = ""
              background_color = ""
              background_opacity = 255
              font_color = ""
              font_opacity = 255
              font_resolution = 96
              font_script = ""
              font_size = 0
              outline_color = ""
              outline_size = 0
              shadow_color = ""
              shadow_opacity = 255
              shadow_x_offset = 0
              shadow_y_offset = 0
              subtitling_type = ""
              teletext_spacing = ""
              x_position = 0
              y_position = 0
            }

            embedded_destination_settings {
              destination_608_channel_number = 1
              destination_708_service_number = 1
            }

            imsc_destination_settings {
              style_passthrough = ""
            }

            scc_destination_settings {
              framerate = ""
            }

            teletext_destination_settings {
              page_number = ""
              page_types = [""]
            }

            ttml_destination_settings {
              style_passthrough = ""
            }
          }

          language_code = ""
          language_description = ""
        }

        container_settings {
          container = ""

          f4v_settings {
            moov_placement = ""
          }

          m2ts_settings {
            audio_buffer_model = ""
            audio_frames_per_pes = 0
            audio_pids = [482]
            bitrate = 0
            buffer_model = ""

            dvb_nit_settings {
              network_id = 0
              network_name = ""
              nit_interval = 0
            }

            dvb_sdt_settings {
              output_sdt = ""
              sdt_interval = 0
              service_name = ""
              service_provider_name = ""
            }

            dvb_sub_pids = [460]

            dvb_tdt_settings {
              tdt_interval = 0
            }

            dvb_teletext_pid = 499
            ebp_audio_interval = ""
            ebp_placement = ""
            es_rate_in_pes = ""
            force_ts_video_ebp_order = ""
            fragment_time = 0.0
            max_pcr_interval = 0
            min_pcr_interval = 0
            nielsen_id3 = ""
            null_packet_bitrate = 0.0
            pat_interval = 0
            pcr_control = ""
            pcr_pid = 0
            pmt_interval = 0
            pmt_pid = 0
            private_metadata_pid = 0
            program_number = 1
            rate_mode = ""

            scte_35_esam {
              scte_35_esam_pid = 0
            }

            scte_35_pid = 0
            scte_35_source = ""
            segmentation_markers = ""
            segmentation_style = ""
            segmentation_time = 0.0
            timed_metadata_pid = 0
            transport_stream_id = 0
            video_pid = 0
          }

          m3u8_settings {
            audio_frames_per_pes = 0
            audio_pids = [482]
            nielsen_id3 = ""
            pat_interval = 0
            pcr_control = ""
            pcr_pid = 0
            pmt_interval = 0
            pmt_pid = 0
            private_metadata_pid = 0
            program_number = 1
            scte_35_pid = 0
            scte_35_source = ""
            timed_metadata = ""
            timed_metadata_pid = 0
            transport_stream_id = 0
            video_pid = 0
          }

          mov_settings {
            clap_atom = ""
            cslg_atom = ""
            mpeg2_fourcc_control = ""
            padding_control = ""
            reference = ""
          }

          mp4_settings {
            cslg_atom = ""
            free_space_box = ""
            moov_placement = ""
            mp4_major_brand = ""
          }

          mpd_settings {
            caption_container_type = ""
            scte_35_esam = ""
            scte_35_source = ""
          }
        }

        extension = ""
        name_modifier = ""

        output_settings {
          hls_settings {
            audio_group_id = ""
            audio_only_container = ""
            audio_rendition_sets = ""
            audio_track_type = ""
            iframe_only_manifest = ""
            segment_modifier = ""
          }
        }

        preset = ""

        video_description {
          afd_signaling = ""
          anti_alias = ""

          codec_settings {
            codec = ""

            frame_capture_settings {
              framerate_denominator = 0
              framerate_numerator = 0
              max_captures = 0
              quality = 0
            }

            h264_settings {
              adaptive_quantization = ""
              bitrate = 0
              codec_level = ""
              codec_profile = ""
              dynamic_sub_gop = ""
              entropy_encoding = ""
              field_encoding = ""
              flicker_adaptive_quantization = ""
              framerate_control = ""
              framerate_conversion_algorithm = ""
              framerate_demoniator = 0
              framerate_numerator = 0
              gop_b_reference = ""
              gop_closed_cadence = 0
              gop_size = 0.0
              gop_size_units = ""
              hrd_buffer_initial_fill_percentage = 0
              hrd_buffer_size = 0
              interlace_mode = ""
              max_bitrate = 0
              min_i_interval = 0
              number_b_frames_between_reference_frames = 0
              number_reference_frames = 0
              par_control = ""
              par_denominator = 0
              par_numerator = 0
              quality_tuning_level = ""

              qvbr_settings {
                max_average_bitrate = 0
                qvbr_quality_level = 0
              }

              rate_control_mode = ""
              repeat_pps = ""
              scene_change_detect = ""
              slices = 0
              slow_pal = ""
              softness = 0
              spatial_adaptive_quantization = ""
              syntax = ""
              telecine = ""
              temporal_adaptive_quantization = ""
              unregistered_sei_timecode = ""
            }

            h265_settings {
              adaptive_quantization = ""
              alternative_transfer_function_sei = ""
              bitrate = 0
              codec_level = ""
              codec_profile = ""
              dynamic_sub_gop = ""
              flicker_adaptive_quantization = ""
              framerate_control = ""
              framerate_conversion_algorithm = ""
              framerate_demoniator = 0
              framerate_numerator = 0
              gop_b_reference = ""
              gop_closed_cadence = 0
              gop_size = 0.0
              gop_size_units = ""
              hrd_buffer_initial_fill_percentage = 0
              hrd_buffer_size = 0
              interlace_mode = ""
              max_bitrate = 0
              min_i_interval = 0
              number_b_frames_between_reference_frames = 0
              number_reference_frames = 0
              par_control = ""
              par_denominator = 0
              par_numerator = 0
              quality_tuning_level = ""

              qvbr_settings {
                max_average_bitrate = 0
                qvbr_quality_level = 0
              }

              rate_control_mode = ""
              sample_adaptive_offset_filter_mode = ""
              scene_change_detect = ""
              slices = 0
              slow_pal = ""
              spatial_adaptive_quantization = ""
              telecine = ""
              temporal_adaptive_quantization = ""
              temporal_ids = ""
              tiles = ""
              unregistered_sei_timecode = ""
              write_mp4_packaging_type = ""
            }

            mpeg2_settings {
              adaptive_quantization = ""
              bitrate = 0
              codec_level = ""
              codec_profile = ""
              dynamic_sub_gop = ""
              framerate_control = ""
              framerate_conversion_algorithm = ""
              framerate_demoniator = 0
              framerate_numerator = 0
              gop_closed_cadence = 0
              gop_size = 0.0
              gop_size_units = ""
              hrd_buffer_initial_fill_percentage = 0
              hrd_buffer_size = 0
              interlace_mode = ""
              intra_dc_precision = ""
              max_bitrate = 0
              min_i_interval = 0
              number_b_frames_between_reference_frames = 0
              par_control = ""
              par_denominator = 0
              par_numerator = 0
              quality_tuning_level = ""
              rate_control_mode = ""
              scene_change_detect = ""
              slowpal = ""
              softness = 0
              spatial_adaptive_quantization = ""
              syntax = ""
              telecine = ""
              temporal_adaptive_quantization = ""
            }

            prores_settings {
              codec_profile = ""
              framerate_control = ""
              framerate_conversion_algorithm = ""
              framerate_demoniator = 0
              framerate_numerator = 0
              interlace_mode = ""
              par_control = ""
              par_denominator = 0
              par_numerator = 0
              slow_pal = ""
              telecine = ""
            }
          }

          color_metadata = ""

          crop {
            height = 123
            width = 123
            x = 234
            y = 234
          }

          drop_frame_timecode = ""
          fixed_afd = 0
          height = 0

          position {
            height = 123
            width = 123
            x = 234
            y = 234
          }

          respond_to_afd = ""
          scaling_behavior = ""
          sharpness = 0
          timecode_insertion = ""

          video_preprocessors {
            color_corrector {
              brightness = 0
              color_space_conversion = ""
              contrast = 0

              hdr10_metadata {
                blue_primary_x = 0
                blue_primary_y = 0
                green_primary_x = 0
                green_primary_y = 0
                max_content_light_level = 0
                max_frame_average_light_level = 0
                max_luminance = 0
                min_luminance = 0
                red_primary_x = 0
                red_primary_y = 0
                white_point_x = 0
                white_point_y = 0
              }

              hue = 0
              saturation = 0
            }

            deinterlacer {
              algorithm = ""
              control = ""
              mode = ""
            }

            dolby_vision {
              l6_metadata {
                max_cll = 0
                max_fall = 0
              }

              l6_mode = ""
              profile = ""
            }

            image_inserter {
              insertable_image {
                duration = 123
                fade_in = 123
                fade_out = 123
                height = 123
                image_inserter_input = ""
                image_x = 123
                image_y = 123
                layer = 123
                opacity = 100
                start_time = ""
                width = 123
              }
            }

            noise_reducer {
              filter = ""

              filter_settings {
                strength = 0
              }

              spatial_filter_settings {
                post_filter_sharpen_strength = 0
                speed = 0
                strength = 0
              }

              temporal_filter_settings {
                aggressive_mode = 0
                speed = 0
                strength = 0
              }
            }

            timecode_burnin {
              font_size = 0
              position = ""
              prefix = ""
            }
          }

          width = 0
        }
      }
    }

    timecode_config {
      anchor = ""
      source = ""
      start = ""
      timestamp_offset = ""
    }

    timed_metadata_insertion {
      id3_insertion {
        id3 = ""
        timecode = ""
      }
    }
  }

  status_update_interval = ""
  tags = {}
}

References

danielMensah commented 2 years ago

any news on this issue?

corapoid commented 1 year ago

Is there any update?

Bobobrien92 commented 1 year ago

any news on this issue?

sarathAlamy commented 10 months ago

Is there any update?

yunxi-zhang commented 9 months ago

Any update on this?

YeomansIII commented 5 months ago

@bflad It's been 4 years since this was opened, are any other AWS MediaConvert resources going to be added?

lazouz commented 2 months ago

Maybe if someone proposes a simple implementation (basic resource just including a json) ? this could make a progress ?

lazouz commented 3 weeks ago

Hello here, I just began a pull request but I am not an experienced Go developer. Any help, advices and review would help me :)

https://github.com/hashicorp/terraform-provider-aws/pull/38111