// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.videoanalyzer.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;

/** Contains information about the video and audio content. */
@Fluent
public final class VideoMediaInfo {
    /*
     * Video segment length indicates the length of individual video files
     * (segments) which are persisted to storage. Smaller segments provide
     * lower archive playback latency but generate larger volume of storage
     * transactions. Larger segments reduce the amount of storage transactions
     * while increasing the archive playback latency. Value must be specified
     * in ISO8601 duration format (i.e. "PT30S" equals 30 seconds) and can vary
     * between 30 seconds to 5 minutes, in 30 seconds increments.
     */
    @JsonProperty(value = "segmentLength")
    private String segmentLength;

    /**
     * Get the segmentLength property: Video segment length indicates the length of individual video files (segments)
     * which are persisted to storage. Smaller segments provide lower archive playback latency but generate larger
     * volume of storage transactions. Larger segments reduce the amount of storage transactions while increasing the
     * archive playback latency. Value must be specified in ISO8601 duration format (i.e. "PT30S" equals 30 seconds) and
     * can vary between 30 seconds to 5 minutes, in 30 seconds increments.
     *
     * @return the segmentLength value.
     */
    public String segmentLength() {
        return this.segmentLength;
    }

    /**
     * Set the segmentLength property: Video segment length indicates the length of individual video files (segments)
     * which are persisted to storage. Smaller segments provide lower archive playback latency but generate larger
     * volume of storage transactions. Larger segments reduce the amount of storage transactions while increasing the
     * archive playback latency. Value must be specified in ISO8601 duration format (i.e. "PT30S" equals 30 seconds) and
     * can vary between 30 seconds to 5 minutes, in 30 seconds increments.
     *
     * @param segmentLength the segmentLength value to set.
     * @return the VideoMediaInfo object itself.
     */
    public VideoMediaInfo withSegmentLength(String segmentLength) {
        this.segmentLength = segmentLength;
        return this;
    }

    /**
     * Validates the instance.
     *
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    public void validate() {
    }
}
