According to documentation of Swift's new object versioning middleware [1], a deleted object won't be visible but previous version content is still recoverable.
Documentation doesn't say how, though. After deleting myobject, I can see its versions:
$ openstack object delete testcontainer myobject
$ curl
http://192.168.1.200:8080/v1/$ACCOUNT/testcontainer?versions -H
"x-auth-token: $T" | python -m json.tool | grep -e version_id -e
name
"name": "myobject",
"version_id": "1590896642.07497"
"name": "myobject",
"version_id": "1590892906.83929"
"name": "myobject",
"version_id": "1590892899.36921"
But I can't GET old versions of myobject:
$ curl -i
http://192.168.1.200:8080/v1/$ACCOUNT/testcontainer/myobject?version-id="1590896642.07497"
-H "x-auth-token: $T"
HTTP/1.1 404 Not Found
After creating another object with the same name myobject,
old versions are accessible again. This is a solution, but dare I
say not a very elegant one. Can a deleted, versioned
object be recovered without creating a dummy object with the
same name?