package org.jboss.resteasy.keystone.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRootName;
import java.io.Serializable;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.Set;
@JsonRootName("access")
public class Access implements Serializable {
@JsonIgnoreProperties(ignoreUnknown = true)
public static final class Token implements Serializable {
private String id;
private Calendar expires;
private Project project;
public Token()
{
}
public Token(String id, Calendar expires, Project project)
{
this.id = id;
this.expires = expires;
this.project = project;
}
/**
* @return the id
*/
public String getId() {
return id;
}
/**
* @return the expires
*/
public Calendar getExpires() {
return expires;
}
public boolean expired()
{
return expires.getTime().getTime() < System.currentTimeMillis();
}
/**
* @return the project
*/
public Project getProject() {
return project;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Token [id=" + id + ", expires=" + expires + ", project="
+ project + "]";
}
}
public static final class Service implements Serializable {
@JsonIgnoreProperties(ignoreUnknown=true)
public static final class Endpoint {
private String region;
private String publicURL;
private String internalURL;
private String adminURL;
/**
* @return the region
*/
public String getRegion() {
return region;
}
/**
* @return the publicURL
*/
public String getPublicURL() {
return publicURL;
}
/**
* @return the internalURL
*/
public String getInternalURL() {
return internalURL;
}
/**
* @return the adminURL
*/
public String getAdminURL() {
return adminURL;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Endpoint [region=" + region + ", publicURL="
+ publicURL + ", internalURL=" + internalURL
+ ", adminURL=" + adminURL + "]";
}
}
private String type;
private String name;
private List<Endpoint> endpoints;
@JsonProperty("endpoints_links")
private List<Link> endpointsLinks;
/**
* @return the type
*/
public String getType() {
return type;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @return the endpoints
*/
public List<Endpoint> getEndpoints() {
return endpoints;
}
/**
* @return the endpointsLinks
*/
public List<Link> getEndpointsLinks() {
return endpointsLinks;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Service [type=" + type + ", name=" + name + ", endpoints="
+ endpoints + ", endpointsLinks=" + endpointsLinks + "]";
}
}
public static final class User implements Serializable {
public User()
{
}
public User(String id, String name, String username, Set<Role> roles)
{
this.id = id;
this.name = name;
this.username = username;
this.roles = roles;
}
private String id;
private String name;
private String username;
private Set<Role> roles;
/**
* @return the id
*/
public String getId() {
return id;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @return the roles
*/
public Set<Role> getRoles() {
return roles;
}
/**
* @return the rolesLinks
*/
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", username="
+ username + ", roles=" + roles + "]";
}
}
private Token token;
private List<Service> serviceCatalog;
private User user;
private Map<String, Object> metadata;
public Access()
{
}
public Access(Token token, List<Service> serviceCatalog, User user, Map<String, Object> metadata)
{
this.token = token;
this.serviceCatalog = serviceCatalog;
this.user = user;
this.metadata = metadata;
}
/**
* @return the token
*/
public Token getToken() {
return token;
}
/**
* @return the serviceCatalog
*/
public List<Service> getServiceCatalog() {
return serviceCatalog;
}
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* @return the metadata
*/
public Map<String, Object> getMetadata() {
return metadata;
}
public void setToken(Token token)
{
this.token = token;
}
public void setServiceCatalog(List<Service> serviceCatalog)
{
this.serviceCatalog = serviceCatalog;
}
public void setUser(User user)
{
this.user = user;
}
public void setMetadata(Map<String, Object> metadata)
{
this.metadata = metadata;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Access [token=" + token + ", serviceCatalog=" + serviceCatalog
+ ", user=" + user + ", metadata=" + metadata + "]";
}
}