You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2019/09/09 19:17:23 UTC

[airavata-custos] 19/48: code refactoring

This is an automated email from the ASF dual-hosted git repository.

smarru pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-custos.git

commit bd6952cbb33947daf4583de8395b9de6ed4b57b7
Author: Aarushi <aa...@gmail.com>
AuthorDate: Mon Aug 12 12:27:48 2019 -0400

    code refactoring
---
 .../service/AuthenticationServiceClient.java       |    2 +-
 .../custos/commons/utils/ApplicationSettings.java  |   12 +-
 .../user/entities/CustomizedDashboardEntity.java   |  325 ---
 .../commons/user/entities/UserProfileEntity.java   |   11 -
 .../custos/profile/model/user/CustomDashboard.java | 2912 --------------------
 .../custos/profile/model/user/NSFDemographics.java |  145 +-
 .../apache/custos/profile/model/user/Status.java   |   25 +-
 .../custos/profile/model/user/USCitizenship.java   |   25 +-
 .../custos/profile/model/user/UserProfile.java     |  506 ++--
 .../custos/profile/model/user/disability.java      |   25 +-
 .../custos/profile/model/user/ethnicity.java       |   25 +-
 .../org/apache/custos/profile/model/user/race.java |   25 +-
 .../model/user/user_profile_modelConstants.java    |   21 +-
 .../database_scripts/init/01-databases.sql         |   48 -
 pom.xml                                            |    1 +
 .../user_profile_model.thrift                      |   36 +-
 16 files changed, 333 insertions(+), 3811 deletions(-)

diff --git a/custos-client/src/main/java/org/apache/custos/client/authentication/service/AuthenticationServiceClient.java b/custos-client/src/main/java/org/apache/custos/client/authentication/service/AuthenticationServiceClient.java
index 7ef7cf4..4fc0444 100644
--- a/custos-client/src/main/java/org/apache/custos/client/authentication/service/AuthenticationServiceClient.java
+++ b/custos-client/src/main/java/org/apache/custos/client/authentication/service/AuthenticationServiceClient.java
@@ -8,7 +8,7 @@ import org.apache.thrift.transport.TSocket;
 import org.apache.thrift.transport.TTransport;
 import org.apache.thrift.transport.TTransportException;
 
