 /// Encapsulates the upload-related information on a video object.
 public class VIMUpload: VIMModelObject
 {
-    /// The type of upload approach
+    /// The approach for uploading the video, expressed as a Swift-only enum
     ///
     /// - streaming: Two-step upload without using tus; this will be deprecated
     /// - post: Upload with an HTML form or POST

        case tus
    }
    
    /// The status of the upload
    ///
    /// - complete: The upload is complete
    /// - error: The upload ended with an error

        case underway = "in_progress"
    }
    
    /// The approach for uploading the video
    @objc dynamic public private(set) var approach: String?

    /// The file size in bytes of the uploaded video
    @objc dynamic public private(set) var size: NSNumber?

    /// The status code for the availability of the uploaded video
    @objc dynamic public private(set) var status: String?
    
    /// The HTML form for uploading a video through the post approach
    @objc dynamic public private(set) var form: String?
    
    /// The link of the video to capture through the pull approach
    @objc dynamic public private(set) var link: String?

    /// The URI for completing the upload
    @objc dynamic public private(set) var completeUri: String?
    
    /// The redirect URL for the upload app
    @objc dynamic public private(set) var redirectUrl: String?

    /// The link for sending video file data
    @objc dynamic public private(set) var uploadLink: String?
    
    /// The approach for uploading the video, mapped to a Swift-only enum
    public private(set) var uploadApproach: UploadApproach?
    
    /// The status code for the availability of the uploaded video, mapped to a Swift-only enum
    public private(set) var uploadStatus: UploadStatus?
    
    // MARK: - VIMMappable Protocol Conformance
    
    /// Called when automatic object mapping completes
    public override func didFinishMapping()
    {
        if let approachString = self.approach
