namespace k8s
{
    /// <summary>
    /// These values identify the various channels which you can use when interacting with a process running in a container in a Kubernetes
    /// pod.
    /// </summary>
    /// <seealso href="https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/server/remotecommand/websocket.go#L29"/>
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1028:Enum Storage should be Int32", Justification = "byte only")]
    public enum ChannelIndex : byte
    {
        /// <summary>
        /// The standard input channel. Use this channel to send input to a process running in a container inside a Kubernetes pod.
        /// </summary>
        StdIn,

        /// <summary>
        /// The standard output channel. Use this channel to read standard output generated by a process running in a container in a Kubernetes pod.
        /// </summary>
        StdOut,

        /// <summary>
        /// The standard error channel. Use this channel to read the error output generated by a process running in a container in a Kubernetes pod.
        /// </summary>
        StdErr,

        /// <summary>
        /// The error channel. This channel is used by Kubernetes to send you error messages, including the exit code of the process.
        /// </summary>
        Error,

        /// <summary>
        /// The resize channel. Use this channel to resize the terminal. You need to send a JSON-formatted object over this channel, which
        /// has a Width and Height property.
        /// </summary>
        /// <seealso href="https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/client-go/tools/remotecommand/resize.go"/>
        Resize,
    }
}