-    public class AuthenticationServiceClient {
+public class AuthenticationServiceClient {
 
     public static CustosAuthenticationService.Client createAuthenticationServiceClient(String serverHost, int serverPort)  throws CustosAuthenticationServiceException {
         try {
diff --git a/custos-commons/src/main/java/org/apache/custos/commons/utils/ApplicationSettings.java b/custos-commons/src/main/java/org/apache/custos/commons/utils/ApplicationSettings.java
index e494120..fdcdf97 100644
--- a/custos-commons/src/main/java/org/apache/custos/commons/utils/ApplicationSettings.java
+++ b/custos-commons/src/main/java/org/apache/custos/commons/utils/ApplicationSettings.java
@@ -14,7 +14,7 @@ import java.util.*;
 import java.util.regex.Pattern;
 
 public class ApplicationSettings {
-    //private final static Logger logger = LoggerFactory.getLogger(ApplicationSettings.class);
+    private final static Logger logger = LoggerFactory.getLogger(ApplicationSettings.class);
     protected static ApplicationSettings INSTANCE;
     private Exception propertyLoadException;
     public static final String SERVER_PROPERTIES="custos-server.properties";
@@ -31,11 +31,11 @@ public class ApplicationSettings {
         URL url = getPropertyFileURL();
         try {
             properties.load(url.openStream());
-            //logger.info("Settings loaded from "+url.toString());
+            logger.info("Settings loaded from "+url.toString());
             URL[] externalSettingsFileURLs = getExternalSettingsFileURLs();
             for (URL externalSettings : externalSettingsFileURLs) {
                 mergeSettingsImpl(externalSettings.openStream());
-                //logger.info("External settings merged from "+url.toString());
+                logger.info("External settings merged from "+url.toString());
             }
         } catch (Exception e) {
             propertyLoadException=e;
@@ -54,7 +54,7 @@ public class ApplicationSettings {
             for (String externalSettingFile : externalSettingFiles) {
                 URL externalSettingFileURL = ApplicationSettings.loadFile(externalSettingFile);
                 if (externalSettingFileURL==null){
-                    //logger.warn("Could not file external settings file "+externalSettingFile);
+                    logger.warn("Could not file external settings file "+externalSettingFile);
                 }else{
                     externalSettingsFileURLs.add(externalSettingFileURL);
                 }
@@ -81,7 +81,7 @@ public class ApplicationSettings {
                     return asfile.toURI().toURL();
                 }
             } catch (MalformedURLException e) {
-                //logger.error("Error parsing the file from custos.config.dir", custosConfigDir);
+                logger.error("Error parsing the file from custos.config.dir", custosConfigDir);
             }
         }
 
@@ -114,7 +114,7 @@ public class ApplicationSettings {
                 throw new ApplicationSettingsException(url.getPath(), e);
             }
         }else{
-            //logger.warn("Properties cannot be updated to location "+url.toString());
+            logger.warn("Properties cannot be updated to location "+url.toString());
         }
     }
     private String getSettingImpl(String key, String defaultValue){
diff --git a/custos-profile-service/profile-service-commons/src/main/java/org/apache/custos/profile/commons/user/entities/CustomizedDashboardEntity.java b/custos-profile-service/profile-service-commons/src/main/java/org/apache/custos/profile/commons/user/entities/CustomizedDashboardEntity.java
deleted file mode 100644
index d92cc25..0000000
--- a/custos-profile-service/profile-service-commons/src/main/java/org/apache/custos/profile/commons/user/entities/CustomizedDashboardEntity.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-package org.apache.custos.profile.commons.user.entities;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = "CUSTOMIZED_DASHBOARD")
-public class CustomizedDashboardEntity {
-
-    private String custosInternalUserId;
-    private String experimentId;
-    private String name;
-    private String description;
-    private String project;
-    private String owner;
-    private String application;
-    private String computeResource;
-    private String jobName;
-    private String jobId;
-    private String jobStatus;
-    private String jobCreationTime;
-    private String notificationsTo;
-    private String workingDir;
-    private String jobDescription;
-    private String creationTime;
-    private String lastModifiedTime;
-    private String wallTime;
-    private String cpuCount;
-    private String nodeCount;
-    private String queue;
-    private String inputs;
-    private String outputs;
-    private String storageDir;
-    private String errors;
-
-    private UserProfileEntity userProfileEntity;
-
-    @Id
-    @Column(name = "CUSTOS_INTERNAL_USER_ID")
-    public String getCustosInternalUserId() {
-        return custosInternalUserId;
-    }
-
-    public void setCustosInternalUserId(String custosInternalUserId) {
-        this.custosInternalUserId = custosInternalUserId;
-    }
-
-    @Column(name = "ENABLED_EXPERIMENT_ID")
-    public String getExperimentId() {
-        return experimentId;
-    }
-
-    public void setExperimentId(String experimentId) {
-        this.experimentId = experimentId;
-    }
-
-    @Column(name = "ENABLED_NAME")
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    @Column(name = "ENABLED_DESCRIPTION")
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    @Column(name = "ENABLED_PROJECT")
-    public String getProject() {
-        return project;
-    }
-
-    public void setProject(String project) {
-        this.project = project;
-    }
-
-    @Column(name = "ENABLED_OWNER")
-    public String getOwner() {
-        return owner;
-    }
-
-    public void setOwner(String owner) {
-        this.owner = owner;
-    }
-
-    @Column(name = "ENABLED_APPLICATION")
-    public String getApplication() {
-        return application;
-    }
-
-    public void setApplication(String application) {
-        this.application = application;
-    }
-
-    @Column(name = "ENABLED_COMPUTE_RESOURCE")
-    public String getComputeResource() {
-        return computeResource;
-    }
-
-    public void setComputeResource(String computeResource) {
-        this.computeResource = computeResource;
-    }
-
-    @Column(name = "ENABLED_JOB_NAME")
-    public String getJobName() {
-        return jobName;
-    }
-
-    public void setJobName(String jobName) {
-        this.jobName = jobName;
-    }
-
-    @Column(name = "ENABLED_JOB_ID")
-    public String getJobId() {
-        return jobId;
-    }
-
-    public void setJobId(String jobId) {
-        this.jobId = jobId;
-    }
-
-    @Column(name = "ENABLED_JOB_STATUS")
-    public String getJobStatus() {
-        return jobStatus;
-    }
-
-    public void setJobStatus(String jobStatus) {
-        this.jobStatus = jobStatus;
-    }
-
-    @Column(name = "ENABLED_JOB_CREATION_TIME")
-    public String getJobCreationTime() {
-        return jobCreationTime;
-    }
-
-    public void setJobCreationTime(String jobCreationTime) {
-        this.jobCreationTime = jobCreationTime;
-    }
-
-    @Column(name = "ENABLED_NOTIFICATIONS_TO")
-    public String getNotificationsTo() {
-        return notificationsTo;
-    }
-
-    public void setNotificationsTo(String notificationsTo) {
-        this.notificationsTo = notificationsTo;
-    }
-
-    @Column(name = "ENABLED_WORKING_DIR")
-    public String getWorkingDir() {
-        return workingDir;
-    }
-
-    public void setWorkingDir(String workingDir) {
-        this.workingDir = workingDir;
-    }
-
-    @Column(name = "ENABLED_JOB_DESCRIPTION")
-    public String getJobDescription() {
-        return jobDescription;
-    }
-
-    public void setJobDescription(String jobDescription) {
-        this.jobDescription = jobDescription;
-    }
-
-    @Column(name = "ENABLED_CREATION_TIME")
-    public String getCreationTime() {
-        return creationTime;
-    }
-
-    public void setCreationTime(String creationTime) {
-        this.creationTime = creationTime;
-    }
-
-    @Column(name = "ENABLED_LAST_MODIFIED_TIME")
-    public String getLastModifiedTime() {
-        return lastModifiedTime;
-    }
-
-    public void setLastModifiedTime(String lastModifiedTime) {
-        this.lastModifiedTime = lastModifiedTime;
-    }
-
-    @Column(name = "ENABLED_WALL_TIME")
-    public String getWallTime() {
-        return wallTime;
-    }
-
-    public void setWallTime(String wallTime) {
-        this.wallTime = wallTime;
-    }
-
-    @Column(name = "ENABLED_CPU_COUNT")
-    public String getCpuCount() {
-        return cpuCount;
-    }
-
-    public void setCpuCount(String cpuCount) {
-        this.cpuCount = cpuCount;
-    }
-
-    @Column(name = "ENABLED_NODE_COUNT")
-    public String getNodeCount() {
-        return nodeCount;
-    }
-
-    public void setNodeCount(String nodeCount) {
-        this.nodeCount = nodeCount;
-    }
-
-    @Column(name = "ENABLED_QUEUE")
-    public String getQueue() {
-        return queue;
-    }
-
-    public void setQueue(String queue) {
-        this.queue = queue;
-    }
-
-    @Column(name = "ENABLED_INPUTS")
-    public String getInputs() {
-        return inputs;
-    }
-
-    public void setInputs(String inputs) {
-        this.inputs = inputs;
-    }
-
-    @Column(name = "ENABLED_OUTPUTS")
-    public String getOutputs() {
-        return outputs;
-    }
-
-    public void setOutputs(String outputs) {
-        this.outputs = outputs;
-    }
-
-    @Column(name = "ENABLED_STORAGE_DIR")
-    public String getStorageDir() {
-        return storageDir;
-    }
-
-    public void setStorageDir(String storageDir) {
-        this.storageDir = storageDir;
-    }
-
-    @Column(name = "ENABLED_ERRORS")
-    public String getErrors() {
-        return errors;
-    }
-
-    public void setErrors(String errors) {
-        this.errors = errors;
-    }
-
-    @OneToOne(targetEntity = UserProfileEntity.class, cascade = CascadeType.ALL)
-    @PrimaryKeyJoinColumn(name = "CUSTOS_INTERNAL_USER_ID", referencedColumnName = "CUSTOS_INTERNAL_USER_ID")
-    public UserProfileEntity getUserProfileEntity() {
-        return userProfileEntity;
-    }
-
-    public void setUserProfileEntity(UserProfileEntity userProfileEntity) {
-        this.userProfileEntity = userProfileEntity;
-    }
-
-    @Override
-    public String toString() {
-        return "CustomizedDashboardEntity{" +
-                "custosInternalUserId='" + custosInternalUserId + '\'' +
-                ", experimentId='" + experimentId + '\'' +
-                ", name='" + name + '\'' +
-                ", description='" + description + '\'' +
-                ", project='" + project + '\'' +
-                ", owner='" + owner + '\'' +
-                ", application='" + application + '\'' +
-                ", computeResource='" + computeResource + '\'' +
-                ", jobName='" + jobName + '\'' +
-                ", jobId='" + jobId + '\'' +
-                ", jobStatus='" + jobStatus + '\'' +
-                ", jobCreationTime='" + jobCreationTime + '\'' +
-                ", notificationsTo='" + notificationsTo + '\'' +
-                ", workingDir='" + workingDir + '\'' +
-                ", jobDescription='" + jobDescription + '\'' +
-                ", creationTime='" + creationTime + '\'' +
-                ", lastModifiedTime='" + lastModifiedTime + '\'' +
-                ", wallTime='" + wallTime + '\'' +
-                ", cpuCount='" + cpuCount + '\'' +
-                ", nodeCount='" + nodeCount + '\'' +
-                ", queue='" + queue + '\'' +
-                ", inputs='" + inputs + '\'' +
-                ", outputs='" + outputs + '\'' +
-                ", storageDir='" + storageDir + '\'' +
-                ", errors='" + errors + '\'' +
-                '}';
-    }
-}
diff --git a/custos-profile-service/profile-service-commons/src/main/java/org/apache/custos/profile/commons/user/entities/UserProfileEntity.java b/custos-profile-service/profile-service-commons/src/main/java/org/apache/custos/profile/commons/user/entities/UserProfileEntity.java
index 04f3265..6a69b7f 100644
--- a/custos-profile-service/profile-service-commons/src/main/java/org/apache/custos/profile/commons/user/entities/UserProfileEntity.java
+++ b/custos-profile-service/profile-service-commons/src/main/java/org/apache/custos/profile/commons/user/entities/UserProfileEntity.java
@@ -53,7 +53,6 @@ public class UserProfileEntity {
     private List<String> emails;
     private List<String> phones;
     private NSFDemographicsEntity nsfDemographics;
-    private CustomizedDashboardEntity customizedDashboardEntity;
 
     @Id
     @Column(name = "CUSTOS_INTERNAL_USER_ID")
@@ -292,16 +291,6 @@ public class UserProfileEntity {
         this.nsfDemographics = nsfDemographics;
     }
 
-    @OneToOne(targetEntity = CustomizedDashboardEntity.class, cascade = CascadeType.ALL,
-            mappedBy = "userProfileEntity", fetch = FetchType.EAGER)
-    public CustomizedDashboardEntity getCustomizedDashboardEntity() {
-        return customizedDashboardEntity;
-    }
-
-    public void setCustomizedDashboardEntity(CustomizedDashboardEntity customizedDashboardEntity) {
-        this.customizedDashboardEntity = customizedDashboardEntity;
-    }
-
     @PrePersist
     void createdAt() {
         this.creationTime = this.lastAccessTime = new Date();
diff --git a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/CustomDashboard.java b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/CustomDashboard.java
deleted file mode 100644
index 0799843..0000000
--- a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/CustomDashboard.java
+++ /dev/null
@@ -1,2912 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.10.0)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.custos.profile.model.user;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-/**
- * A structure holding the cutomized admin dashboard information.
- * 
- * 
- */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
-public class CustomDashboard implements org.apache.thrift.TBase<CustomDashboard, CustomDashboard._Fields>, java.io.Serializable, Cloneable, Comparable<CustomDashboard> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CustomDashboard");
-
-  private static final org.apache.thrift.protocol.TField AIRAVATA_INTERNAL_USER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataInternalUserId", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField PROJECT_FIELD_DESC = new org.apache.thrift.protocol.TField("project", org.apache.thrift.protocol.TType.STRING, (short)5);
-  private static final org.apache.thrift.protocol.TField OWNER_FIELD_DESC = new org.apache.thrift.protocol.TField("owner", org.apache.thrift.protocol.TType.STRING, (short)6);
-  private static final org.apache.thrift.protocol.TField APPLICATION_FIELD_DESC = new org.apache.thrift.protocol.TField("application", org.apache.thrift.protocol.TType.STRING, (short)7);
-  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResource", org.apache.thrift.protocol.TType.STRING, (short)8);
-  private static final org.apache.thrift.protocol.TField JOB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("jobName", org.apache.thrift.protocol.TType.STRING, (short)9);
-  private static final org.apache.thrift.protocol.TField JOB_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("jobId", org.apache.thrift.protocol.TType.STRING, (short)10);
-  private static final org.apache.thrift.protocol.TField JOB_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobStatus", org.apache.thrift.protocol.TType.STRING, (short)11);
-  private static final org.apache.thrift.protocol.TField JOB_CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("jobCreationTime", org.apache.thrift.protocol.TType.STRING, (short)12);
-  private static final org.apache.thrift.protocol.TField NOTIFICATIONS_TO_FIELD_DESC = new org.apache.thrift.protocol.TField("notificationsTo", org.apache.thrift.protocol.TType.STRING, (short)13);
-  private static final org.apache.thrift.protocol.TField WORKING_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("workingDir", org.apache.thrift.protocol.TType.STRING, (short)14);
-  private static final org.apache.thrift.protocol.TField JOB_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("jobDescription", org.apache.thrift.protocol.TType.STRING, (short)15);
-  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.STRING, (short)16);
-  private static final org.apache.thrift.protocol.TField LAST_MODIFIED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastModifiedTime", org.apache.thrift.protocol.TType.STRING, (short)17);
-  private static final org.apache.thrift.protocol.TField WALL_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("wallTime", org.apache.thrift.protocol.TType.STRING, (short)18);
-  private static final org.apache.thrift.protocol.TField CPU_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("cpuCount", org.apache.thrift.protocol.TType.STRING, (short)19);
-  private static final org.apache.thrift.protocol.TField NODE_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("nodeCount", org.apache.thrift.protocol.TType.STRING, (short)20);
-  private static final org.apache.thrift.protocol.TField QUEUE_FIELD_DESC = new org.apache.thrift.protocol.TField("queue", org.apache.thrift.protocol.TType.STRING, (short)21);
-  private static final org.apache.thrift.protocol.TField INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("inputs", org.apache.thrift.protocol.TType.STRING, (short)22);
-  private static final org.apache.thrift.protocol.TField OUTPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("outputs", org.apache.thrift.protocol.TType.STRING, (short)23);
-  private static final org.apache.thrift.protocol.TField STORAGE_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("storageDir", org.apache.thrift.protocol.TType.STRING, (short)24);
-  private static final org.apache.thrift.protocol.TField ERRORS_FIELD_DESC = new org.apache.thrift.protocol.TField("errors", org.apache.thrift.protocol.TType.STRING, (short)25);
-
-  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new CustomDashboardStandardSchemeFactory();
-  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new CustomDashboardTupleSchemeFactory();
-
-  private String airavataInternalUserId; // required
-  private String experimentId; // optional
-  private String name; // optional
-  private String description; // optional
-  private String project; // optional
-  private String owner; // optional
-  private String application; // optional
-  private String computeResource; // optional
-  private String jobName; // optional
-  private String jobId; // optional
-  private String jobStatus; // optional
-  private String jobCreationTime; // optional
-  private String notificationsTo; // optional
-  private String workingDir; // optional
-  private String jobDescription; // optional
-  private String creationTime; // optional
-  private String lastModifiedTime; // optional
-  private String wallTime; // optional
-  private String cpuCount; // optional
-  private String nodeCount; // optional
-  private String queue; // optional
-  private String inputs; // optional
-  private String outputs; // optional
-  private String storageDir; // optional
-  private String errors; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    AIRAVATA_INTERNAL_USER_ID((short)1, "airavataInternalUserId"),
-    EXPERIMENT_ID((short)2, "experimentId"),
-    NAME((short)3, "name"),
-    DESCRIPTION((short)4, "description"),
-    PROJECT((short)5, "project"),
-    OWNER((short)6, "owner"),
-    APPLICATION((short)7, "application"),
-    COMPUTE_RESOURCE((short)8, "computeResource"),
-    JOB_NAME((short)9, "jobName"),
-    JOB_ID((short)10, "jobId"),
-    JOB_STATUS((short)11, "jobStatus"),
-    JOB_CREATION_TIME((short)12, "jobCreationTime"),
-    NOTIFICATIONS_TO((short)13, "notificationsTo"),
-    WORKING_DIR((short)14, "workingDir"),
-    JOB_DESCRIPTION((short)15, "jobDescription"),
-    CREATION_TIME((short)16, "creationTime"),
-    LAST_MODIFIED_TIME((short)17, "lastModifiedTime"),
-    WALL_TIME((short)18, "wallTime"),
-    CPU_COUNT((short)19, "cpuCount"),
-    NODE_COUNT((short)20, "nodeCount"),
-    QUEUE((short)21, "queue"),
-    INPUTS((short)22, "inputs"),
-    OUTPUTS((short)23, "outputs"),
-    STORAGE_DIR((short)24, "storageDir"),
-    ERRORS((short)25, "errors");
-
-    private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
-
-    static {
-      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
-        byName.put(field.getFieldName(), field);
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, or null if its not found.
-     */
-    public static _Fields findByThriftId(int fieldId) {
-      switch(fieldId) {
-        case 1: // AIRAVATA_INTERNAL_USER_ID
-          return AIRAVATA_INTERNAL_USER_ID;
-        case 2: // EXPERIMENT_ID
-          return EXPERIMENT_ID;
-        case 3: // NAME
-          return NAME;
-        case 4: // DESCRIPTION
-          return DESCRIPTION;
-        case 5: // PROJECT
-          return PROJECT;
-        case 6: // OWNER
-          return OWNER;
-        case 7: // APPLICATION
-          return APPLICATION;
-        case 8: // COMPUTE_RESOURCE
-          return COMPUTE_RESOURCE;
-        case 9: // JOB_NAME
-          return JOB_NAME;
-        case 10: // JOB_ID
-          return JOB_ID;
-        case 11: // JOB_STATUS
-          return JOB_STATUS;
-        case 12: // JOB_CREATION_TIME
-          return JOB_CREATION_TIME;
-        case 13: // NOTIFICATIONS_TO
-          return NOTIFICATIONS_TO;
-        case 14: // WORKING_DIR
-          return WORKING_DIR;
-        case 15: // JOB_DESCRIPTION
-          return JOB_DESCRIPTION;
-        case 16: // CREATION_TIME
-          return CREATION_TIME;
-        case 17: // LAST_MODIFIED_TIME
-          return LAST_MODIFIED_TIME;
-        case 18: // WALL_TIME
-          return WALL_TIME;
-        case 19: // CPU_COUNT
-          return CPU_COUNT;
-        case 20: // NODE_COUNT
-          return NODE_COUNT;
-        case 21: // QUEUE
-          return QUEUE;
-        case 22: // INPUTS
-          return INPUTS;
-        case 23: // OUTPUTS
-          return OUTPUTS;
-        case 24: // STORAGE_DIR
-          return STORAGE_DIR;
-        case 25: // ERRORS
-          return ERRORS;
-        default:
-          return null;
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, throwing an exception
-     * if it is not found.
-     */
-    public static _Fields findByThriftIdOrThrow(int fieldId) {
-      _Fields fields = findByThriftId(fieldId);
-      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
-      return fields;
-    }
-
-    /**
-     * Find the _Fields constant that matches name, or null if its not found.
-     */
-    public static _Fields findByName(String name) {
-      return byName.get(name);
-    }
-
-    private final short _thriftId;
-    private final String _fieldName;
-
-    _Fields(short thriftId, String fieldName) {
-      _thriftId = thriftId;
-      _fieldName = fieldName;
-    }
-
-    public short getThriftFieldId() {
-      return _thriftId;
-    }
-
-    public String getFieldName() {
-      return _fieldName;
-    }
-  }
-
-  // isset id assignments
-  private static final _Fields optionals[] = {_Fields.EXPERIMENT_ID, _Fields.NAME, _Fields.DESCRIPTION, _Fields.PROJECT, _Fields.OWNER, _Fields.APPLICATION, _Fields.COMPUTE_RESOURCE, _Fields.JOB_NAME, _Fields.JOB_ID, _Fields.JOB_STATUS, _Fields.JOB_CREATION_TIME, _Fields.NOTIFICATIONS_TO, _Fields.WORKING_DIR, _Fields.JOB_DESCRIPTION, _Fields.CREATION_TIME, _Fields.LAST_MODIFIED_TIME, _Fields.WALL_TIME, _Fields.CPU_COUNT, _Fields.NODE_COUNT, _Fields.QUEUE, _Fields.INPUTS, _Fields.OUTPUTS, [...]
-  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
-  static {
-    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.AIRAVATA_INTERNAL_USER_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataInternalUserId", org.apache.thrift.TFieldRequirementType.REQUIRED,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("experimentId", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("description", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PROJECT, new org.apache.thrift.meta_data.FieldMetaData("project", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.OWNER, new org.apache.thrift.meta_data.FieldMetaData("owner", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.APPLICATION, new org.apache.thrift.meta_data.FieldMetaData("application", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.COMPUTE_RESOURCE, new org.apache.thrift.meta_data.FieldMetaData("computeResource", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.JOB_NAME, new org.apache.thrift.meta_data.FieldMetaData("jobName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.JOB_ID, new org.apache.thrift.meta_data.FieldMetaData("jobId", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.JOB_STATUS, new org.apache.thrift.meta_data.FieldMetaData("jobStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.JOB_CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("jobCreationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NOTIFICATIONS_TO, new org.apache.thrift.meta_data.FieldMetaData("notificationsTo", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.WORKING_DIR, new org.apache.thrift.meta_data.FieldMetaData("workingDir", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.JOB_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("jobDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.LAST_MODIFIED_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastModifiedTime", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.WALL_TIME, new org.apache.thrift.meta_data.FieldMetaData("wallTime", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.CPU_COUNT, new org.apache.thrift.meta_data.FieldMetaData("cpuCount", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NODE_COUNT, new org.apache.thrift.meta_data.FieldMetaData("nodeCount", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.QUEUE, new org.apache.thrift.meta_data.FieldMetaData("queue", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.INPUTS, new org.apache.thrift.meta_data.FieldMetaData("inputs", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.OUTPUTS, new org.apache.thrift.meta_data.FieldMetaData("outputs", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.STORAGE_DIR, new org.apache.thrift.meta_data.FieldMetaData("storageDir", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.ERRORS, new org.apache.thrift.meta_data.FieldMetaData("errors", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CustomDashboard.class, metaDataMap);
-  }
-
-  public CustomDashboard() {
-    this.airavataInternalUserId = "DO_NOT_SET_AT_CLIENTS";
-
-  }
-
-  public CustomDashboard(
-    String airavataInternalUserId)
-  {
-    this();
-    this.airavataInternalUserId = airavataInternalUserId;
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public CustomDashboard(CustomDashboard other) {
-    if (other.isSetAiravataInternalUserId()) {
-      this.airavataInternalUserId = other.airavataInternalUserId;
-    }
-    if (other.isSetExperimentId()) {
-      this.experimentId = other.experimentId;
-    }
-    if (other.isSetName()) {
-      this.name = other.name;
-    }
-    if (other.isSetDescription()) {
-      this.description = other.description;
-    }
-    if (other.isSetProject()) {
-      this.project = other.project;
-    }
-    if (other.isSetOwner()) {
-      this.owner = other.owner;
-    }
-    if (other.isSetApplication()) {
-      this.application = other.application;
-    }
-    if (other.isSetComputeResource()) {
-      this.computeResource = other.computeResource;
-    }
-    if (other.isSetJobName()) {
-      this.jobName = other.jobName;
-    }
-    if (other.isSetJobId()) {
-      this.jobId = other.jobId;
-    }
-    if (other.isSetJobStatus()) {
-      this.jobStatus = other.jobStatus;
-    }
-    if (other.isSetJobCreationTime()) {
-      this.jobCreationTime = other.jobCreationTime;
-    }
-    if (other.isSetNotificationsTo()) {
-      this.notificationsTo = other.notificationsTo;
-    }
-    if (other.isSetWorkingDir()) {
-      this.workingDir = other.workingDir;
-    }
-    if (other.isSetJobDescription()) {
-      this.jobDescription = other.jobDescription;
-    }
-    if (other.isSetCreationTime()) {
-      this.creationTime = other.creationTime;
-    }
-    if (other.isSetLastModifiedTime()) {
-      this.lastModifiedTime = other.lastModifiedTime;
-    }
-    if (other.isSetWallTime()) {
-      this.wallTime = other.wallTime;
-    }
-    if (other.isSetCpuCount()) {
-      this.cpuCount = other.cpuCount;
-    }
-    if (other.isSetNodeCount()) {
-      this.nodeCount = other.nodeCount;
-    }
-    if (other.isSetQueue()) {
-      this.queue = other.queue;
-    }
-    if (other.isSetInputs()) {
-      this.inputs = other.inputs;
-    }
-    if (other.isSetOutputs()) {
-      this.outputs = other.outputs;
-    }
-    if (other.isSetStorageDir()) {
-      this.storageDir = other.storageDir;
-    }
-    if (other.isSetErrors()) {
-      this.errors = other.errors;
-    }
-  }
-
-  public CustomDashboard deepCopy() {
-    return new CustomDashboard(this);
-  }
-
-  @Override
-  public void clear() {
-    this.airavataInternalUserId = "DO_NOT_SET_AT_CLIENTS";
-
-    this.experimentId = null;
-    this.name = null;
-    this.description = null;
-    this.project = null;
-    this.owner = null;
-    this.application = null;
-    this.computeResource = null;
-    this.jobName = null;
-    this.jobId = null;
-    this.jobStatus = null;
-    this.jobCreationTime = null;
-    this.notificationsTo = null;
-    this.workingDir = null;
-    this.jobDescription = null;
-    this.creationTime = null;
-    this.lastModifiedTime = null;
-    this.wallTime = null;
-    this.cpuCount = null;
-    this.nodeCount = null;
-    this.queue = null;
-    this.inputs = null;
-    this.outputs = null;
-    this.storageDir = null;
-    this.errors = null;
-  }
-
-  public String getAiravataInternalUserId() {
-    return this.airavataInternalUserId;
-  }
-
-  public void setAiravataInternalUserId(String airavataInternalUserId) {
-    this.airavataInternalUserId = airavataInternalUserId;
-  }
-
-  public void unsetAiravataInternalUserId() {
-    this.airavataInternalUserId = null;
-  }
-
-  /** Returns true if field airavataInternalUserId is set (has been assigned a value) and false otherwise */
-  public boolean isSetAiravataInternalUserId() {
-    return this.airavataInternalUserId != null;
-  }
-
-  public void setAiravataInternalUserIdIsSet(boolean value) {
-    if (!value) {
-      this.airavataInternalUserId = null;
-    }
-  }
-
-  public String getExperimentId() {
-    return this.experimentId;
-  }
-
-  public void setExperimentId(String experimentId) {
-    this.experimentId = experimentId;
-  }
-
-  public void unsetExperimentId() {
-    this.experimentId = null;
-  }
-
-  /** Returns true if field experimentId is set (has been assigned a value) and false otherwise */
-  public boolean isSetExperimentId() {
-    return this.experimentId != null;
-  }
-
-  public void setExperimentIdIsSet(boolean value) {
-    if (!value) {
-      this.experimentId = null;
-    }
-  }
-
-  public String getName() {
-    return this.name;
-  }
-
-  public void setName(String name) {
-    this.name = name;
-  }
-
-  public void unsetName() {
-    this.name = null;
-  }
-
-  /** Returns true if field name is set (has been assigned a value) and false otherwise */
-  public boolean isSetName() {
-    return this.name != null;
-  }
-
-  public void setNameIsSet(boolean value) {
-    if (!value) {
-      this.name = null;
-    }
-  }
-
-  public String getDescription() {
-    return this.description;
-  }
-
-  public void setDescription(String description) {
-    this.description = description;
-  }
-
-  public void unsetDescription() {
-    this.description = null;
-  }
-
-  /** Returns true if field description is set (has been assigned a value) and false otherwise */
-  public boolean isSetDescription() {
-    return this.description != null;
-  }
-
-  public void setDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.description = null;
-    }
-  }
-
-  public String getProject() {
-    return this.project;
-  }
-
-  public void setProject(String project) {
-    this.project = project;
-  }
-
-  public void unsetProject() {
-    this.project = null;
-  }
-
-  /** Returns true if field project is set (has been assigned a value) and false otherwise */
-  public boolean isSetProject() {
-    return this.project != null;
-  }
-
-  public void setProjectIsSet(boolean value) {
-    if (!value) {
-      this.project = null;
-    }
-  }
-
-  public String getOwner() {
-    return this.owner;
-  }
-
-  public void setOwner(String owner) {
-    this.owner = owner;
-  }
-
-  public void unsetOwner() {
-    this.owner = null;
-  }
-
-  /** Returns true if field owner is set (has been assigned a value) and false otherwise */
-  public boolean isSetOwner() {
-    return this.owner != null;
-  }
-
-  public void setOwnerIsSet(boolean value) {
-    if (!value) {
-      this.owner = null;
-    }
-  }
-
-  public String getApplication() {
-    return this.application;
-  }
-
-  public void setApplication(String application) {
-    this.application = application;
-  }
-
-  public void unsetApplication() {
-    this.application = null;
-  }
-
-  /** Returns true if field application is set (has been assigned a value) and false otherwise */
-  public boolean isSetApplication() {
-    return this.application != null;
-  }
-
-  public void setApplicationIsSet(boolean value) {
-    if (!value) {
-      this.application = null;
-    }
-  }
-
-  public String getComputeResource() {
-    return this.computeResource;
-  }
-
-  public void setComputeResource(String computeResource) {
-    this.computeResource = computeResource;
-  }
-
-  public void unsetComputeResource() {
-    this.computeResource = null;
-  }
-
-  /** Returns true if field computeResource is set (has been assigned a value) and false otherwise */
-  public boolean isSetComputeResource() {
-    return this.computeResource != null;
-  }
-
-  public void setComputeResourceIsSet(boolean value) {
-    if (!value) {
-      this.computeResource = null;
-    }
-  }
-
-  public String getJobName() {
-    return this.jobName;
-  }
-
-  public void setJobName(String jobName) {
-    this.jobName = jobName;
-  }
-
-  public void unsetJobName() {
-    this.jobName = null;
-  }
-
-  /** Returns true if field jobName is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobName() {
-    return this.jobName != null;
-  }
-
-  public void setJobNameIsSet(boolean value) {
-    if (!value) {
-      this.jobName = null;
-    }
-  }
-
-  public String getJobId() {
-    return this.jobId;
-  }
-
-  public void setJobId(String jobId) {
-    this.jobId = jobId;
-  }
-
-  public void unsetJobId() {
-    this.jobId = null;
-  }
-
-  /** Returns true if field jobId is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobId() {
-    return this.jobId != null;
-  }
-
-  public void setJobIdIsSet(boolean value) {
-    if (!value) {
-      this.jobId = null;
-    }
-  }
-
-  public String getJobStatus() {
-    return this.jobStatus;
-  }
-
-  public void setJobStatus(String jobStatus) {
-    this.jobStatus = jobStatus;
-  }
-
-  public void unsetJobStatus() {
-    this.jobStatus = null;
-  }
-
-  /** Returns true if field jobStatus is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobStatus() {
-    return this.jobStatus != null;
-  }
-
-  public void setJobStatusIsSet(boolean value) {
-    if (!value) {
-      this.jobStatus = null;
-    }
-  }
-
-  public String getJobCreationTime() {
-    return this.jobCreationTime;
-  }
-
-  public void setJobCreationTime(String jobCreationTime) {
-    this.jobCreationTime = jobCreationTime;
-  }
-
-  public void unsetJobCreationTime() {
-    this.jobCreationTime = null;
-  }
-
-  /** Returns true if field jobCreationTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobCreationTime() {
-    return this.jobCreationTime != null;
-  }
-
-  public void setJobCreationTimeIsSet(boolean value) {
-    if (!value) {
-      this.jobCreationTime = null;
-    }
-  }
-
-  public String getNotificationsTo() {
-    return this.notificationsTo;
-  }
-
-  public void setNotificationsTo(String notificationsTo) {
-    this.notificationsTo = notificationsTo;
-  }
-
-  public void unsetNotificationsTo() {
-    this.notificationsTo = null;
-  }
-
-  /** Returns true if field notificationsTo is set (has been assigned a value) and false otherwise */
-  public boolean isSetNotificationsTo() {
-    return this.notificationsTo != null;
-  }
-
-  public void setNotificationsToIsSet(boolean value) {
-    if (!value) {
-      this.notificationsTo = null;
-    }
-  }
-
-  public String getWorkingDir() {
-    return this.workingDir;
-  }
-
-  public void setWorkingDir(String workingDir) {
-    this.workingDir = workingDir;
-  }
-
-  public void unsetWorkingDir() {
-    this.workingDir = null;
-  }
-
-  /** Returns true if field workingDir is set (has been assigned a value) and false otherwise */
-  public boolean isSetWorkingDir() {
-    return this.workingDir != null;
-  }
-
-  public void setWorkingDirIsSet(boolean value) {
-    if (!value) {
-      this.workingDir = null;
-    }
-  }
-
-  public String getJobDescription() {
-    return this.jobDescription;
-  }
-
-  public void setJobDescription(String jobDescription) {
-    this.jobDescription = jobDescription;
-  }
-
-  public void unsetJobDescription() {
-    this.jobDescription = null;
-  }
-
-  /** Returns true if field jobDescription is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobDescription() {
-    return this.jobDescription != null;
-  }
-
-  public void setJobDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.jobDescription = null;
-    }
-  }
-
-  public String getCreationTime() {
-    return this.creationTime;
-  }
-
-  public void setCreationTime(String creationTime) {
-    this.creationTime = creationTime;
-  }
-
-  public void unsetCreationTime() {
-    this.creationTime = null;
-  }
-
-  /** Returns true if field creationTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetCreationTime() {
-    return this.creationTime != null;
-  }
-
-  public void setCreationTimeIsSet(boolean value) {
-    if (!value) {
-      this.creationTime = null;
-    }
-  }
-
-  public String getLastModifiedTime() {
-    return this.lastModifiedTime;
-  }
-
-  public void setLastModifiedTime(String lastModifiedTime) {
-    this.lastModifiedTime = lastModifiedTime;
-  }
-
-  public void unsetLastModifiedTime() {
-    this.lastModifiedTime = null;
-  }
-
-  /** Returns true if field lastModifiedTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetLastModifiedTime() {
-    return this.lastModifiedTime != null;
-  }
-
-  public void setLastModifiedTimeIsSet(boolean value) {
-    if (!value) {
-      this.lastModifiedTime = null;
-    }
-  }
-
-  public String getWallTime() {
-    return this.wallTime;
-  }
-
-  public void setWallTime(String wallTime) {
-    this.wallTime = wallTime;
-  }
-
-  public void unsetWallTime() {
-    this.wallTime = null;
-  }
-
-  /** Returns true if field wallTime is set (has been assigned a value) and false otherwise */
-  public boolean isSetWallTime() {
-    return this.wallTime != null;
-  }
-
-  public void setWallTimeIsSet(boolean value) {
-    if (!value) {
-      this.wallTime = null;
-    }
-  }
-
-  public String getCpuCount() {
-    return this.cpuCount;
-  }
-
-  public void setCpuCount(String cpuCount) {
-    this.cpuCount = cpuCount;
-  }
-
-  public void unsetCpuCount() {
-    this.cpuCount = null;
-  }
-
-  /** Returns true if field cpuCount is set (has been assigned a value) and false otherwise */
-  public boolean isSetCpuCount() {
-    return this.cpuCount != null;
-  }
-
-  public void setCpuCountIsSet(boolean value) {
-    if (!value) {
-      this.cpuCount = null;
-    }
-  }
-
-  public String getNodeCount() {
-    return this.nodeCount;
-  }
-
-  public void setNodeCount(String nodeCount) {
-    this.nodeCount = nodeCount;
-  }
-
-  public void unsetNodeCount() {
-    this.nodeCount = null;
-  }
-
-  /** Returns true if field nodeCount is set (has been assigned a value) and false otherwise */
-  public boolean isSetNodeCount() {
-    return this.nodeCount != null;
-  }
-
-  public void setNodeCountIsSet(boolean value) {
-    if (!value) {
-      this.nodeCount = null;
-    }
-  }
-
-  public String getQueue() {
-    return this.queue;
-  }
-
-  public void setQueue(String queue) {
-    this.queue = queue;
-  }
-
-  public void unsetQueue() {
-    this.queue = null;
-  }
-
-  /** Returns true if field queue is set (has been assigned a value) and false otherwise */
-  public boolean isSetQueue() {
-    return this.queue != null;
-  }
-
-  public void setQueueIsSet(boolean value) {
-    if (!value) {
-      this.queue = null;
-    }
-  }
-
-  public String getInputs() {
-    return this.inputs;
-  }
-
-  public void setInputs(String inputs) {
-    this.inputs = inputs;
-  }
-
-  public void unsetInputs() {
-    this.inputs = null;
-  }
-
-  /** Returns true if field inputs is set (has been assigned a value) and false otherwise */
-  public boolean isSetInputs() {
-    return this.inputs != null;
-  }
-
-  public void setInputsIsSet(boolean value) {
-    if (!value) {
-      this.inputs = null;
-    }
-  }
-
-  public String getOutputs() {
-    return this.outputs;
-  }
-
-  public void setOutputs(String outputs) {
-    this.outputs = outputs;
-  }
-
-  public void unsetOutputs() {
-    this.outputs = null;
-  }
-
-  /** Returns true if field outputs is set (has been assigned a value) and false otherwise */
-  public boolean isSetOutputs() {
-    return this.outputs != null;
-  }
-
-  public void setOutputsIsSet(boolean value) {
-    if (!value) {
-      this.outputs = null;
-    }
-  }
-
-  public String getStorageDir() {
-    return this.storageDir;
-  }
-
-  public void setStorageDir(String storageDir) {
-    this.storageDir = storageDir;
-  }
-
-  public void unsetStorageDir() {
-    this.storageDir = null;
-  }
-
-  /** Returns true if field storageDir is set (has been assigned a value) and false otherwise */
-  public boolean isSetStorageDir() {
-    return this.storageDir != null;
-  }
-
-  public void setStorageDirIsSet(boolean value) {
-    if (!value) {
-      this.storageDir = null;
-    }
-  }
-
-  public String getErrors() {
-    return this.errors;
-  }
-
-  public void setErrors(String errors) {
-    this.errors = errors;
-  }
-
-  public void unsetErrors() {
-    this.errors = null;
-  }
-
-  /** Returns true if field errors is set (has been assigned a value) and false otherwise */
-  public boolean isSetErrors() {
-    return this.errors != null;
-  }
-
-  public void setErrorsIsSet(boolean value) {
-    if (!value) {
-      this.errors = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case AIRAVATA_INTERNAL_USER_ID:
-      if (value == null) {
-        unsetAiravataInternalUserId();
-      } else {
-        setAiravataInternalUserId((String)value);
-      }
-      break;
-
-    case EXPERIMENT_ID:
-      if (value == null) {
-        unsetExperimentId();
-      } else {
-        setExperimentId((String)value);
-      }
-      break;
-
-    case NAME:
-      if (value == null) {
-        unsetName();
-      } else {
-        setName((String)value);
-      }
-      break;
-
-    case DESCRIPTION:
-      if (value == null) {
-        unsetDescription();
-      } else {
-        setDescription((String)value);
-      }
-      break;
-
-    case PROJECT:
-      if (value == null) {
-        unsetProject();
-      } else {
-        setProject((String)value);
-      }
-      break;
-
-    case OWNER:
-      if (value == null) {
-        unsetOwner();
-      } else {
-        setOwner((String)value);
-      }
-      break;
-
-    case APPLICATION:
-      if (value == null) {
-        unsetApplication();
-      } else {
-        setApplication((String)value);
-      }
-      break;
-
-    case COMPUTE_RESOURCE:
-      if (value == null) {
-        unsetComputeResource();
-      } else {
-        setComputeResource((String)value);
-      }
-      break;
-
-    case JOB_NAME:
-      if (value == null) {
-        unsetJobName();
-      } else {
-        setJobName((String)value);
-      }
-      break;
-
-    case JOB_ID:
-      if (value == null) {
-        unsetJobId();
-      } else {
-        setJobId((String)value);
-      }
-      break;
-
-    case JOB_STATUS:
-      if (value == null) {
-        unsetJobStatus();
-      } else {
-        setJobStatus((String)value);
-      }
-      break;
-
-    case JOB_CREATION_TIME:
-      if (value == null) {
-        unsetJobCreationTime();
-      } else {
-        setJobCreationTime((String)value);
-      }
-      break;
-
-    case NOTIFICATIONS_TO:
-      if (value == null) {
-        unsetNotificationsTo();
-      } else {
-        setNotificationsTo((String)value);
-      }
-      break;
-
-    case WORKING_DIR:
-      if (value == null) {
-        unsetWorkingDir();
-      } else {
-        setWorkingDir((String)value);
-      }
-      break;
-
-    case JOB_DESCRIPTION:
-      if (value == null) {
-        unsetJobDescription();
-      } else {
-        setJobDescription((String)value);
-      }
-      break;
-
-    case CREATION_TIME:
-      if (value == null) {
-        unsetCreationTime();
-      } else {
-        setCreationTime((String)value);
-      }
-      break;
-
-    case LAST_MODIFIED_TIME:
-      if (value == null) {
-        unsetLastModifiedTime();
-      } else {
-        setLastModifiedTime((String)value);
-      }
-      break;
-
-    case WALL_TIME:
-      if (value == null) {
-        unsetWallTime();
-      } else {
-        setWallTime((String)value);
-      }
-      break;
-
-    case CPU_COUNT:
-      if (value == null) {
-        unsetCpuCount();
-      } else {
-        setCpuCount((String)value);
-      }
-      break;
-
-    case NODE_COUNT:
-      if (value == null) {
-        unsetNodeCount();
-      } else {
-        setNodeCount((String)value);
-      }
-      break;
-
-    case QUEUE:
-      if (value == null) {
-        unsetQueue();
-      } else {
-        setQueue((String)value);
-      }
-      break;
-
-    case INPUTS:
-      if (value == null) {
-        unsetInputs();
-      } else {
-        setInputs((String)value);
-      }
-      break;
-
-    case OUTPUTS:
-      if (value == null) {
-        unsetOutputs();
-      } else {
-        setOutputs((String)value);
-      }
-      break;
-
-    case STORAGE_DIR:
-      if (value == null) {
-        unsetStorageDir();
-      } else {
-        setStorageDir((String)value);
-      }
-      break;
-
-    case ERRORS:
-      if (value == null) {
-        unsetErrors();
-      } else {
-        setErrors((String)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case AIRAVATA_INTERNAL_USER_ID:
-      return getAiravataInternalUserId();
-
-    case EXPERIMENT_ID:
-      return getExperimentId();
-
-    case NAME:
-      return getName();
-
-    case DESCRIPTION:
-      return getDescription();
-
-    case PROJECT:
-      return getProject();
-
-    case OWNER:
-      return getOwner();
-
-    case APPLICATION:
-      return getApplication();
-
-    case COMPUTE_RESOURCE:
-      return getComputeResource();
-
-    case JOB_NAME:
-      return getJobName();
-
-    case JOB_ID:
-      return getJobId();
-
-    case JOB_STATUS:
-      return getJobStatus();
-
-    case JOB_CREATION_TIME:
-      return getJobCreationTime();
-
-    case NOTIFICATIONS_TO:
-      return getNotificationsTo();
-
-    case WORKING_DIR:
-      return getWorkingDir();
-
-    case JOB_DESCRIPTION:
-      return getJobDescription();
-
-    case CREATION_TIME:
-      return getCreationTime();
-
-    case LAST_MODIFIED_TIME:
-      return getLastModifiedTime();
-
-    case WALL_TIME:
-      return getWallTime();
-
-    case CPU_COUNT:
-      return getCpuCount();
-
-    case NODE_COUNT:
-      return getNodeCount();
-
-    case QUEUE:
-      return getQueue();
-
-    case INPUTS:
-      return getInputs();
-
-    case OUTPUTS:
-      return getOutputs();
-
-    case STORAGE_DIR:
-      return getStorageDir();
-
-    case ERRORS:
-      return getErrors();
-
-    }
-    throw new IllegalStateException();
-  }
-
-  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
-  public boolean isSet(_Fields field) {
-    if (field == null) {
-      throw new IllegalArgumentException();
-    }
-
-    switch (field) {
-    case AIRAVATA_INTERNAL_USER_ID:
-      return isSetAiravataInternalUserId();
-    case EXPERIMENT_ID:
-      return isSetExperimentId();
-    case NAME:
-      return isSetName();
-    case DESCRIPTION:
-      return isSetDescription();
-    case PROJECT:
-      return isSetProject();
-    case OWNER:
-      return isSetOwner();
-    case APPLICATION:
-      return isSetApplication();
-    case COMPUTE_RESOURCE:
-      return isSetComputeResource();
-    case JOB_NAME:
-      return isSetJobName();
-    case JOB_ID:
-      return isSetJobId();
-    case JOB_STATUS:
-      return isSetJobStatus();
-    case JOB_CREATION_TIME:
-      return isSetJobCreationTime();
-    case NOTIFICATIONS_TO:
-      return isSetNotificationsTo();
-    case WORKING_DIR:
-      return isSetWorkingDir();
-    case JOB_DESCRIPTION:
-      return isSetJobDescription();
-    case CREATION_TIME:
-      return isSetCreationTime();
-    case LAST_MODIFIED_TIME:
-      return isSetLastModifiedTime();
-    case WALL_TIME:
-      return isSetWallTime();
-    case CPU_COUNT:
-      return isSetCpuCount();
-    case NODE_COUNT:
-      return isSetNodeCount();
-    case QUEUE:
-      return isSetQueue();
-    case INPUTS:
-      return isSetInputs();
-    case OUTPUTS:
-      return isSetOutputs();
-    case STORAGE_DIR:
-      return isSetStorageDir();
-    case ERRORS:
-      return isSetErrors();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof CustomDashboard)
-      return this.equals((CustomDashboard)that);
-    return false;
-  }
-
-  public boolean equals(CustomDashboard that) {
-    if (that == null)
-      return false;
-    if (this == that)
-      return true;
-
-    boolean this_present_airavataInternalUserId = true && this.isSetAiravataInternalUserId();
-    boolean that_present_airavataInternalUserId = true && that.isSetAiravataInternalUserId();
-    if (this_present_airavataInternalUserId || that_present_airavataInternalUserId) {
-      if (!(this_present_airavataInternalUserId && that_present_airavataInternalUserId))
-        return false;
-      if (!this.airavataInternalUserId.equals(that.airavataInternalUserId))
-        return false;
-    }
-
-    boolean this_present_experimentId = true && this.isSetExperimentId();
-    boolean that_present_experimentId = true && that.isSetExperimentId();
-    if (this_present_experimentId || that_present_experimentId) {
-      if (!(this_present_experimentId && that_present_experimentId))
-        return false;
-      if (!this.experimentId.equals(that.experimentId))
-        return false;
-    }
-
-    boolean this_present_name = true && this.isSetName();
-    boolean that_present_name = true && that.isSetName();
-    if (this_present_name || that_present_name) {
-      if (!(this_present_name && that_present_name))
-        return false;
-      if (!this.name.equals(that.name))
-        return false;
-    }
-
-    boolean this_present_description = true && this.isSetDescription();
-    boolean that_present_description = true && that.isSetDescription();
-    if (this_present_description || that_present_description) {
-      if (!(this_present_description && that_present_description))
-        return false;
-      if (!this.description.equals(that.description))
-        return false;
-    }
-
-    boolean this_present_project = true && this.isSetProject();
-    boolean that_present_project = true && that.isSetProject();
-    if (this_present_project || that_present_project) {
-      if (!(this_present_project && that_present_project))
-        return false;
-      if (!this.project.equals(that.project))
-        return false;
-    }
-
-    boolean this_present_owner = true && this.isSetOwner();
-    boolean that_present_owner = true && that.isSetOwner();
-    if (this_present_owner || that_present_owner) {
-      if (!(this_present_owner && that_present_owner))
-        return false;
-      if (!this.owner.equals(that.owner))
-        return false;
-    }
-
-    boolean this_present_application = true && this.isSetApplication();
-    boolean that_present_application = true && that.isSetApplication();
-    if (this_present_application || that_present_application) {
-      if (!(this_present_application && that_present_application))
-        return false;
-      if (!this.application.equals(that.application))
-        return false;
-    }
-
-    boolean this_present_computeResource = true && this.isSetComputeResource();
-    boolean that_present_computeResource = true && that.isSetComputeResource();
-    if (this_present_computeResource || that_present_computeResource) {
-      if (!(this_present_computeResource && that_present_computeResource))
-        return false;
-      if (!this.computeResource.equals(that.computeResource))
-        return false;
-    }
-
-    boolean this_present_jobName = true && this.isSetJobName();
-    boolean that_present_jobName = true && that.isSetJobName();
-    if (this_present_jobName || that_present_jobName) {
-      if (!(this_present_jobName && that_present_jobName))
-        return false;
-      if (!this.jobName.equals(that.jobName))
-        return false;
-    }
-
-    boolean this_present_jobId = true && this.isSetJobId();
-    boolean that_present_jobId = true && that.isSetJobId();
-    if (this_present_jobId || that_present_jobId) {
-      if (!(this_present_jobId && that_present_jobId))
-        return false;
-      if (!this.jobId.equals(that.jobId))
-        return false;
-    }
-
-    boolean this_present_jobStatus = true && this.isSetJobStatus();
-    boolean that_present_jobStatus = true && that.isSetJobStatus();
-    if (this_present_jobStatus || that_present_jobStatus) {
-      if (!(this_present_jobStatus && that_present_jobStatus))
-        return false;
-      if (!this.jobStatus.equals(that.jobStatus))
-        return false;
-    }
-
-    boolean this_present_jobCreationTime = true && this.isSetJobCreationTime();
-    boolean that_present_jobCreationTime = true && that.isSetJobCreationTime();
-    if (this_present_jobCreationTime || that_present_jobCreationTime) {
-      if (!(this_present_jobCreationTime && that_present_jobCreationTime))
-        return false;
-      if (!this.jobCreationTime.equals(that.jobCreationTime))
-        return false;
-    }
-
-    boolean this_present_notificationsTo = true && this.isSetNotificationsTo();
-    boolean that_present_notificationsTo = true && that.isSetNotificationsTo();
-    if (this_present_notificationsTo || that_present_notificationsTo) {
-      if (!(this_present_notificationsTo && that_present_notificationsTo))
-        return false;
-      if (!this.notificationsTo.equals(that.notificationsTo))
-        return false;
-    }
-
-    boolean this_present_workingDir = true && this.isSetWorkingDir();
-    boolean that_present_workingDir = true && that.isSetWorkingDir();
-    if (this_present_workingDir || that_present_workingDir) {
-      if (!(this_present_workingDir && that_present_workingDir))
-        return false;
-      if (!this.workingDir.equals(that.workingDir))
-        return false;
-    }
-
-    boolean this_present_jobDescription = true && this.isSetJobDescription();
-    boolean that_present_jobDescription = true && that.isSetJobDescription();
-    if (this_present_jobDescription || that_present_jobDescription) {
-      if (!(this_present_jobDescription && that_present_jobDescription))
-        return false;
-      if (!this.jobDescription.equals(that.jobDescription))
-        return false;
-    }
-
-    boolean this_present_creationTime = true && this.isSetCreationTime();
-    boolean that_present_creationTime = true && that.isSetCreationTime();
-    if (this_present_creationTime || that_present_creationTime) {
-      if (!(this_present_creationTime && that_present_creationTime))
-        return false;
-      if (!this.creationTime.equals(that.creationTime))
-        return false;
-    }
-
-    boolean this_present_lastModifiedTime = true && this.isSetLastModifiedTime();
-    boolean that_present_lastModifiedTime = true && that.isSetLastModifiedTime();
-    if (this_present_lastModifiedTime || that_present_lastModifiedTime) {
-      if (!(this_present_lastModifiedTime && that_present_lastModifiedTime))
-        return false;
-      if (!this.lastModifiedTime.equals(that.lastModifiedTime))
-        return false;
-    }
-
-    boolean this_present_wallTime = true && this.isSetWallTime();
-    boolean that_present_wallTime = true && that.isSetWallTime();
-    if (this_present_wallTime || that_present_wallTime) {
-      if (!(this_present_wallTime && that_present_wallTime))
-        return false;
-      if (!this.wallTime.equals(that.wallTime))
-        return false;
-    }
-
-    boolean this_present_cpuCount = true && this.isSetCpuCount();
-    boolean that_present_cpuCount = true && that.isSetCpuCount();
-    if (this_present_cpuCount || that_present_cpuCount) {
-      if (!(this_present_cpuCount && that_present_cpuCount))
-        return false;
-      if (!this.cpuCount.equals(that.cpuCount))
-        return false;
-    }
-
-    boolean this_present_nodeCount = true && this.isSetNodeCount();
-    boolean that_present_nodeCount = true && that.isSetNodeCount();
-    if (this_present_nodeCount || that_present_nodeCount) {
-      if (!(this_present_nodeCount && that_present_nodeCount))
-        return false;
-      if (!this.nodeCount.equals(that.nodeCount))
-        return false;
-    }
-
-    boolean this_present_queue = true && this.isSetQueue();
-    boolean that_present_queue = true && that.isSetQueue();
-    if (this_present_queue || that_present_queue) {
-      if (!(this_present_queue && that_present_queue))
-        return false;
-      if (!this.queue.equals(that.queue))
-        return false;
-    }
-
-    boolean this_present_inputs = true && this.isSetInputs();
-    boolean that_present_inputs = true && that.isSetInputs();
-    if (this_present_inputs || that_present_inputs) {
-      if (!(this_present_inputs && that_present_inputs))
-        return false;
-      if (!this.inputs.equals(that.inputs))
-        return false;
-    }
-
-    boolean this_present_outputs = true && this.isSetOutputs();
-    boolean that_present_outputs = true && that.isSetOutputs();
-    if (this_present_outputs || that_present_outputs) {
-      if (!(this_present_outputs && that_present_outputs))
-        return false;
-      if (!this.outputs.equals(that.outputs))
-        return false;
-    }
-
-    boolean this_present_storageDir = true && this.isSetStorageDir();
-    boolean that_present_storageDir = true && that.isSetStorageDir();
-    if (this_present_storageDir || that_present_storageDir) {
-      if (!(this_present_storageDir && that_present_storageDir))
-        return false;
-      if (!this.storageDir.equals(that.storageDir))
-        return false;
-    }
-
-    boolean this_present_errors = true && this.isSetErrors();
-    boolean that_present_errors = true && that.isSetErrors();
-    if (this_present_errors || that_present_errors) {
-      if (!(this_present_errors && that_present_errors))
-        return false;
-      if (!this.errors.equals(that.errors))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    int hashCode = 1;
-
-    hashCode = hashCode * 8191 + ((isSetAiravataInternalUserId()) ? 131071 : 524287);
-    if (isSetAiravataInternalUserId())
-      hashCode = hashCode * 8191 + airavataInternalUserId.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetExperimentId()) ? 131071 : 524287);
-    if (isSetExperimentId())
-      hashCode = hashCode * 8191 + experimentId.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
-    if (isSetName())
-      hashCode = hashCode * 8191 + name.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetDescription()) ? 131071 : 524287);
-    if (isSetDescription())
-      hashCode = hashCode * 8191 + description.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetProject()) ? 131071 : 524287);
-    if (isSetProject())
-      hashCode = hashCode * 8191 + project.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetOwner()) ? 131071 : 524287);
-    if (isSetOwner())
-      hashCode = hashCode * 8191 + owner.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetApplication()) ? 131071 : 524287);
-    if (isSetApplication())
-      hashCode = hashCode * 8191 + application.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetComputeResource()) ? 131071 : 524287);
-    if (isSetComputeResource())
-      hashCode = hashCode * 8191 + computeResource.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetJobName()) ? 131071 : 524287);
-    if (isSetJobName())
-      hashCode = hashCode * 8191 + jobName.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetJobId()) ? 131071 : 524287);
-    if (isSetJobId())
-      hashCode = hashCode * 8191 + jobId.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetJobStatus()) ? 131071 : 524287);
-    if (isSetJobStatus())
-      hashCode = hashCode * 8191 + jobStatus.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetJobCreationTime()) ? 131071 : 524287);
-    if (isSetJobCreationTime())
-      hashCode = hashCode * 8191 + jobCreationTime.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetNotificationsTo()) ? 131071 : 524287);
-    if (isSetNotificationsTo())
-      hashCode = hashCode * 8191 + notificationsTo.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetWorkingDir()) ? 131071 : 524287);
-    if (isSetWorkingDir())
-      hashCode = hashCode * 8191 + workingDir.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetJobDescription()) ? 131071 : 524287);
-    if (isSetJobDescription())
-      hashCode = hashCode * 8191 + jobDescription.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetCreationTime()) ? 131071 : 524287);
-    if (isSetCreationTime())
-      hashCode = hashCode * 8191 + creationTime.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetLastModifiedTime()) ? 131071 : 524287);
-    if (isSetLastModifiedTime())
-      hashCode = hashCode * 8191 + lastModifiedTime.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetWallTime()) ? 131071 : 524287);
-    if (isSetWallTime())
-      hashCode = hashCode * 8191 + wallTime.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetCpuCount()) ? 131071 : 524287);
-    if (isSetCpuCount())
-      hashCode = hashCode * 8191 + cpuCount.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetNodeCount()) ? 131071 : 524287);
-    if (isSetNodeCount())
-      hashCode = hashCode * 8191 + nodeCount.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetQueue()) ? 131071 : 524287);
-    if (isSetQueue())
-      hashCode = hashCode * 8191 + queue.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetInputs()) ? 131071 : 524287);
-    if (isSetInputs())
-      hashCode = hashCode * 8191 + inputs.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetOutputs()) ? 131071 : 524287);
-    if (isSetOutputs())
-      hashCode = hashCode * 8191 + outputs.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetStorageDir()) ? 131071 : 524287);
-    if (isSetStorageDir())
-      hashCode = hashCode * 8191 + storageDir.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetErrors()) ? 131071 : 524287);
-    if (isSetErrors())
-      hashCode = hashCode * 8191 + errors.hashCode();
-
-    return hashCode;
-  }
-
-  @Override
-  public int compareTo(CustomDashboard other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetAiravataInternalUserId()).compareTo(other.isSetAiravataInternalUserId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetAiravataInternalUserId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataInternalUserId, other.airavataInternalUserId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetExperimentId()).compareTo(other.isSetExperimentId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetExperimentId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.experimentId, other.experimentId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDescription()).compareTo(other.isSetDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.description, other.description);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetProject()).compareTo(other.isSetProject());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetProject()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.project, other.project);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetOwner()).compareTo(other.isSetOwner());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetOwner()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.owner, other.owner);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetApplication()).compareTo(other.isSetApplication());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetApplication()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.application, other.application);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetComputeResource()).compareTo(other.isSetComputeResource());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetComputeResource()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResource, other.computeResource);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetJobName()).compareTo(other.isSetJobName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetJobName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobName, other.jobName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetJobId()).compareTo(other.isSetJobId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetJobId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobId, other.jobId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetJobStatus()).compareTo(other.isSetJobStatus());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetJobStatus()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobStatus, other.jobStatus);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetJobCreationTime()).compareTo(other.isSetJobCreationTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetJobCreationTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobCreationTime, other.jobCreationTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetNotificationsTo()).compareTo(other.isSetNotificationsTo());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetNotificationsTo()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.notificationsTo, other.notificationsTo);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetWorkingDir()).compareTo(other.isSetWorkingDir());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetWorkingDir()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.workingDir, other.workingDir);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetJobDescription()).compareTo(other.isSetJobDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetJobDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobDescription, other.jobDescription);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetCreationTime()).compareTo(other.isSetCreationTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCreationTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creationTime, other.creationTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetLastModifiedTime()).compareTo(other.isSetLastModifiedTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetLastModifiedTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastModifiedTime, other.lastModifiedTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetWallTime()).compareTo(other.isSetWallTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetWallTime()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.wallTime, other.wallTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetCpuCount()).compareTo(other.isSetCpuCount());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCpuCount()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cpuCount, other.cpuCount);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetNodeCount()).compareTo(other.isSetNodeCount());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetNodeCount()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nodeCount, other.nodeCount);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetQueue()).compareTo(other.isSetQueue());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetQueue()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.queue, other.queue);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetInputs()).compareTo(other.isSetInputs());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetInputs()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.inputs, other.inputs);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetOutputs()).compareTo(other.isSetOutputs());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetOutputs()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.outputs, other.outputs);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetStorageDir()).compareTo(other.isSetStorageDir());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetStorageDir()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageDir, other.storageDir);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetErrors()).compareTo(other.isSetErrors());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetErrors()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errors, other.errors);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    return 0;
-  }
-
-  public _Fields fieldForId(int fieldId) {
-    return _Fields.findByThriftId(fieldId);
-  }
-
-  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-    scheme(iprot).read(iprot, this);
-  }
-
-  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-    scheme(oprot).write(oprot, this);
-  }
-
-  @Override
-  public String toString() {
-    StringBuilder sb = new StringBuilder("CustomDashboard(");
-    boolean first = true;
-
-    sb.append("airavataInternalUserId:");
-    if (this.airavataInternalUserId == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.airavataInternalUserId);
-    }
-    first = false;
-    if (isSetExperimentId()) {
-      if (!first) sb.append(", ");
-      sb.append("experimentId:");
-      if (this.experimentId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.experimentId);
-      }
-      first = false;
-    }
-    if (isSetName()) {
-      if (!first) sb.append(", ");
-      sb.append("name:");
-      if (this.name == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.name);
-      }
-      first = false;
-    }
-    if (isSetDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("description:");
-      if (this.description == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.description);
-      }
-      first = false;
-    }
-    if (isSetProject()) {
-      if (!first) sb.append(", ");
-      sb.append("project:");
-      if (this.project == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.project);
-      }
-      first = false;
-    }
-    if (isSetOwner()) {
-      if (!first) sb.append(", ");
-      sb.append("owner:");
-      if (this.owner == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.owner);
-      }
-      first = false;
-    }
-    if (isSetApplication()) {
-      if (!first) sb.append(", ");
-      sb.append("application:");
-      if (this.application == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.application);
-      }
-      first = false;
-    }
-    if (isSetComputeResource()) {
-      if (!first) sb.append(", ");
-      sb.append("computeResource:");
-      if (this.computeResource == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.computeResource);
-      }
-      first = false;
-    }
-    if (isSetJobName()) {
-      if (!first) sb.append(", ");
-      sb.append("jobName:");
-      if (this.jobName == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.jobName);
-      }
-      first = false;
-    }
-    if (isSetJobId()) {
-      if (!first) sb.append(", ");
-      sb.append("jobId:");
-      if (this.jobId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.jobId);
-      }
-      first = false;
-    }
-    if (isSetJobStatus()) {
-      if (!first) sb.append(", ");
-      sb.append("jobStatus:");
-      if (this.jobStatus == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.jobStatus);
-      }
-      first = false;
-    }
-    if (isSetJobCreationTime()) {
-      if (!first) sb.append(", ");
-      sb.append("jobCreationTime:");
-      if (this.jobCreationTime == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.jobCreationTime);
-      }
-      first = false;
-    }
-    if (isSetNotificationsTo()) {
-      if (!first) sb.append(", ");
-      sb.append("notificationsTo:");
-      if (this.notificationsTo == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.notificationsTo);
-      }
-      first = false;
-    }
-    if (isSetWorkingDir()) {
-      if (!first) sb.append(", ");
-      sb.append("workingDir:");
-      if (this.workingDir == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.workingDir);
-      }
-      first = false;
-    }
-    if (isSetJobDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("jobDescription:");
-      if (this.jobDescription == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.jobDescription);
-      }
-      first = false;
-    }
-    if (isSetCreationTime()) {
-      if (!first) sb.append(", ");
-      sb.append("creationTime:");
-      if (this.creationTime == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.creationTime);
-      }
-      first = false;
-    }
-    if (isSetLastModifiedTime()) {
-      if (!first) sb.append(", ");
-      sb.append("lastModifiedTime:");
-      if (this.lastModifiedTime == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.lastModifiedTime);
-      }
-      first = false;
-    }
-    if (isSetWallTime()) {
-      if (!first) sb.append(", ");
-      sb.append("wallTime:");
-      if (this.wallTime == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.wallTime);
-      }
-      first = false;
-    }
-    if (isSetCpuCount()) {
-      if (!first) sb.append(", ");
-      sb.append("cpuCount:");
-      if (this.cpuCount == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.cpuCount);
-      }
-      first = false;
-    }
-    if (isSetNodeCount()) {
-      if (!first) sb.append(", ");
-      sb.append("nodeCount:");
-      if (this.nodeCount == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.nodeCount);
-      }
-      first = false;
-    }
-    if (isSetQueue()) {
-      if (!first) sb.append(", ");
-      sb.append("queue:");
-      if (this.queue == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.queue);
-      }
-      first = false;
-    }
-    if (isSetInputs()) {
-      if (!first) sb.append(", ");
-      sb.append("inputs:");
-      if (this.inputs == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.inputs);
-      }
-      first = false;
-    }
-    if (isSetOutputs()) {
-      if (!first) sb.append(", ");
-      sb.append("outputs:");
-      if (this.outputs == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.outputs);
-      }
-      first = false;
-    }
-    if (isSetStorageDir()) {
-      if (!first) sb.append(", ");
-      sb.append("storageDir:");
-      if (this.storageDir == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.storageDir);
-      }
-      first = false;
-    }
-    if (isSetErrors()) {
-      if (!first) sb.append(", ");
-      sb.append("errors:");
-      if (this.errors == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.errors);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    if (!isSetAiravataInternalUserId()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataInternalUserId' is unset! Struct:" + toString());
-    }
-
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
-    try {
-      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class CustomDashboardStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-    public CustomDashboardStandardScheme getScheme() {
-      return new CustomDashboardStandardScheme();
-    }
-  }
-
-  private static class CustomDashboardStandardScheme extends org.apache.thrift.scheme.StandardScheme<CustomDashboard> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, CustomDashboard struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TField schemeField;
-      iprot.readStructBegin();
-      while (true)
-      {
-        schemeField = iprot.readFieldBegin();
-        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
-          break;
-        }
-        switch (schemeField.id) {
-          case 1: // AIRAVATA_INTERNAL_USER_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.airavataInternalUserId = iprot.readString();
-              struct.setAiravataInternalUserIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 2: // EXPERIMENT_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.experimentId = iprot.readString();
-              struct.setExperimentIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.name = iprot.readString();
-              struct.setNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.description = iprot.readString();
-              struct.setDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 5: // PROJECT
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.project = iprot.readString();
-              struct.setProjectIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 6: // OWNER
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.owner = iprot.readString();
-              struct.setOwnerIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 7: // APPLICATION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.application = iprot.readString();
-              struct.setApplicationIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 8: // COMPUTE_RESOURCE
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.computeResource = iprot.readString();
-              struct.setComputeResourceIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 9: // JOB_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.jobName = iprot.readString();
-              struct.setJobNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 10: // JOB_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.jobId = iprot.readString();
-              struct.setJobIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 11: // JOB_STATUS
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.jobStatus = iprot.readString();
-              struct.setJobStatusIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 12: // JOB_CREATION_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.jobCreationTime = iprot.readString();
-              struct.setJobCreationTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 13: // NOTIFICATIONS_TO
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.notificationsTo = iprot.readString();
-              struct.setNotificationsToIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 14: // WORKING_DIR
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.workingDir = iprot.readString();
-              struct.setWorkingDirIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 15: // JOB_DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.jobDescription = iprot.readString();
-              struct.setJobDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 16: // CREATION_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.creationTime = iprot.readString();
-              struct.setCreationTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 17: // LAST_MODIFIED_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.lastModifiedTime = iprot.readString();
-              struct.setLastModifiedTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 18: // WALL_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.wallTime = iprot.readString();
-              struct.setWallTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 19: // CPU_COUNT
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.cpuCount = iprot.readString();
-              struct.setCpuCountIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 20: // NODE_COUNT
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.nodeCount = iprot.readString();
-              struct.setNodeCountIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 21: // QUEUE
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.queue = iprot.readString();
-              struct.setQueueIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 22: // INPUTS
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.inputs = iprot.readString();
-              struct.setInputsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 23: // OUTPUTS
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.outputs = iprot.readString();
-              struct.setOutputsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 24: // STORAGE_DIR
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.storageDir = iprot.readString();
-              struct.setStorageDirIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 25: // ERRORS
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.errors = iprot.readString();
-              struct.setErrorsIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          default:
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-        }
-        iprot.readFieldEnd();
-      }
-      iprot.readStructEnd();
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, CustomDashboard struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.airavataInternalUserId != null) {
-        oprot.writeFieldBegin(AIRAVATA_INTERNAL_USER_ID_FIELD_DESC);
-        oprot.writeString(struct.airavataInternalUserId);
-        oprot.writeFieldEnd();
-      }
-      if (struct.experimentId != null) {
-        if (struct.isSetExperimentId()) {
-          oprot.writeFieldBegin(EXPERIMENT_ID_FIELD_DESC);
-          oprot.writeString(struct.experimentId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.name != null) {
-        if (struct.isSetName()) {
-          oprot.writeFieldBegin(NAME_FIELD_DESC);
-          oprot.writeString(struct.name);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.description != null) {
-        if (struct.isSetDescription()) {
-          oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.description);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.project != null) {
-        if (struct.isSetProject()) {
-          oprot.writeFieldBegin(PROJECT_FIELD_DESC);
-          oprot.writeString(struct.project);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.owner != null) {
-        if (struct.isSetOwner()) {
-          oprot.writeFieldBegin(OWNER_FIELD_DESC);
-          oprot.writeString(struct.owner);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.application != null) {
-        if (struct.isSetApplication()) {
-          oprot.writeFieldBegin(APPLICATION_FIELD_DESC);
-          oprot.writeString(struct.application);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.computeResource != null) {
-        if (struct.isSetComputeResource()) {
-          oprot.writeFieldBegin(COMPUTE_RESOURCE_FIELD_DESC);
-          oprot.writeString(struct.computeResource);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.jobName != null) {
-        if (struct.isSetJobName()) {
-          oprot.writeFieldBegin(JOB_NAME_FIELD_DESC);
-          oprot.writeString(struct.jobName);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.jobId != null) {
-        if (struct.isSetJobId()) {
-          oprot.writeFieldBegin(JOB_ID_FIELD_DESC);
-          oprot.writeString(struct.jobId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.jobStatus != null) {
-        if (struct.isSetJobStatus()) {
-          oprot.writeFieldBegin(JOB_STATUS_FIELD_DESC);
-          oprot.writeString(struct.jobStatus);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.jobCreationTime != null) {
-        if (struct.isSetJobCreationTime()) {
-          oprot.writeFieldBegin(JOB_CREATION_TIME_FIELD_DESC);
-          oprot.writeString(struct.jobCreationTime);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.notificationsTo != null) {
-        if (struct.isSetNotificationsTo()) {
-          oprot.writeFieldBegin(NOTIFICATIONS_TO_FIELD_DESC);
-          oprot.writeString(struct.notificationsTo);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.workingDir != null) {
-        if (struct.isSetWorkingDir()) {
-          oprot.writeFieldBegin(WORKING_DIR_FIELD_DESC);
-          oprot.writeString(struct.workingDir);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.jobDescription != null) {
-        if (struct.isSetJobDescription()) {
-          oprot.writeFieldBegin(JOB_DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.jobDescription);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.creationTime != null) {
-        if (struct.isSetCreationTime()) {
-          oprot.writeFieldBegin(CREATION_TIME_FIELD_DESC);
-          oprot.writeString(struct.creationTime);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.lastModifiedTime != null) {
-        if (struct.isSetLastModifiedTime()) {
-          oprot.writeFieldBegin(LAST_MODIFIED_TIME_FIELD_DESC);
-          oprot.writeString(struct.lastModifiedTime);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.wallTime != null) {
-        if (struct.isSetWallTime()) {
-          oprot.writeFieldBegin(WALL_TIME_FIELD_DESC);
-          oprot.writeString(struct.wallTime);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.cpuCount != null) {
-        if (struct.isSetCpuCount()) {
-          oprot.writeFieldBegin(CPU_COUNT_FIELD_DESC);
-          oprot.writeString(struct.cpuCount);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.nodeCount != null) {
-        if (struct.isSetNodeCount()) {
-          oprot.writeFieldBegin(NODE_COUNT_FIELD_DESC);
-          oprot.writeString(struct.nodeCount);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.queue != null) {
-        if (struct.isSetQueue()) {
-          oprot.writeFieldBegin(QUEUE_FIELD_DESC);
-          oprot.writeString(struct.queue);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.inputs != null) {
-        if (struct.isSetInputs()) {
-          oprot.writeFieldBegin(INPUTS_FIELD_DESC);
-          oprot.writeString(struct.inputs);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.outputs != null) {
-        if (struct.isSetOutputs()) {
-          oprot.writeFieldBegin(OUTPUTS_FIELD_DESC);
-          oprot.writeString(struct.outputs);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.storageDir != null) {
-        if (struct.isSetStorageDir()) {
-          oprot.writeFieldBegin(STORAGE_DIR_FIELD_DESC);
-          oprot.writeString(struct.storageDir);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.errors != null) {
-        if (struct.isSetErrors()) {
-          oprot.writeFieldBegin(ERRORS_FIELD_DESC);
-          oprot.writeString(struct.errors);
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class CustomDashboardTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-    public CustomDashboardTupleScheme getScheme() {
-      return new CustomDashboardTupleScheme();
-    }
-  }
-
-  private static class CustomDashboardTupleScheme extends org.apache.thrift.scheme.TupleScheme<CustomDashboard> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, CustomDashboard struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-      oprot.writeString(struct.airavataInternalUserId);
-      java.util.BitSet optionals = new java.util.BitSet();
-      if (struct.isSetExperimentId()) {
-        optionals.set(0);
-      }
-      if (struct.isSetName()) {
-        optionals.set(1);
-      }
-      if (struct.isSetDescription()) {
-        optionals.set(2);
-      }
-      if (struct.isSetProject()) {
-        optionals.set(3);
-      }
-      if (struct.isSetOwner()) {
-        optionals.set(4);
-      }
-      if (struct.isSetApplication()) {
-        optionals.set(5);
-      }
-      if (struct.isSetComputeResource()) {
-        optionals.set(6);
-      }
-      if (struct.isSetJobName()) {
-        optionals.set(7);
-      }
-      if (struct.isSetJobId()) {
-        optionals.set(8);
-      }
-      if (struct.isSetJobStatus()) {
-        optionals.set(9);
-      }
-      if (struct.isSetJobCreationTime()) {
-        optionals.set(10);
-      }
-      if (struct.isSetNotificationsTo()) {
-        optionals.set(11);
-      }
-      if (struct.isSetWorkingDir()) {
-        optionals.set(12);
-      }
-      if (struct.isSetJobDescription()) {
-        optionals.set(13);
-      }
-      if (struct.isSetCreationTime()) {
-        optionals.set(14);
-      }
-      if (struct.isSetLastModifiedTime()) {
-        optionals.set(15);
-      }
-      if (struct.isSetWallTime()) {
-        optionals.set(16);
-      }
-      if (struct.isSetCpuCount()) {
-        optionals.set(17);
-      }
-      if (struct.isSetNodeCount()) {
-        optionals.set(18);
-      }
-      if (struct.isSetQueue()) {
-        optionals.set(19);
-      }
-      if (struct.isSetInputs()) {
-        optionals.set(20);
-      }
-      if (struct.isSetOutputs()) {
-        optionals.set(21);
-      }
-      if (struct.isSetStorageDir()) {
-        optionals.set(22);
-      }
-      if (struct.isSetErrors()) {
-        optionals.set(23);
-      }
-      oprot.writeBitSet(optionals, 24);
-      if (struct.isSetExperimentId()) {
-        oprot.writeString(struct.experimentId);
-      }
-      if (struct.isSetName()) {
-        oprot.writeString(struct.name);
-      }
-      if (struct.isSetDescription()) {
-        oprot.writeString(struct.description);
-      }
-      if (struct.isSetProject()) {
-        oprot.writeString(struct.project);
-      }
-      if (struct.isSetOwner()) {
-        oprot.writeString(struct.owner);
-      }
-      if (struct.isSetApplication()) {
-        oprot.writeString(struct.application);
-      }
-      if (struct.isSetComputeResource()) {
-        oprot.writeString(struct.computeResource);
-      }
-      if (struct.isSetJobName()) {
-        oprot.writeString(struct.jobName);
-      }
-      if (struct.isSetJobId()) {
-        oprot.writeString(struct.jobId);
-      }
-      if (struct.isSetJobStatus()) {
-        oprot.writeString(struct.jobStatus);
-      }
-      if (struct.isSetJobCreationTime()) {
-        oprot.writeString(struct.jobCreationTime);
-      }
-      if (struct.isSetNotificationsTo()) {
-        oprot.writeString(struct.notificationsTo);
-      }
-      if (struct.isSetWorkingDir()) {
-        oprot.writeString(struct.workingDir);
-      }
-      if (struct.isSetJobDescription()) {
-        oprot.writeString(struct.jobDescription);
-      }
-      if (struct.isSetCreationTime()) {
-        oprot.writeString(struct.creationTime);
-      }
-      if (struct.isSetLastModifiedTime()) {
-        oprot.writeString(struct.lastModifiedTime);
-      }
-      if (struct.isSetWallTime()) {
-        oprot.writeString(struct.wallTime);
-      }
-      if (struct.isSetCpuCount()) {
-        oprot.writeString(struct.cpuCount);
-      }
-      if (struct.isSetNodeCount()) {
-        oprot.writeString(struct.nodeCount);
-      }
-      if (struct.isSetQueue()) {
-        oprot.writeString(struct.queue);
-      }
-      if (struct.isSetInputs()) {
-        oprot.writeString(struct.inputs);
-      }
-      if (struct.isSetOutputs()) {
-        oprot.writeString(struct.outputs);
-      }
-      if (struct.isSetStorageDir()) {
-        oprot.writeString(struct.storageDir);
-      }
-      if (struct.isSetErrors()) {
-        oprot.writeString(struct.errors);
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, CustomDashboard struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-      struct.airavataInternalUserId = iprot.readString();
-      struct.setAiravataInternalUserIdIsSet(true);
-      java.util.BitSet incoming = iprot.readBitSet(24);
-      if (incoming.get(0)) {
-        struct.experimentId = iprot.readString();
-        struct.setExperimentIdIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.name = iprot.readString();
-        struct.setNameIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.description = iprot.readString();
-        struct.setDescriptionIsSet(true);
-      }
-      if (incoming.get(3)) {
-        struct.project = iprot.readString();
-        struct.setProjectIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.owner = iprot.readString();
-        struct.setOwnerIsSet(true);
-      }
-      if (incoming.get(5)) {
-        struct.application = iprot.readString();
-        struct.setApplicationIsSet(true);
-      }
-      if (incoming.get(6)) {
-        struct.computeResource = iprot.readString();
-        struct.setComputeResourceIsSet(true);
-      }
-      if (incoming.get(7)) {
-        struct.jobName = iprot.readString();
-        struct.setJobNameIsSet(true);
-      }
-      if (incoming.get(8)) {
-        struct.jobId = iprot.readString();
-        struct.setJobIdIsSet(true);
-      }
-      if (incoming.get(9)) {
-        struct.jobStatus = iprot.readString();
-        struct.setJobStatusIsSet(true);
-      }
-      if (incoming.get(10)) {
-        struct.jobCreationTime = iprot.readString();
-        struct.setJobCreationTimeIsSet(true);
-      }
-      if (incoming.get(11)) {
-        struct.notificationsTo = iprot.readString();
-        struct.setNotificationsToIsSet(true);
-      }
-      if (incoming.get(12)) {
-        struct.workingDir = iprot.readString();
-        struct.setWorkingDirIsSet(true);
-      }
-      if (incoming.get(13)) {
-        struct.jobDescription = iprot.readString();
-        struct.setJobDescriptionIsSet(true);
-      }
-      if (incoming.get(14)) {
-        struct.creationTime = iprot.readString();
-        struct.setCreationTimeIsSet(true);
-      }
-      if (incoming.get(15)) {
-        struct.lastModifiedTime = iprot.readString();
-        struct.setLastModifiedTimeIsSet(true);
-      }
-      if (incoming.get(16)) {
-        struct.wallTime = iprot.readString();
-        struct.setWallTimeIsSet(true);
-      }
-      if (incoming.get(17)) {
-        struct.cpuCount = iprot.readString();
-        struct.setCpuCountIsSet(true);
-      }
-      if (incoming.get(18)) {
-        struct.nodeCount = iprot.readString();
-        struct.setNodeCountIsSet(true);
-      }
-      if (incoming.get(19)) {
-        struct.queue = iprot.readString();
-        struct.setQueueIsSet(true);
-      }
-      if (incoming.get(20)) {
-        struct.inputs = iprot.readString();
-        struct.setInputsIsSet(true);
-      }
-      if (incoming.get(21)) {
-        struct.outputs = iprot.readString();
-        struct.setOutputsIsSet(true);
-      }
-      if (incoming.get(22)) {
-        struct.storageDir = iprot.readString();
-        struct.setStorageDirIsSet(true);
-      }
-      if (incoming.get(23)) {
-        struct.errors = iprot.readString();
-        struct.setErrorsIsSet(true);
-      }
-    }
-  }
-
-  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
-    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
-  }
-}
-
diff --git a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/NSFDemographics.java b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/NSFDemographics.java
index d24f6e5..351a1c5 100644
--- a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/NSFDemographics.java
+++ b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/NSFDemographics.java
@@ -1,22 +1,5 @@
 /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.10.0)
+ * Autogenerated by Thrift Compiler (0.12.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -29,7 +12,7 @@ package org.apache.custos.profile.model.user;
  * 
  * 
  */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-08-12")
 public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics, NSFDemographics._Fields>, java.io.Serializable, Cloneable, Comparable<NSFDemographics> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NSFDemographics");
 
@@ -43,19 +26,23 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
   private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new NSFDemographicsStandardSchemeFactory();
   private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new NSFDemographicsTupleSchemeFactory();
 
-  private String custosInternalUserId; // required
-  private String gender; // optional
-  private USCitizenship usCitizenship; // optional
-  private java.util.List<ethnicity> ethnicities; // optional
-  private java.util.List<race> races; // optional
-  private java.util.List<disability> disabilities; // optional
+  public @org.apache.thrift.annotation.Nullable String custosInternalUserId; // required
+  public @org.apache.thrift.annotation.Nullable String gender; // optional
+  /**
+   * 
+   * @see USCitizenship
+   */
+  public @org.apache.thrift.annotation.Nullable USCitizenship usCitizenship; // optional
+  public @org.apache.thrift.annotation.Nullable java.util.List<ethnicity> ethnicities; // optional
+  public @org.apache.thrift.annotation.Nullable java.util.List<race> races; // optional
+  public @org.apache.thrift.annotation.Nullable java.util.List<disability> disabilities; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     CUSTOS_INTERNAL_USER_ID((short)1, "custosInternalUserId"),
     GENDER((short)2, "gender"),
     /**
-     *
+     * 
      * @see USCitizenship
      */
     US_CITIZENSHIP((short)3, "usCitizenship"),
@@ -74,6 +61,7 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     /**
      * Find the _Fields constant that matches fieldId, or null if its not found.
      */
+    @org.apache.thrift.annotation.Nullable
     public static _Fields findByThriftId(int fieldId) {
       switch(fieldId) {
         case 1: // CUSTOS_INTERNAL_USER_ID
@@ -106,6 +94,7 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     /**
      * Find the _Fields constant that matches name, or null if its not found.
      */
+    @org.apache.thrift.annotation.Nullable
     public static _Fields findByName(String name) {
       return byName.get(name);
     }
@@ -128,24 +117,24 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
   }
 
   // isset id assignments
-  private static final _Fields optionals[] = {_Fields.GENDER, _Fields.US_CITIZENSHIP, _Fields.ETHNICITIES, _Fields.RACES, _Fields.DISABILITIES};
+  private static final _Fields optionals[] = {_Fields.GENDER,_Fields.US_CITIZENSHIP,_Fields.ETHNICITIES,_Fields.RACES,_Fields.DISABILITIES};
   public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.CUSTOS_INTERNAL_USER_ID, new org.apache.thrift.meta_data.FieldMetaData("custosInternalUserId", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.CUSTOS_INTERNAL_USER_ID, new org.apache.thrift.meta_data.FieldMetaData("custosInternalUserId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.GENDER, new org.apache.thrift.meta_data.FieldMetaData("gender", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.GENDER, new org.apache.thrift.meta_data.FieldMetaData("gender", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.US_CITIZENSHIP, new org.apache.thrift.meta_data.FieldMetaData("usCitizenship", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.US_CITIZENSHIP, new org.apache.thrift.meta_data.FieldMetaData("usCitizenship", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, USCitizenship.class)));
-    tmpMap.put(_Fields.ETHNICITIES, new org.apache.thrift.meta_data.FieldMetaData("ethnicities", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+    tmpMap.put(_Fields.ETHNICITIES, new org.apache.thrift.meta_data.FieldMetaData("ethnicities", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ethnicity.class))));
-    tmpMap.put(_Fields.RACES, new org.apache.thrift.meta_data.FieldMetaData("races", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+    tmpMap.put(_Fields.RACES, new org.apache.thrift.meta_data.FieldMetaData("races", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, race.class))));
-    tmpMap.put(_Fields.DISABILITIES, new org.apache.thrift.meta_data.FieldMetaData("disabilities", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+    tmpMap.put(_Fields.DISABILITIES, new org.apache.thrift.meta_data.FieldMetaData("disabilities", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, disability.class))));
     metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(NSFDemographics.class, metaDataMap);
@@ -214,12 +203,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     this.disabilities = null;
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getCustosInternalUserId() {
     return this.custosInternalUserId;
   }
 
-  public void setCustosInternalUserId(String CustosInternalUserId) {
+  public NSFDemographics setCustosInternalUserId(@org.apache.thrift.annotation.Nullable String custosInternalUserId) {
     this.custosInternalUserId = custosInternalUserId;
+    return this;
   }
 
   public void unsetCustosInternalUserId() {
@@ -237,12 +228,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getGender() {
     return this.gender;
   }
 
-  public void setGender(String gender) {
+  public NSFDemographics setGender(@org.apache.thrift.annotation.Nullable String gender) {
     this.gender = gender;
+    return this;
   }
 
   public void unsetGender() {
@@ -261,19 +254,21 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
   }
 
   /**
-   *
+   * 
    * @see USCitizenship
    */
+  @org.apache.thrift.annotation.Nullable
   public USCitizenship getUsCitizenship() {
     return this.usCitizenship;
   }
 
   /**
-   *
+   * 
    * @see USCitizenship
    */
-  public void setUsCitizenship(USCitizenship usCitizenship) {
+  public NSFDemographics setUsCitizenship(@org.apache.thrift.annotation.Nullable USCitizenship usCitizenship) {
     this.usCitizenship = usCitizenship;
+    return this;
   }
 
   public void unsetUsCitizenship() {
@@ -295,6 +290,7 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     return (this.ethnicities == null) ? 0 : this.ethnicities.size();
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.Iterator<ethnicity> getEthnicitiesIterator() {
     return (this.ethnicities == null) ? null : this.ethnicities.iterator();
   }
@@ -306,12 +302,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     this.ethnicities.add(elem);
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.List<ethnicity> getEthnicities() {
     return this.ethnicities;
   }
 
-  public void setEthnicities(java.util.List<ethnicity> ethnicities) {
+  public NSFDemographics setEthnicities(@org.apache.thrift.annotation.Nullable java.util.List<ethnicity> ethnicities) {
     this.ethnicities = ethnicities;
+    return this;
   }
 
   public void unsetEthnicities() {
@@ -333,6 +331,7 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     return (this.races == null) ? 0 : this.races.size();
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.Iterator<race> getRacesIterator() {
     return (this.races == null) ? null : this.races.iterator();
   }
@@ -344,12 +343,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     this.races.add(elem);
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.List<race> getRaces() {
     return this.races;
   }
 
-  public void setRaces(java.util.List<race> races) {
+  public NSFDemographics setRaces(@org.apache.thrift.annotation.Nullable java.util.List<race> races) {
     this.races = races;
+    return this;
   }
 
   public void unsetRaces() {
@@ -371,6 +372,7 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     return (this.disabilities == null) ? 0 : this.disabilities.size();
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.Iterator<disability> getDisabilitiesIterator() {
     return (this.disabilities == null) ? null : this.disabilities.iterator();
   }
@@ -382,12 +384,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     this.disabilities.add(elem);
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.List<disability> getDisabilities() {
     return this.disabilities;
   }
 
-  public void setDisabilities(java.util.List<disability> disabilities) {
+  public NSFDemographics setDisabilities(@org.apache.thrift.annotation.Nullable java.util.List<disability> disabilities) {
     this.disabilities = disabilities;
+    return this;
   }
 
   public void unsetDisabilities() {
@@ -405,7 +409,7 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     }
   }
 
-  public void setFieldValue(_Fields field, Object value) {
+  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable Object value) {
     switch (field) {
     case CUSTOS_INTERNAL_USER_ID:
       if (value == null) {
@@ -458,6 +462,7 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public Object getFieldValue(_Fields field) {
     switch (field) {
     case CUSTOS_INTERNAL_USER_ID:
@@ -679,6 +684,7 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
     return 0;
   }
 
+  @org.apache.thrift.annotation.Nullable
   public _Fields fieldForId(int fieldId) {
     return _Fields.findByThriftId(fieldId);
   }
@@ -759,10 +765,9 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
 
   public void validate() throws org.apache.thrift.TException {
     // check for required fields
-    if (!isSetCustosInternalUserId()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'custosInternalUserId' is unset! Struct:" + toString());
+    if (custosInternalUserId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'custosInternalUserId' was not present! Struct: " + toString());
     }
-
     // check for sub-struct validity
   }
 
@@ -829,11 +834,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
               {
                 org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
                 struct.ethnicities = new java.util.ArrayList<ethnicity>(_list0.size);
-                ethnicity _elem1;
+                @org.apache.thrift.annotation.Nullable ethnicity _elem1;
                 for (int _i2 = 0; _i2 < _list0.size; ++_i2)
                 {
                   _elem1 = ethnicity.findByValue(iprot.readI32());
-                  struct.ethnicities.add(_elem1);
+                  if (_elem1 != null)
+                  {
+                    struct.ethnicities.add(_elem1);
+                  }
                 }
                 iprot.readListEnd();
               }
@@ -847,11 +855,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
               {
                 org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
                 struct.races = new java.util.ArrayList<race>(_list3.size);
-                race _elem4;
+                @org.apache.thrift.annotation.Nullable race _elem4;
                 for (int _i5 = 0; _i5 < _list3.size; ++_i5)
                 {
                   _elem4 = race.findByValue(iprot.readI32());
-                  struct.races.add(_elem4);
+                  if (_elem4 != null)
+                  {
+                    struct.races.add(_elem4);
+                  }
                 }
                 iprot.readListEnd();
               }
@@ -865,11 +876,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
               {
                 org.apache.thrift.protocol.TList _list6 = iprot.readListBegin();
                 struct.disabilities = new java.util.ArrayList<disability>(_list6.size);
-                disability _elem7;
+                @org.apache.thrift.annotation.Nullable disability _elem7;
                 for (int _i8 = 0; _i8 < _list6.size; ++_i8)
                 {
                   _elem7 = disability.findByValue(iprot.readI32());
-                  struct.disabilities.add(_elem7);
+                  if (_elem7 != null)
+                  {
+                    struct.disabilities.add(_elem7);
+                  }
                 }
                 iprot.readListEnd();
               }
@@ -884,6 +898,8 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
         iprot.readFieldEnd();
       }
       iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
       struct.validate();
     }
 
@@ -1040,11 +1056,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
         {
           org.apache.thrift.protocol.TList _list15 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I32, iprot.readI32());
           struct.ethnicities = new java.util.ArrayList<ethnicity>(_list15.size);
-          ethnicity _elem16;
+          @org.apache.thrift.annotation.Nullable ethnicity _elem16;
           for (int _i17 = 0; _i17 < _list15.size; ++_i17)
           {
             _elem16 = ethnicity.findByValue(iprot.readI32());
-            struct.ethnicities.add(_elem16);
+            if (_elem16 != null)
+            {
+              struct.ethnicities.add(_elem16);
+            }
           }
         }
         struct.setEthnicitiesIsSet(true);
@@ -1053,11 +1072,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
         {
           org.apache.thrift.protocol.TList _list18 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I32, iprot.readI32());
           struct.races = new java.util.ArrayList<race>(_list18.size);
-          race _elem19;
+          @org.apache.thrift.annotation.Nullable race _elem19;
           for (int _i20 = 0; _i20 < _list18.size; ++_i20)
           {
             _elem19 = race.findByValue(iprot.readI32());
-            struct.races.add(_elem19);
+            if (_elem19 != null)
+            {
+              struct.races.add(_elem19);
+            }
           }
         }
         struct.setRacesIsSet(true);
@@ -1066,11 +1088,14 @@ public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics,
         {
           org.apache.thrift.protocol.TList _list21 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I32, iprot.readI32());
           struct.disabilities = new java.util.ArrayList<disability>(_list21.size);
-          disability _elem22;
+          @org.apache.thrift.annotation.Nullable disability _elem22;
           for (int _i23 = 0; _i23 < _list21.size; ++_i23)
           {
             _elem22 = disability.findByValue(iprot.readI32());
-            struct.disabilities.add(_elem22);
+            if (_elem22 != null)
+            {
+              struct.disabilities.add(_elem22);
+            }
           }
         }
         struct.setDisabilitiesIsSet(true);
diff --git a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/Status.java b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/Status.java
index 119a68b..a852d00 100644
--- a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/Status.java
+++ b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/Status.java
@@ -1,22 +1,5 @@
 /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.10.0)
+ * Autogenerated by Thrift Compiler (0.12.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -24,9 +7,8 @@
 package org.apache.custos.profile.model.user;
 
 
-import org.apache.thrift.TEnum;
-
-public enum Status implements TEnum {
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-08-12")
+public enum Status implements org.apache.thrift.TEnum {
   ACTIVE(0),
   CONFIRMED(1),
   APPROVED(2),
@@ -59,6 +41,7 @@ public enum Status implements TEnum {
    * Find a the enum type by its integer value, as defined in the Thrift IDL.
    * @return null if the value is not found.
    */
+  @org.apache.thrift.annotation.Nullable
   public static Status findByValue(int value) { 
     switch (value) {
       case 0:
diff --git a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/USCitizenship.java b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/USCitizenship.java
index 89cfcc0..a8bb094 100644
--- a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/USCitizenship.java
+++ b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/USCitizenship.java
@@ -1,22 +1,5 @@
 /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.10.0)
+ * Autogenerated by Thrift Compiler (0.12.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -24,13 +7,12 @@
 package org.apache.custos.profile.model.user;
 
 
-import org.apache.thrift.TEnum;
-
 /**
  * U.S. Citizen (see: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
  * 
  */
-public enum USCitizenship implements TEnum {
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-08-12")
+public enum USCitizenship implements org.apache.thrift.TEnum {
   US_CITIZEN(0),
   US_PERMANENT_RESIDENT(1),
   OTHER_NON_US_CITIZEN(2);
@@ -52,6 +34,7 @@ public enum USCitizenship implements TEnum {
    * Find a the enum type by its integer value, as defined in the Thrift IDL.
    * @return null if the value is not found.
    */
+  @org.apache.thrift.annotation.Nullable
   public static USCitizenship findByValue(int value) { 
     switch (value) {
       case 0:
diff --git a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/UserProfile.java b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/UserProfile.java
index e3c72ae..85bb2af 100644
--- a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/UserProfile.java
+++ b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/UserProfile.java
@@ -1,22 +1,5 @@
 /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.10.0)
+ * Autogenerated by Thrift Compiler (0.12.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -37,8 +20,8 @@ package org.apache.custos.profile.model.user;
  * * userModelVersion:
  * *  Version number of profile
  * *
- * * airavataInternalUserId:
- * *  internal to Airavata, not intended to be used outside of the Airavata platform or possibly by gateways
+ * * custosInternalUserId:
+ * *  internal to custos, not intended to be used outside of the custos platform or possibly by gateways
  * *  (that is, never shown to users), never reassigned, REQUIRED
  * *
  * * userId:
@@ -55,7 +38,7 @@ package org.apache.custos.profile.model.user;
  * *   Email identifier are Verified, REQUIRED and MULTIVALUED
  * *
  * * userName:
- * *  Name-based identifiers can be multivalues. To keep it simple, Airavata will make it a string.
+ * *  Name-based identifiers can be multivalues. To keep it simple, custos will make it a string.
  * *   In the future these can be enumerated as:
  *     *   Official name (as asserted possibly by some external identity provider)
  *     *   Prefered name (as asserted or suggested by user directly)
@@ -73,7 +56,7 @@ package org.apache.custos.profile.model.user;
  * * nationality Countries of citizenship
  * *
  * * comments:
- * *   Free-form information (treated as opaque by Custos and simply passed to resource).
+ * *   Free-form information (treated as opaque by custos and simply passed to resource).
  * *
  * * labeledURI:
  *   * Google Scholar, Web of Science, ACS, e.t.c
@@ -82,7 +65,7 @@ package org.apache.custos.profile.model.user;
  * *  User’s preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones.
  * *
  */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-08-12")
 public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserProfile._Fields>, java.io.Serializable, Cloneable, Comparable<UserProfile> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserProfile");
 
@@ -111,37 +94,39 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
   private static final org.apache.thrift.protocol.TField GPG_KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("gpgKey", org.apache.thrift.protocol.TType.STRING, (short)23);
   private static final org.apache.thrift.protocol.TField TIME_ZONE_FIELD_DESC = new org.apache.thrift.protocol.TField("timeZone", org.apache.thrift.protocol.TType.STRING, (short)24);
   private static final org.apache.thrift.protocol.TField NSF_DEMOGRAPHICS_FIELD_DESC = new org.apache.thrift.protocol.TField("nsfDemographics", org.apache.thrift.protocol.TType.STRUCT, (short)25);
-  private static final org.apache.thrift.protocol.TField CUSTOM_DASHBOARD_FIELD_DESC = new org.apache.thrift.protocol.TField("customDashboard", org.apache.thrift.protocol.TType.STRUCT, (short)26);
 
   private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new UserProfileStandardSchemeFactory();
   private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new UserProfileTupleSchemeFactory();
 
-  private String userModelVersion; // required
-  private String custosInternalUserId; // required
-  private String userId; // required
-  private String gatewayId; // required
-  private java.util.List<String> emails; // required
-  private String firstName; // required
-  private String lastName; // required
-  private String middleName; // optional
-  private String namePrefix; // optional
-  private String nameSuffix; // optional
-  private String orcidId; // optional
-  private java.util.List<String> phones; // optional
-  private String country; // optional
-  private java.util.List<String> nationality; // optional
-  private String homeOrganization; // optional
-  private String orginationAffiliation; // optional
-  private long creationTime; // required
-  private long lastAccessTime; // required
-  private long validUntil; // required
-  private Status State; // required
-  private String comments; // optional
-  private java.util.List<String> labeledURI; // optional
-  private String gpgKey; // optional
-  private String timeZone; // optional
-  private NSFDemographics nsfDemographics; // optional
-  private CustomDashboard customDashboard; // optional
+  public @org.apache.thrift.annotation.Nullable String userModelVersion; // required
+  public @org.apache.thrift.annotation.Nullable String custosInternalUserId; // required
+  public @org.apache.thrift.annotation.Nullable String userId; // required
+  public @org.apache.thrift.annotation.Nullable String gatewayId; // required
+  public @org.apache.thrift.annotation.Nullable java.util.List<String> emails; // required
+  public @org.apache.thrift.annotation.Nullable String firstName; // required
+  public @org.apache.thrift.annotation.Nullable String lastName; // required
+  public @org.apache.thrift.annotation.Nullable String middleName; // optional
+  public @org.apache.thrift.annotation.Nullable String namePrefix; // optional
+  public @org.apache.thrift.annotation.Nullable String nameSuffix; // optional
+  public @org.apache.thrift.annotation.Nullable String orcidId; // optional
+  public @org.apache.thrift.annotation.Nullable java.util.List<String> phones; // optional
+  public @org.apache.thrift.annotation.Nullable String country; // optional
+  public @org.apache.thrift.annotation.Nullable java.util.List<String> nationality; // optional
+  public @org.apache.thrift.annotation.Nullable String homeOrganization; // optional
+  public @org.apache.thrift.annotation.Nullable String orginationAffiliation; // optional
+  public long creationTime; // required
+  public long lastAccessTime; // required
+  public long validUntil; // required
+  /**
+   * 
+   * @see Status
+   */
+  public @org.apache.thrift.annotation.Nullable Status State; // required
+  public @org.apache.thrift.annotation.Nullable String comments; // optional
+  public @org.apache.thrift.annotation.Nullable java.util.List<String> labeledURI; // optional
+  public @org.apache.thrift.annotation.Nullable String gpgKey; // optional
+  public @org.apache.thrift.annotation.Nullable String timeZone; // optional
+  public @org.apache.thrift.annotation.Nullable NSFDemographics nsfDemographics; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -165,7 +150,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     LAST_ACCESS_TIME((short)18, "lastAccessTime"),
     VALID_UNTIL((short)19, "validUntil"),
     /**
-     *
+     * 
      * @see Status
      */
     STATE((short)20, "State"),
@@ -173,8 +158,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     LABELED_URI((short)22, "labeledURI"),
     GPG_KEY((short)23, "gpgKey"),
     TIME_ZONE((short)24, "timeZone"),
-    NSF_DEMOGRAPHICS((short)25, "nsfDemographics"),
-    CUSTOM_DASHBOARD((short)26, "customDashboard");
+    NSF_DEMOGRAPHICS((short)25, "nsfDemographics");
 
     private static final java.util.Map<String, _Fields> byName = new java.util.HashMap<String, _Fields>();
 
@@ -187,6 +171,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     /**
      * Find the _Fields constant that matches fieldId, or null if its not found.
      */
+    @org.apache.thrift.annotation.Nullable
     public static _Fields findByThriftId(int fieldId) {
       switch(fieldId) {
         case 1: // USER_MODEL_VERSION
@@ -239,8 +224,6 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
           return TIME_ZONE;
         case 25: // NSF_DEMOGRAPHICS
           return NSF_DEMOGRAPHICS;
-        case 26: // CUSTOM_DASHBOARD
-          return CUSTOM_DASHBOARD;
         default:
           return null;
       }
@@ -259,6 +242,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     /**
      * Find the _Fields constant that matches name, or null if its not found.
      */
+    @org.apache.thrift.annotation.Nullable
     public static _Fields findByName(String name) {
       return byName.get(name);
     }
@@ -285,66 +269,64 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
   private static final int __LASTACCESSTIME_ISSET_ID = 1;
   private static final int __VALIDUNTIL_ISSET_ID = 2;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.MIDDLE_NAME, _Fields.NAME_PREFIX, _Fields.NAME_SUFFIX, _Fields.ORCID_ID, _Fields.PHONES, _Fields.COUNTRY, _Fields.NATIONALITY, _Fields.HOME_ORGANIZATION, _Fields.ORGINATION_AFFILIATION, _Fields.COMMENTS, _Fields.LABELED_URI, _Fields.GPG_KEY, _Fields.TIME_ZONE, _Fields.NSF_DEMOGRAPHICS, _Fields.CUSTOM_DASHBOARD};
+  private static final _Fields optionals[] = {_Fields.MIDDLE_NAME,_Fields.NAME_PREFIX,_Fields.NAME_SUFFIX,_Fields.ORCID_ID,_Fields.PHONES,_Fields.COUNTRY,_Fields.NATIONALITY,_Fields.HOME_ORGANIZATION,_Fields.ORGINATION_AFFILIATION,_Fields.COMMENTS,_Fields.LABELED_URI,_Fields.GPG_KEY,_Fields.TIME_ZONE,_Fields.NSF_DEMOGRAPHICS};
   public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.USER_MODEL_VERSION, new org.apache.thrift.meta_data.FieldMetaData("userModelVersion", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.USER_MODEL_VERSION, new org.apache.thrift.meta_data.FieldMetaData("userModelVersion", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.CUSTOS_INTERNAL_USER_ID, new org.apache.thrift.meta_data.FieldMetaData("custosInternalUserId", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.CUSTOS_INTERNAL_USER_ID, new org.apache.thrift.meta_data.FieldMetaData("custosInternalUserId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.USER_ID, new org.apache.thrift.meta_data.FieldMetaData("userId", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.USER_ID, new org.apache.thrift.meta_data.FieldMetaData("userId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.EMAILS, new org.apache.thrift.meta_data.FieldMetaData("emails", org.apache.thrift.TFieldRequirementType.REQUIRED,
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+    tmpMap.put(_Fields.EMAILS, new org.apache.thrift.meta_data.FieldMetaData("emails", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.FIRST_NAME, new org.apache.thrift.meta_data.FieldMetaData("firstName", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.FIRST_NAME, new org.apache.thrift.meta_data.FieldMetaData("firstName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.LAST_NAME, new org.apache.thrift.meta_data.FieldMetaData("lastName", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.LAST_NAME, new org.apache.thrift.meta_data.FieldMetaData("lastName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.MIDDLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("middleName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.MIDDLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("middleName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NAME_PREFIX, new org.apache.thrift.meta_data.FieldMetaData("namePrefix", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.NAME_PREFIX, new org.apache.thrift.meta_data.FieldMetaData("namePrefix", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NAME_SUFFIX, new org.apache.thrift.meta_data.FieldMetaData("nameSuffix", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.NAME_SUFFIX, new org.apache.thrift.meta_data.FieldMetaData("nameSuffix", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.ORCID_ID, new org.apache.thrift.meta_data.FieldMetaData("orcidId", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.ORCID_ID, new org.apache.thrift.meta_data.FieldMetaData("orcidId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PHONES, new org.apache.thrift.meta_data.FieldMetaData("phones", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+    tmpMap.put(_Fields.PHONES, new org.apache.thrift.meta_data.FieldMetaData("phones", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.COUNTRY, new org.apache.thrift.meta_data.FieldMetaData("country", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.COUNTRY, new org.apache.thrift.meta_data.FieldMetaData("country", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NATIONALITY, new org.apache.thrift.meta_data.FieldMetaData("nationality", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+    tmpMap.put(_Fields.NATIONALITY, new org.apache.thrift.meta_data.FieldMetaData("nationality", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.HOME_ORGANIZATION, new org.apache.thrift.meta_data.FieldMetaData("homeOrganization", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.HOME_ORGANIZATION, new org.apache.thrift.meta_data.FieldMetaData("homeOrganization", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.ORGINATION_AFFILIATION, new org.apache.thrift.meta_data.FieldMetaData("orginationAffiliation", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.ORGINATION_AFFILIATION, new org.apache.thrift.meta_data.FieldMetaData("orginationAffiliation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.LAST_ACCESS_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastAccessTime", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.LAST_ACCESS_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastAccessTime", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.VALID_UNTIL, new org.apache.thrift.meta_data.FieldMetaData("validUntil", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.VALID_UNTIL, new org.apache.thrift.meta_data.FieldMetaData("validUntil", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.STATE, new org.apache.thrift.meta_data.FieldMetaData("State", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.STATE, new org.apache.thrift.meta_data.FieldMetaData("State", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, Status.class)));
-    tmpMap.put(_Fields.COMMENTS, new org.apache.thrift.meta_data.FieldMetaData("comments", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.COMMENTS, new org.apache.thrift.meta_data.FieldMetaData("comments", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.LABELED_URI, new org.apache.thrift.meta_data.FieldMetaData("labeledURI", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+    tmpMap.put(_Fields.LABELED_URI, new org.apache.thrift.meta_data.FieldMetaData("labeledURI", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.GPG_KEY, new org.apache.thrift.meta_data.FieldMetaData("gpgKey", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.GPG_KEY, new org.apache.thrift.meta_data.FieldMetaData("gpgKey", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.TIME_ZONE, new org.apache.thrift.meta_data.FieldMetaData("timeZone", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.TIME_ZONE, new org.apache.thrift.meta_data.FieldMetaData("timeZone", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NSF_DEMOGRAPHICS, new org.apache.thrift.meta_data.FieldMetaData("nsfDemographics", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.NSF_DEMOGRAPHICS, new org.apache.thrift.meta_data.FieldMetaData("nsfDemographics", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NSFDemographics.class)));
-    tmpMap.put(_Fields.CUSTOM_DASHBOARD, new org.apache.thrift.meta_data.FieldMetaData("customDashboard", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CustomDashboard.class)));
     metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UserProfile.class, metaDataMap);
   }
@@ -464,9 +446,6 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     if (other.isSetNsfDemographics()) {
       this.nsfDemographics = new NSFDemographics(other.nsfDemographics);
     }
-    if (other.isSetCustomDashboard()) {
-      this.customDashboard = new CustomDashboard(other.customDashboard);
-    }
   }
 
   public UserProfile deepCopy() {
@@ -505,15 +484,16 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     this.gpgKey = null;
     this.timeZone = null;
     this.nsfDemographics = null;
-    this.customDashboard = null;
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getUserModelVersion() {
     return this.userModelVersion;
   }
 
-  public void setUserModelVersion(String userModelVersion) {
+  public UserProfile setUserModelVersion(@org.apache.thrift.annotation.Nullable String userModelVersion) {
     this.userModelVersion = userModelVersion;
+    return this;
   }
 
   public void unsetUserModelVersion() {
@@ -531,12 +511,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getCustosInternalUserId() {
     return this.custosInternalUserId;
   }
 
-  public void setCustosInternalUserId(String custosInternalUserId) {
+  public UserProfile setCustosInternalUserId(@org.apache.thrift.annotation.Nullable String custosInternalUserId) {
     this.custosInternalUserId = custosInternalUserId;
+    return this;
   }
 
   public void unsetCustosInternalUserId() {
@@ -554,12 +536,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getUserId() {
     return this.userId;
   }
 
-  public void setUserId(String userId) {
+  public UserProfile setUserId(@org.apache.thrift.annotation.Nullable String userId) {
     this.userId = userId;
+    return this;
   }
 
   public void unsetUserId() {
@@ -577,12 +561,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getGatewayId() {
     return this.gatewayId;
   }
 
-  public void setGatewayId(String gatewayId) {
+  public UserProfile setGatewayId(@org.apache.thrift.annotation.Nullable String gatewayId) {
     this.gatewayId = gatewayId;
+    return this;
   }
 
   public void unsetGatewayId() {
@@ -604,6 +590,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     return (this.emails == null) ? 0 : this.emails.size();
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.Iterator<String> getEmailsIterator() {
     return (this.emails == null) ? null : this.emails.iterator();
   }
@@ -615,12 +602,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     this.emails.add(elem);
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.List<String> getEmails() {
     return this.emails;
   }
 
-  public void setEmails(java.util.List<String> emails) {
+  public UserProfile setEmails(@org.apache.thrift.annotation.Nullable java.util.List<String> emails) {
     this.emails = emails;
+    return this;
   }
 
   public void unsetEmails() {
@@ -638,12 +627,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getFirstName() {
     return this.firstName;
   }
 
-  public void setFirstName(String firstName) {
+  public UserProfile setFirstName(@org.apache.thrift.annotation.Nullable String firstName) {
     this.firstName = firstName;
+    return this;
   }
 
   public void unsetFirstName() {
@@ -661,12 +652,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getLastName() {
     return this.lastName;
   }
 
-  public void setLastName(String lastName) {
+  public UserProfile setLastName(@org.apache.thrift.annotation.Nullable String lastName) {
     this.lastName = lastName;
+    return this;
   }
 
   public void unsetLastName() {
@@ -684,12 +677,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getMiddleName() {
     return this.middleName;
   }
 
-  public void setMiddleName(String middleName) {
+  public UserProfile setMiddleName(@org.apache.thrift.annotation.Nullable String middleName) {
     this.middleName = middleName;
+    return this;
   }
 
   public void unsetMiddleName() {
@@ -707,12 +702,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getNamePrefix() {
     return this.namePrefix;
   }
 
-  public void setNamePrefix(String namePrefix) {
+  public UserProfile setNamePrefix(@org.apache.thrift.annotation.Nullable String namePrefix) {
     this.namePrefix = namePrefix;
+    return this;
   }
 
   public void unsetNamePrefix() {
@@ -730,12 +727,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getNameSuffix() {
     return this.nameSuffix;
   }
 
-  public void setNameSuffix(String nameSuffix) {
+  public UserProfile setNameSuffix(@org.apache.thrift.annotation.Nullable String nameSuffix) {
     this.nameSuffix = nameSuffix;
+    return this;
   }
 
   public void unsetNameSuffix() {
@@ -753,12 +752,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getOrcidId() {
     return this.orcidId;
   }
 
-  public void setOrcidId(String orcidId) {
+  public UserProfile setOrcidId(@org.apache.thrift.annotation.Nullable String orcidId) {
     this.orcidId = orcidId;
+    return this;
   }
 
   public void unsetOrcidId() {
@@ -780,6 +781,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     return (this.phones == null) ? 0 : this.phones.size();
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.Iterator<String> getPhonesIterator() {
     return (this.phones == null) ? null : this.phones.iterator();
   }
@@ -791,12 +793,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     this.phones.add(elem);
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.List<String> getPhones() {
     return this.phones;
   }
 
-  public void setPhones(java.util.List<String> phones) {
+  public UserProfile setPhones(@org.apache.thrift.annotation.Nullable java.util.List<String> phones) {
     this.phones = phones;
+    return this;
   }
 
   public void unsetPhones() {
@@ -814,12 +818,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getCountry() {
     return this.country;
   }
 
-  public void setCountry(String country) {
+  public UserProfile setCountry(@org.apache.thrift.annotation.Nullable String country) {
     this.country = country;
+    return this;
   }
 
   public void unsetCountry() {
@@ -841,6 +847,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     return (this.nationality == null) ? 0 : this.nationality.size();
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.Iterator<String> getNationalityIterator() {
     return (this.nationality == null) ? null : this.nationality.iterator();
   }
@@ -852,12 +859,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     this.nationality.add(elem);
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.List<String> getNationality() {
     return this.nationality;
   }
 
-  public void setNationality(java.util.List<String> nationality) {
+  public UserProfile setNationality(@org.apache.thrift.annotation.Nullable java.util.List<String> nationality) {
     this.nationality = nationality;
+    return this;
   }
 
   public void unsetNationality() {
@@ -875,12 +884,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getHomeOrganization() {
     return this.homeOrganization;
   }
 
-  public void setHomeOrganization(String homeOrganization) {
+  public UserProfile setHomeOrganization(@org.apache.thrift.annotation.Nullable String homeOrganization) {
     this.homeOrganization = homeOrganization;
+    return this;
   }
 
   public void unsetHomeOrganization() {
@@ -898,12 +909,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getOrginationAffiliation() {
     return this.orginationAffiliation;
   }
 
-  public void setOrginationAffiliation(String orginationAffiliation) {
+  public UserProfile setOrginationAffiliation(@org.apache.thrift.annotation.Nullable String orginationAffiliation) {
     this.orginationAffiliation = orginationAffiliation;
+    return this;
   }
 
   public void unsetOrginationAffiliation() {
@@ -925,9 +938,10 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     return this.creationTime;
   }
 
-  public void setCreationTime(long creationTime) {
+  public UserProfile setCreationTime(long creationTime) {
     this.creationTime = creationTime;
     setCreationTimeIsSet(true);
+    return this;
   }
 
   public void unsetCreationTime() {
@@ -947,9 +961,10 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     return this.lastAccessTime;
   }
 
-  public void setLastAccessTime(long lastAccessTime) {
+  public UserProfile setLastAccessTime(long lastAccessTime) {
     this.lastAccessTime = lastAccessTime;
     setLastAccessTimeIsSet(true);
+    return this;
   }
 
   public void unsetLastAccessTime() {
@@ -969,9 +984,10 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     return this.validUntil;
   }
 
-  public void setValidUntil(long validUntil) {
+  public UserProfile setValidUntil(long validUntil) {
     this.validUntil = validUntil;
     setValidUntilIsSet(true);
+    return this;
   }
 
   public void unsetValidUntil() {
@@ -988,19 +1004,21 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
   }
 
   /**
-   *
+   * 
    * @see Status
    */
+  @org.apache.thrift.annotation.Nullable
   public Status getState() {
     return this.State;
   }
 
   /**
-   *
+   * 
    * @see Status
    */
-  public void setState(Status State) {
+  public UserProfile setState(@org.apache.thrift.annotation.Nullable Status State) {
     this.State = State;
+    return this;
   }
 
   public void unsetState() {
@@ -1018,12 +1036,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getComments() {
     return this.comments;
   }
 
-  public void setComments(String comments) {
+  public UserProfile setComments(@org.apache.thrift.annotation.Nullable String comments) {
     this.comments = comments;
+    return this;
   }
 
   public void unsetComments() {
@@ -1045,6 +1065,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     return (this.labeledURI == null) ? 0 : this.labeledURI.size();
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.Iterator<String> getLabeledURIIterator() {
     return (this.labeledURI == null) ? null : this.labeledURI.iterator();
   }
@@ -1056,12 +1077,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     this.labeledURI.add(elem);
   }
 
+  @org.apache.thrift.annotation.Nullable
   public java.util.List<String> getLabeledURI() {
     return this.labeledURI;
   }
 
-  public void setLabeledURI(java.util.List<String> labeledURI) {
+  public UserProfile setLabeledURI(@org.apache.thrift.annotation.Nullable java.util.List<String> labeledURI) {
     this.labeledURI = labeledURI;
+    return this;
   }
 
   public void unsetLabeledURI() {
@@ -1079,12 +1102,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getGpgKey() {
     return this.gpgKey;
   }
 
-  public void setGpgKey(String gpgKey) {
+  public UserProfile setGpgKey(@org.apache.thrift.annotation.Nullable String gpgKey) {
     this.gpgKey = gpgKey;
+    return this;
   }
 
   public void unsetGpgKey() {
@@ -1102,12 +1127,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public String getTimeZone() {
     return this.timeZone;
   }
 
-  public void setTimeZone(String timeZone) {
+  public UserProfile setTimeZone(@org.apache.thrift.annotation.Nullable String timeZone) {
     this.timeZone = timeZone;
+    return this;
   }
 
   public void unsetTimeZone() {
@@ -1125,12 +1152,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public NSFDemographics getNsfDemographics() {
     return this.nsfDemographics;
   }
 
-  public void setNsfDemographics(NSFDemographics nsfDemographics) {
+  public UserProfile setNsfDemographics(@org.apache.thrift.annotation.Nullable NSFDemographics nsfDemographics) {
     this.nsfDemographics = nsfDemographics;
+    return this;
   }
 
   public void unsetNsfDemographics() {
@@ -1148,30 +1177,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
-  public CustomDashboard getCustomDashboard() {
-    return this.customDashboard;
-  }
-
-  public void setCustomDashboard(CustomDashboard customDashboard) {
-    this.customDashboard = customDashboard;
-  }
-
-  public void unsetCustomDashboard() {
-    this.customDashboard = null;
-  }
-
-  /** Returns true if field customDashboard is set (has been assigned a value) and false otherwise */
-  public boolean isSetCustomDashboard() {
-    return this.customDashboard != null;
-  }
-
-  public void setCustomDashboardIsSet(boolean value) {
-    if (!value) {
-      this.customDashboard = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
+  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable Object value) {
     switch (field) {
     case USER_MODEL_VERSION:
       if (value == null) {
@@ -1373,17 +1379,10 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       }
       break;
 
-    case CUSTOM_DASHBOARD:
-      if (value == null) {
-        unsetCustomDashboard();
-      } else {
-        setCustomDashboard((CustomDashboard)value);
-      }
-      break;
-
     }
   }
 
+  @org.apache.thrift.annotation.Nullable
   public Object getFieldValue(_Fields field) {
     switch (field) {
     case USER_MODEL_VERSION:
@@ -1461,9 +1460,6 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     case NSF_DEMOGRAPHICS:
       return getNsfDemographics();
 
-    case CUSTOM_DASHBOARD:
-      return getCustomDashboard();
-
     }
     throw new IllegalStateException();
   }
@@ -1525,8 +1521,6 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       return isSetTimeZone();
     case NSF_DEMOGRAPHICS:
       return isSetNsfDemographics();
-    case CUSTOM_DASHBOARD:
-      return isSetCustomDashboard();
     }
     throw new IllegalStateException();
   }
@@ -1771,15 +1765,6 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         return false;
     }
 
-    boolean this_present_customDashboard = true && this.isSetCustomDashboard();
-    boolean that_present_customDashboard = true && that.isSetCustomDashboard();
-    if (this_present_customDashboard || that_present_customDashboard) {
-      if (!(this_present_customDashboard && that_present_customDashboard))
-        return false;
-      if (!this.customDashboard.equals(that.customDashboard))
-        return false;
-    }
-
     return true;
   }
 
@@ -1881,10 +1866,6 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     if (isSetNsfDemographics())
       hashCode = hashCode * 8191 + nsfDemographics.hashCode();
 
-    hashCode = hashCode * 8191 + ((isSetCustomDashboard()) ? 131071 : 524287);
-    if (isSetCustomDashboard())
-      hashCode = hashCode * 8191 + customDashboard.hashCode();
-
     return hashCode;
   }
 
@@ -2146,19 +2127,10 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetCustomDashboard()).compareTo(other.isSetCustomDashboard());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCustomDashboard()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.customDashboard, other.customDashboard);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
     return 0;
   }
 
+  @org.apache.thrift.annotation.Nullable
   public _Fields fieldForId(int fieldId) {
     return _Fields.findByThriftId(fieldId);
   }
@@ -2391,73 +2363,43 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       }
       first = false;
     }
-    if (isSetCustomDashboard()) {
-      if (!first) sb.append(", ");
-      sb.append("customDashboard:");
-      if (this.customDashboard == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.customDashboard);
-      }
-      first = false;
-    }
     sb.append(")");
     return sb.toString();
   }
 
   public void validate() throws org.apache.thrift.TException {
     // check for required fields
-    if (!isSetUserModelVersion()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userModelVersion' is unset! Struct:" + toString());
+    if (userModelVersion == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userModelVersion' was not present! Struct: " + toString());
     }
-
-    if (!isSetCustosInternalUserId()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'custosInternalUserId' is unset! Struct:" + toString());
+    if (custosInternalUserId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'custosInternalUserId' was not present! Struct: " + toString());
     }
-
-    if (!isSetUserId()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userId' is unset! Struct:" + toString());
+    if (userId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userId' was not present! Struct: " + toString());
     }
-
-    if (!isSetGatewayId()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' is unset! Struct:" + toString());
+    if (gatewayId == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
     }
-
-    if (!isSetEmails()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'emails' is unset! Struct:" + toString());
+    if (emails == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'emails' was not present! Struct: " + toString());
     }
-
-    if (!isSetFirstName()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'firstName' is unset! Struct:" + toString());
+    if (firstName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'firstName' was not present! Struct: " + toString());
     }
-
-    if (!isSetLastName()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'lastName' is unset! Struct:" + toString());
+    if (lastName == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'lastName' was not present! Struct: " + toString());
     }
-
-    if (!isSetCreationTime()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'creationTime' is unset! Struct:" + toString());
-    }
-
-    if (!isSetLastAccessTime()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'lastAccessTime' is unset! Struct:" + toString());
-    }
-
-    if (!isSetValidUntil()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'validUntil' is unset! Struct:" + toString());
+    // alas, we cannot check 'creationTime' because it's a primitive and you chose the non-beans generator.
+    // alas, we cannot check 'lastAccessTime' because it's a primitive and you chose the non-beans generator.
+    // alas, we cannot check 'validUntil' because it's a primitive and you chose the non-beans generator.
+    if (State == null) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'State' was not present! Struct: " + toString());
     }
-
-    if (!isSetState()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'State' is unset! Struct:" + toString());
-    }
-
     // check for sub-struct validity
     if (nsfDemographics != null) {
       nsfDemographics.validate();
     }
-    if (customDashboard != null) {
-      customDashboard.validate();
-    }
   }
 
   private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -2492,7 +2434,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       while (true)
       {
         schemeField = iprot.readFieldBegin();
-        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
           break;
         }
         switch (schemeField.id) {
@@ -2500,7 +2442,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.userModelVersion = iprot.readString();
               struct.setUserModelVersionIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2508,7 +2450,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.custosInternalUserId = iprot.readString();
               struct.setCustosInternalUserIdIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2516,7 +2458,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.userId = iprot.readString();
               struct.setUserIdIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2524,7 +2466,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.gatewayId = iprot.readString();
               struct.setGatewayIdIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2533,7 +2475,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               {
                 org.apache.thrift.protocol.TList _list24 = iprot.readListBegin();
                 struct.emails = new java.util.ArrayList<String>(_list24.size);
-                String _elem25;
+                @org.apache.thrift.annotation.Nullable String _elem25;
                 for (int _i26 = 0; _i26 < _list24.size; ++_i26)
                 {
                   _elem25 = iprot.readString();
@@ -2542,7 +2484,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
                 iprot.readListEnd();
               }
               struct.setEmailsIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2550,7 +2492,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.firstName = iprot.readString();
               struct.setFirstNameIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2558,7 +2500,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.lastName = iprot.readString();
               struct.setLastNameIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2566,7 +2508,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.middleName = iprot.readString();
               struct.setMiddleNameIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2574,7 +2516,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.namePrefix = iprot.readString();
               struct.setNamePrefixIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2582,7 +2524,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.nameSuffix = iprot.readString();
               struct.setNameSuffixIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2590,7 +2532,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.orcidId = iprot.readString();
               struct.setOrcidIdIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2599,7 +2541,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               {
                 org.apache.thrift.protocol.TList _list27 = iprot.readListBegin();
                 struct.phones = new java.util.ArrayList<String>(_list27.size);
-                String _elem28;
+                @org.apache.thrift.annotation.Nullable String _elem28;
                 for (int _i29 = 0; _i29 < _list27.size; ++_i29)
                 {
                   _elem28 = iprot.readString();
@@ -2608,7 +2550,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
                 iprot.readListEnd();
               }
               struct.setPhonesIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2616,7 +2558,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.country = iprot.readString();
               struct.setCountryIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2625,7 +2567,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               {
                 org.apache.thrift.protocol.TList _list30 = iprot.readListBegin();
                 struct.nationality = new java.util.ArrayList<String>(_list30.size);
-                String _elem31;
+                @org.apache.thrift.annotation.Nullable String _elem31;
                 for (int _i32 = 0; _i32 < _list30.size; ++_i32)
                 {
                   _elem31 = iprot.readString();
@@ -2634,7 +2576,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
                 iprot.readListEnd();
               }
               struct.setNationalityIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2642,7 +2584,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.homeOrganization = iprot.readString();
               struct.setHomeOrganizationIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2650,7 +2592,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.orginationAffiliation = iprot.readString();
               struct.setOrginationAffiliationIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2658,7 +2600,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
               struct.creationTime = iprot.readI64();
               struct.setCreationTimeIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2666,7 +2608,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
               struct.lastAccessTime = iprot.readI64();
               struct.setLastAccessTimeIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2674,7 +2616,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
               struct.validUntil = iprot.readI64();
               struct.setValidUntilIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2682,7 +2624,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
               struct.State = Status.findByValue(iprot.readI32());
               struct.setStateIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2690,7 +2632,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.comments = iprot.readString();
               struct.setCommentsIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2699,7 +2641,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               {
                 org.apache.thrift.protocol.TList _list33 = iprot.readListBegin();
                 struct.labeledURI = new java.util.ArrayList<String>(_list33.size);
-                String _elem34;
+                @org.apache.thrift.annotation.Nullable String _elem34;
                 for (int _i35 = 0; _i35 < _list33.size; ++_i35)
                 {
                   _elem34 = iprot.readString();
@@ -2708,7 +2650,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
                 iprot.readListEnd();
               }
               struct.setLabeledURIIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2716,7 +2658,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.gpgKey = iprot.readString();
               struct.setGpgKeyIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2724,7 +2666,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.timeZone = iprot.readString();
               struct.setTimeZoneIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2733,16 +2675,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               struct.nsfDemographics = new NSFDemographics();
               struct.nsfDemographics.read(iprot);
               struct.setNsfDemographicsIsSet(true);
-            } else {
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 26: // CUSTOM_DASHBOARD
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-              struct.customDashboard = new CustomDashboard();
-              struct.customDashboard.read(iprot);
-              struct.setCustomDashboardIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
@@ -2752,6 +2685,17 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         iprot.readFieldEnd();
       }
       iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      if (!struct.isSetCreationTime()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'creationTime' was not found in serialized data! Struct: " + toString());
+      }
+      if (!struct.isSetLastAccessTime()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'lastAccessTime' was not found in serialized data! Struct: " + toString());
+      }
+      if (!struct.isSetValidUntil()) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'validUntil' was not found in serialized data! Struct: " + toString());
+      }
       struct.validate();
     }
 
@@ -2934,13 +2878,6 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
           oprot.writeFieldEnd();
         }
       }
-      if (struct.customDashboard != null) {
-        if (struct.isSetCustomDashboard()) {
-          oprot.writeFieldBegin(CUSTOM_DASHBOARD_FIELD_DESC);
-          struct.customDashboard.write(oprot);
-          oprot.writeFieldEnd();
-        }
-      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -3018,10 +2955,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       if (struct.isSetNsfDemographics()) {
         optionals.set(13);
       }
-      if (struct.isSetCustomDashboard()) {
-        optionals.set(14);
-      }
-      oprot.writeBitSet(optionals, 15);
+      oprot.writeBitSet(optionals, 14);
       if (struct.isSetMiddleName()) {
         oprot.writeString(struct.middleName);
       }
@@ -3082,9 +3016,6 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       if (struct.isSetNsfDemographics()) {
         struct.nsfDemographics.write(oprot);
       }
-      if (struct.isSetCustomDashboard()) {
-        struct.customDashboard.write(oprot);
-      }
     }
 
     @Override
@@ -3101,7 +3032,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       {
         org.apache.thrift.protocol.TList _list44 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
         struct.emails = new java.util.ArrayList<String>(_list44.size);
-        String _elem45;
+        @org.apache.thrift.annotation.Nullable String _elem45;
         for (int _i46 = 0; _i46 < _list44.size; ++_i46)
         {
           _elem45 = iprot.readString();
@@ -3121,7 +3052,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       struct.setValidUntilIsSet(true);
       struct.State = Status.findByValue(iprot.readI32());
       struct.setStateIsSet(true);
-      java.util.BitSet incoming = iprot.readBitSet(15);
+      java.util.BitSet incoming = iprot.readBitSet(14);
       if (incoming.get(0)) {
         struct.middleName = iprot.readString();
         struct.setMiddleNameIsSet(true);
@@ -3142,7 +3073,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         {
           org.apache.thrift.protocol.TList _list47 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
           struct.phones = new java.util.ArrayList<String>(_list47.size);
-          String _elem48;
+          @org.apache.thrift.annotation.Nullable String _elem48;
           for (int _i49 = 0; _i49 < _list47.size; ++_i49)
           {
             _elem48 = iprot.readString();
@@ -3159,7 +3090,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         {
           org.apache.thrift.protocol.TList _list50 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
           struct.nationality = new java.util.ArrayList<String>(_list50.size);
-          String _elem51;
+          @org.apache.thrift.annotation.Nullable String _elem51;
           for (int _i52 = 0; _i52 < _list50.size; ++_i52)
           {
             _elem51 = iprot.readString();
@@ -3184,7 +3115,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         {
           org.apache.thrift.protocol.TList _list53 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
           struct.labeledURI = new java.util.ArrayList<String>(_list53.size);
-          String _elem54;
+          @org.apache.thrift.annotation.Nullable String _elem54;
           for (int _i55 = 0; _i55 < _list53.size; ++_i55)
           {
             _elem54 = iprot.readString();
@@ -3206,11 +3137,6 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         struct.nsfDemographics.read(iprot);
         struct.setNsfDemographicsIsSet(true);
       }
-      if (incoming.get(14)) {
-        struct.customDashboard = new CustomDashboard();
-        struct.customDashboard.read(iprot);
-        struct.setCustomDashboardIsSet(true);
-      }
     }
   }
 
diff --git a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/disability.java b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/disability.java
index eb0058c..c2f4a06 100644
--- a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/disability.java
+++ b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/disability.java
@@ -1,22 +1,5 @@
 /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.10.0)
+ * Autogenerated by Thrift Compiler (0.12.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -24,9 +7,8 @@
 package org.apache.custos.profile.model.user;
 
 
-import org.apache.thrift.TEnum;
-
-public enum disability implements TEnum {
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-08-12")
+public enum disability implements org.apache.thrift.TEnum {
   HEARING_IMAPAIRED(0),
   VISUAL_IMPAIRED(1),
   MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT(2),
@@ -49,6 +31,7 @@ public enum disability implements TEnum {
    * Find a the enum type by its integer value, as defined in the Thrift IDL.
    * @return null if the value is not found.
    */
+  @org.apache.thrift.annotation.Nullable
   public static disability findByValue(int value) { 
     switch (value) {
       case 0:
diff --git a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/ethnicity.java b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/ethnicity.java
index 955f16c..5d730df 100644
--- a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/ethnicity.java
+++ b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/ethnicity.java
@@ -1,22 +1,5 @@
 /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.10.0)
+ * Autogenerated by Thrift Compiler (0.12.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -24,14 +7,13 @@
 package org.apache.custos.profile.model.user;
 
 
-import org.apache.thrift.TEnum;
-
 /**
  * Hispanic or Latino - a person of Mexican, Puerto Rican, Cuban, South or
  *  Central American, or other Spanish culture or origin, regardless of race.
  * 
  */
-public enum ethnicity implements TEnum {
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-08-12")
+public enum ethnicity implements org.apache.thrift.TEnum {
   HISPANIC_LATINO(0),
   NOT_HISPANIC_LATINO(1);
 
@@ -52,6 +34,7 @@ public enum ethnicity implements TEnum {
    * Find a the enum type by its integer value, as defined in the Thrift IDL.
    * @return null if the value is not found.
    */
+  @org.apache.thrift.annotation.Nullable
   public static ethnicity findByValue(int value) { 
     switch (value) {
       case 0:
diff --git a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/race.java b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/race.java
index 3bc91aa..6f86f51 100644
--- a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/race.java
+++ b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/race.java
@@ -1,22 +1,5 @@
 /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.10.0)
+ * Autogenerated by Thrift Compiler (0.12.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -24,8 +7,6 @@
 package org.apache.custos.profile.model.user;
 
 
-import org.apache.thrift.TEnum;
-
 /**
  * * Asian - a person having origins in any of the original peoples of the Far East,
  * *      Southeast Asia, or the Indian subcontinent including, for example, Cambodia,
@@ -41,7 +22,8 @@ import org.apache.thrift.TEnum;
  * * White - a person having origins in any of the original peoples of Europe, the Middle East, or North Africa.
  * *
  */
-public enum race implements TEnum {
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.12.0)", date = "2019-08-12")
+public enum race implements org.apache.thrift.TEnum {
   ASIAN(0),
   AMERICAN_INDIAN_OR_ALASKAN_NATIVE(1),
   BLACK_OR_AFRICAN_AMERICAN(2),
@@ -65,6 +47,7 @@ public enum race implements TEnum {
    * Find a the enum type by its integer value, as defined in the Thrift IDL.
    * @return null if the value is not found.
    */
+  @org.apache.thrift.annotation.Nullable
   public static race findByValue(int value) { 
     switch (value) {
       case 0:
diff --git a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/user_profile_modelConstants.java b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/user_profile_modelConstants.java
index 03b89d8..d7a5a42 100644
--- a/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/user_profile_modelConstants.java
+++ b/custos-profile-service/profile-service-model/src/main/java/org/apache/custos/profile/model/user/user_profile_modelConstants.java
@@ -1,22 +1,5 @@
 /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Autogenerated by Thrift Compiler (0.10.0)
+ * Autogenerated by Thrift Compiler (0.12.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -28,4 +11,6 @@ public class user_profile_modelConstants {
 
   public static final String USER_PROFILE_VERSION = "1.0";
 
+  public static final String DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS";
+
 }
diff --git a/ide-integration/src/main/resources/database_scripts/init/01-databases.sql b/ide-integration/src/main/resources/database_scripts/init/01-databases.sql
index 42e6d86..dabf29c 100644
--- a/ide-integration/src/main/resources/database_scripts/init/01-databases.sql
+++ b/ide-integration/src/main/resources/database_scripts/init/01-databases.sql
@@ -72,54 +72,6 @@ INSERT INTO `USER_PROFILE` VALUES ('default-admin@default','default-admin','defa
 /*!40000 ALTER TABLE `USER_PROFILE` ENABLE KEYS */;
 UNLOCK TABLES;
 
-
---
--- Table structure for table `CUSTOMIZED_DASHBOARD`
---
-
-DROP TABLE IF EXISTS `CUSTOMIZED_DASHBOARD`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `CUSTOMIZED_DASHBOARD` (
-  `CUSTOS_INTERNAL_USER_ID` varchar(255) NOT NULL,
-  `ENABLED_EXPERIMENT_ID` varchar(255) DEFAULT NULL,
-  `ENABLED_NAME` varchar(255) DEFAULT NULL,
-  `ENABLED_DESCRIPTION` varchar(255) DEFAULT NULL,
-  `ENABLED_PROJECT` varchar(255) DEFAULT NULL,
-  `ENABLED_OWNER` varchar(255) DEFAULT NULL,
-  `ENABLED_APPLICATION` varchar(255) DEFAULT NULL,
-  `ENABLED_COMPUTE_RESOURCE` varchar(255) DEFAULT NULL,
-  `ENABLED_JOB_NAME` varchar(255) DEFAULT NULL,
-  `ENABLED_JOB_ID` varchar(255) DEFAULT NULL,
-  `ENABLED_JOB_STATUS` varchar(255) DEFAULT NULL,
-  `ENABLED_JOB_CREATION_TIME` varchar(255) DEFAULT NULL,
-  `ENABLED_NOTIFICATIONS_TO` varchar(255) DEFAULT NULL,
-  `ENABLED_WORKING_DIR` varchar(255) DEFAULT NULL,
-  `ENABLED_JOB_DESCRIPTION` varchar(255) DEFAULT NULL,
-  `ENABLED_CREATION_TIME` varchar(255) DEFAULT NULL,
-  `ENABLED_LAST_MODIFIED_TIME` varchar(255) DEFAULT NULL,
-  `ENABLED_WALL_TIME` varchar(255) DEFAULT NULL,
-  `ENABLED_CPU_COUNT` varchar(255) DEFAULT NULL,
-  `ENABLED_NODE_COUNT` varchar(255) DEFAULT NULL,
-  `ENABLED_QUEUE` varchar(255) DEFAULT NULL,
-  `ENABLED_INPUTS` varchar(255) DEFAULT NULL,
-  `ENABLED_OUTPUTS` varchar(255) DEFAULT NULL,
-  `ENABLED_STORAGE_DIR` varchar(255) DEFAULT NULL,
-  `ENABLED_ERRORS` varchar(255) DEFAULT NULL,
-  PRIMARY KEY (`CUSTOS_INTERNAL_USER_ID`),
-  CONSTRAINT `customized_dashboard_ibfk_1` FOREIGN KEY (`CUSTOS_INTERNAL_USER_ID`) REFERENCES `USER_PROFILE` (`CUSTOS_INTERNAL_USER_ID`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `CUSTOMIZED_DASHBOARD`
---
-
-LOCK TABLES `CUSTOMIZED_DASHBOARD` WRITE;
-/*!40000 ALTER TABLE `CUSTOMIZED_DASHBOARD` DISABLE KEYS */;
-/*!40000 ALTER TABLE `CUSTOMIZED_DASHBOARD` ENABLE KEYS */;
-UNLOCK TABLES;
-
 --
 -- Table structure for table `GATEWAY`
 --
diff --git a/pom.xml b/pom.xml
index 6979179..63c9887 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,6 +22,7 @@
         <module>custos-authentication</module>
         <module>custos-profile-service</module>
         <module>custos-connectors</module>
+        <module>custos-sharing-registry-service</module>
     </modules>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/thrift-interfaces/profile-service/data-models/user-tenant-group-models/user_profile_model.thrift b/thrift-interfaces/profile-service/data-models/user-tenant-group-models/user_profile_model.thrift
index 808c5d9..3184f1f 100644
--- a/thrift-interfaces/profile-service/data-models/user-tenant-group-models/user_profile_model.thrift
+++ b/thrift-interfaces/profile-service/data-models/user-tenant-group-models/user_profile_model.thrift
@@ -108,39 +108,6 @@ struct NSFDemographics {
 }
 
 /**
- * A structure holding the cutomized admin dashboard information.
- *
- *
-*/
-struct CustomDashboard {
-    1: required string custosInternalUserId = DEFAULT_ID,
-    2: optional string experimentId,
-    3: optional string name,
-    4: optional string description,
-    5: optional string project,
-    6: optional string owner,
-    7: optional string application,
-    8: optional string computeResource,
-    9: optional string jobName,
-    10: optional string jobId,
-    11: optional string jobStatus,
-    12: optional string jobCreationTime,
-    13: optional string notificationsTo,
-    14: optional string workingDir,
-    15: optional string jobDescription,
-    16: optional string creationTime,
-    17: optional string lastModifiedTime,
-    18: optional string wallTime,
-    19: optional string cpuCount,
-    20: optional string nodeCount,
-    21: optional string queue,
-    22: optional string inputs,
-    23: optional string outputs,
-    24: optional string storageDir,
-    25: optional string errors
-}
-
-/**
  * A structure holding the user profile and its child models.
  *
  * Notes:
@@ -224,6 +191,5 @@ struct UserProfile {
     22: optional list<string> labeledURI,
     23: optional string gpgKey,
     24: optional string timeZone,
-    25: optional NSFDemographics nsfDemographics,
-    26: optional CustomDashboard customDashboard
+    25: optional NSFDemographics nsfDemographics
 }
\ No newline at end of file