Define a relationship to a "Publish Status Resource" that represents the public/draft bits for an Atom resource.
Open [In Progress -- RobertSayre]
Related and Conflicting Proposals
If you are having a problem, slap a URI on it.
Draft/Published/Etc is server state separate from that of the resource.
One doesn't typically set ACL bits by resaving a file. Usually, one sets the state of a separate resource that *applies to* the file. In addition, in every CMS like process I've seen, when people that need more than draft/published states, all of the states except 1 are in the non-published bucket. Put another way, there are a variety of states that are between "fully public" and "fully private".
Proposals which advocate including published-status information in an entry representation retreived with GET are over-optimized for a situation where the client wishes to edit an entry and simultaneously change the publish status.
By allowing a 'Publish-Status' header on POST (or PUT) that indicates draft status via a URI, we perfectly capture the reality (it's not mU). If you want mU in HTTP, there are ways to do it that we won't be specifying. Requests to the resource created at the URI given in the 'Location' header should yield a 'Status-Link' header that gives the location of the status resource.
To remove the gate that prevents an entry from becoming fully public, a client DELETEs the Gate Resource. Intermediate states can be manipulated by setting the state of the Gate Resource with HTTP PUT.
See Also: PacePubStatusResource