All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.media.inputs.MultiBitrateFormatArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.media.inputs;

import com.pulumi.azurenative.media.inputs.OutputFileArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Describes the properties for producing a collection of GOP aligned multi-bitrate files. The default behavior is to produce one output file for each video layer which is muxed together with all the audios. The exact output files produced can be controlled by specifying the outputFiles collection.
 * 
 */
public final class MultiBitrateFormatArgs extends com.pulumi.resources.ResourceArgs {

    public static final MultiBitrateFormatArgs Empty = new MultiBitrateFormatArgs();

    /**
     * The file naming pattern used for the creation of output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {AudioStream} - string "Audio" plus audio stream number(start from 1). {Bitrate} - The audio/video bitrate in kbps. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename.
     * 
     */
    @Import(name="filenamePattern", required=true)
    private Output filenamePattern;

    /**
     * @return The file naming pattern used for the creation of output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {AudioStream} - string "Audio" plus audio stream number(start from 1). {Bitrate} - The audio/video bitrate in kbps. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename.
     * 
     */
    public Output filenamePattern() {
        return this.filenamePattern;
    }

    /**
     * The discriminator for derived types.
     * Expected value is '#Microsoft.Media.MultiBitrateFormat'.
     * 
     */
    @Import(name="odataType", required=true)
    private Output odataType;

    /**
     * @return The discriminator for derived types.
     * Expected value is '#Microsoft.Media.MultiBitrateFormat'.
     * 
     */
    public Output odataType() {
        return this.odataType;
    }

    /**
     * The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
     * 
     */
    @Import(name="outputFiles")
    private @Nullable Output> outputFiles;

    /**
     * @return The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
     * 
     */
    public Optional>> outputFiles() {
        return Optional.ofNullable(this.outputFiles);
    }

    private MultiBitrateFormatArgs() {}

    private MultiBitrateFormatArgs(MultiBitrateFormatArgs $) {
        this.filenamePattern = $.filenamePattern;
        this.odataType = $.odataType;
        this.outputFiles = $.outputFiles;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(MultiBitrateFormatArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private MultiBitrateFormatArgs $;

        public Builder() {
            $ = new MultiBitrateFormatArgs();
        }

        public Builder(MultiBitrateFormatArgs defaults) {
            $ = new MultiBitrateFormatArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param filenamePattern The file naming pattern used for the creation of output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {AudioStream} - string "Audio" plus audio stream number(start from 1). {Bitrate} - The audio/video bitrate in kbps. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename.
         * 
         * @return builder
         * 
         */
        public Builder filenamePattern(Output filenamePattern) {
            $.filenamePattern = filenamePattern;
            return this;
        }

        /**
         * @param filenamePattern The file naming pattern used for the creation of output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {AudioStream} - string "Audio" plus audio stream number(start from 1). {Bitrate} - The audio/video bitrate in kbps. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename.
         * 
         * @return builder
         * 
         */
        public Builder filenamePattern(String filenamePattern) {
            return filenamePattern(Output.of(filenamePattern));
        }

        /**
         * @param odataType The discriminator for derived types.
         * Expected value is '#Microsoft.Media.MultiBitrateFormat'.
         * 
         * @return builder
         * 
         */
        public Builder odataType(Output odataType) {
            $.odataType = odataType;
            return this;
        }

        /**
         * @param odataType The discriminator for derived types.
         * Expected value is '#Microsoft.Media.MultiBitrateFormat'.
         * 
         * @return builder
         * 
         */
        public Builder odataType(String odataType) {
            return odataType(Output.of(odataType));
        }

        /**
         * @param outputFiles The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
         * 
         * @return builder
         * 
         */
        public Builder outputFiles(@Nullable Output> outputFiles) {
            $.outputFiles = outputFiles;
            return this;
        }

        /**
         * @param outputFiles The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
         * 
         * @return builder
         * 
         */
        public Builder outputFiles(List outputFiles) {
            return outputFiles(Output.of(outputFiles));
        }

        /**
         * @param outputFiles The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
         * 
         * @return builder
         * 
         */
        public Builder outputFiles(OutputFileArgs... outputFiles) {
            return outputFiles(List.of(outputFiles));
        }

        public MultiBitrateFormatArgs build() {
            if ($.filenamePattern == null) {
                throw new MissingRequiredPropertyException("MultiBitrateFormatArgs", "filenamePattern");
            }
            $.odataType = Codegen.stringProp("odataType").output().arg($.odataType).require();
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy