// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Mps.Outputs
{

    [OutputType]
    public sealed class WorkflowMediaProcessTaskTranscodeTaskSet
    {
        /// <summary>
        /// Video Transcoding Template ID.
        /// </summary>
        public readonly int Definition;
        /// <summary>
        /// End time offset of video after transcoding, unit: second.Do not fill in or fill in 0, indicating that the transcoded video continues until the end of the original video.When the value is greater than 0 (assumed to be n), it means that the transcoded video lasts until the nth second of the original video and terminates.When the value is less than 0 (assumed to be -n), it means that the transcoded video lasts until n seconds before the end of the original video.
        /// </summary>
        public readonly double? EndTimeOffset;
        /// <summary>
        /// Opening and ending parameters.Note: This field may return null, indicating that no valid value can be obtained.
        /// </summary>
        public readonly Outputs.WorkflowMediaProcessTaskTranscodeTaskSetHeadTailParameter? HeadTailParameter;
        /// <summary>
        /// Mosaic list, up to 10 sheets can be supported.
        /// </summary>
        public readonly ImmutableArray<Outputs.WorkflowMediaProcessTaskTranscodeTaskSetMosaicSet> MosaicSets;
        /// <summary>
        /// Rules for the `{number}` variable in the output path after transcoding.Note: This field may return null, indicating that no valid value can be obtained.
        /// </summary>
        public readonly Outputs.WorkflowMediaProcessTaskTranscodeTaskSetObjectNumberFormat? ObjectNumberFormat;
        /// <summary>
        /// The output path of the main file after transcoding can be a relative path or an absolute path. If not filled, the default is a relative path: {inputName}_transcode_{definition}.{format}.
        /// </summary>
        public readonly string? OutputObjectPath;
        /// <summary>
        /// The target storage of the transcoded file, if not filled, it will inherit the OutputStorage value of the upper layer.Note: This field may return null, indicating that no valid value can be obtained.
        /// </summary>
        public readonly Outputs.WorkflowMediaProcessTaskTranscodeTaskSetOutputStorage? OutputStorage;
        /// <summary>
        /// Video transcoding custom parameters, valid when Definition is not filled with 0.When some transcoding parameters in this structure are filled in, the parameters in the transcoding template will be overwritten with the filled parameters.This parameter is used in highly customized scenarios, it is recommended that you only use Definition to specify transcoding parameters.Note: This field may return null, indicating that no valid value can be obtained.
        /// </summary>
        public readonly Outputs.WorkflowMediaProcessTaskTranscodeTaskSetOverrideParameter? OverrideParameter;
        /// <summary>
        /// Video transcoding custom parameters, valid when Definition is filled with 0.This parameter is used in highly customized scenarios. It is recommended that you use Definition to specify transcoding parameters first.Note: This field may return null, indicating that no valid value can be obtained.
        /// </summary>
        public readonly Outputs.WorkflowMediaProcessTaskTranscodeTaskSetRawParameter? RawParameter;
        /// <summary>
        /// The output path of the transcoded fragment file (the path of ts when transcoding HLS), can only be a relative path. If not filled, the default is: `{inputName}_transcode_{definition}_{number}.{format}.
        /// </summary>
        public readonly string? SegmentObjectName;
        /// <summary>
        /// The start time offset of the transcoded video, unit: second.Do not fill in or fill in 0, indicating that the transcoded video starts from the beginning of the original video.When the value is greater than 0 (assumed to be n), it means that the transcoded video starts from the nth second position of the original video.When the value is less than 0 (assumed to be -n), it means that the transcoded video starts from the position n seconds before the end of the original video.
        /// </summary>
        public readonly double? StartTimeOffset;
        /// <summary>
        /// Watermark list, support multiple pictures or text watermarks, up to 10.Note: This field may return null, indicating that no valid value can be obtained.
        /// </summary>
        public readonly ImmutableArray<Outputs.WorkflowMediaProcessTaskTranscodeTaskSetWatermarkSet> WatermarkSets;

        [OutputConstructor]
        private WorkflowMediaProcessTaskTranscodeTaskSet(
            int definition,

            double? endTimeOffset,

            Outputs.WorkflowMediaProcessTaskTranscodeTaskSetHeadTailParameter? headTailParameter,

            ImmutableArray<Outputs.WorkflowMediaProcessTaskTranscodeTaskSetMosaicSet> mosaicSets,

            Outputs.WorkflowMediaProcessTaskTranscodeTaskSetObjectNumberFormat? objectNumberFormat,

            string? outputObjectPath,

            Outputs.WorkflowMediaProcessTaskTranscodeTaskSetOutputStorage? outputStorage,

            Outputs.WorkflowMediaProcessTaskTranscodeTaskSetOverrideParameter? overrideParameter,

            Outputs.WorkflowMediaProcessTaskTranscodeTaskSetRawParameter? rawParameter,

            string? segmentObjectName,

            double? startTimeOffset,

            ImmutableArray<Outputs.WorkflowMediaProcessTaskTranscodeTaskSetWatermarkSet> watermarkSets)
        {
            Definition = definition;
            EndTimeOffset = endTimeOffset;
            HeadTailParameter = headTailParameter;
            MosaicSets = mosaicSets;
            ObjectNumberFormat = objectNumberFormat;
            OutputObjectPath = outputObjectPath;
            OutputStorage = outputStorage;
            OverrideParameter = overrideParameter;
            RawParameter = rawParameter;
            SegmentObjectName = segmentObjectName;
            StartTimeOffset = startTimeOffset;
            WatermarkSets = watermarkSets;
        }
    }
}
