         }
     }
     /// The URL of the post on a given platform.
-    public var thirdPartyPostURL: String?
+    public private(set) var thirdPartyPostURL: String?
     
     /// The ID of the post on a given platform.
-    public var thirdPartyPostID: String?
+    public private(set) var thirdPartyPostID: String?
 
     /// The number of views this post has, as reported by the third party platform.
-    public var thirdPartyViewCount: NSNumber?
+    public private(set) var thirdPartyViewCount: NSNumber?
 
     /// The number of likes (or equivalent) this post has, as reported by the third party platform.
-    public var thirdPartyLikeCount: NSNumber?
+    public private(set) ar thirdPartyLikeCount: NSNumber?
 
     /// The number of comments this post has, as reported by the third party platform.
-    public var thirdPartyCommentCount: NSNumber?
+    public private(set) var thirdPartyCommentCount: NSNumber?
     
     // MARK: - Overrides
     

    /// The status of the post on the specified platform as a `String`.
    /// - Note: This property is available to provide interoperability with Objective-C codebases.
    ///         Using `status` is preferred.
    public var statusString: String?
    
    /// The status of the post for a given platform.
    @nonobjc public var status: PublishStatus? {

public class PublishDestinations: VIMModelObject {
    
    /// Information about a post on Facebook.
    public private(set) var facebook: PublishDestination?
    
    /// Information about a post on YouTube.
    public private(set) var youtube: PublishDestination?
    
    /// Information about a post on LinkedIn.
    public private(set) var linkedin: PublishDestination?
    
    /// Information about a post on Twitter.
    public private(set) var twitter: PublishDestination?

    public override func getClassForObjectKey(_ key: String?) -> AnyClass? {
        switch key {
