/// <summary>
        /// Upload options set for the recorded screen capture.
        /// </summary>
        /// <param name="uploadOptions">Upload options</param>
        /// <returns></returns>
        public T WithUploadOptions(ScreenRecordingUploadOptions uploadOptions)
        {
            foreach (var parameter in uploadOptions.GetParameters())
            {
                Parameters[parameter.Key] = parameter.Value;
            }

            return((T)this);
        }
 /// <summary>
 /// The remotePath upload option is the path to the remote location,
 /// where the resulting video should be uploaded.
 /// The following protocols are supported: http/https (multipart), ftp.
 ///
 /// Missing value (the default setting) means the content of the resulting
 /// file should be encoded as Base64 and passed as the endpoint response value, but
 /// an exception will be thrown if the generated media file is too big to
 /// fit into the available process memory.
 /// This option only has an effect if there is a screen recording session in progress
 /// and forced restart is not enabled (the default setting).
 /// </summary>
 /// <param name="uploadOptions">Upload options</param>
 /// <returns>self instance for chaining.</returns>
 public new T WithUploadOptions(ScreenRecordingUploadOptions uploadOptions)
 {
     return(base.WithUploadOptions(uploadOptions));
 }