I am not an expert but I would try to help till some member of DataStax team picks it up:
1) You could do something like that:
Vertex v = ...
Iterator<VertexProperty<VertexProperty>> iter = v.properties();
while (iter.hasNext()){
VertexProperty prop = iter.next();
System.out.println(prop.label()+" "+ prop.value());
}
Keep in mind that this won't return the unique id but it will return the rest of the properties.. You can get the vertex id with v.id() and it is a LinkedHashMap. For more here: how to query by vertex id in Datastax DSE 5.0 Graph in a concise way?
2) DSE Graph supports indexing on the property level of vertices which effectively acts as a primary index. For more information here:
https://docs.datastax.com/en/latest-dse/datastax_enterprise/graph/using/createIndexes.html
and https://docs.datastax.com/en/latest-dse/datastax_enterprise/graph/using/indexOverview.html
3) If I understand what you are asking, DSE Graph provides a way to have a custom primary vertex id that is composite by using composite partition keys: https://docs.datastax.com/en/latest-dse/datastax_enterprise/graph/using/createCustVertexId.html