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 2017/05/16 15:50:01 UTC

[12/50] [abbrv] airavata git commit: Add Tenant Profile Thrift Model

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.h
new file mode 100644
index 0000000..2a815f8
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.h
@@ -0,0 +1,244 @@
+/**
+ * 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.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef tenant_profile_model_TYPES_H
+#define tenant_profile_model_TYPES_H
+
+#include <iosfwd>
+
+#include <thrift/Thrift.h>
+#include <thrift/TApplicationException.h>
+#include <thrift/protocol/TProtocol.h>
+#include <thrift/transport/TTransport.h>
+
+#include <thrift/cxxfunctional.h>
+#include "airavata_commons_types.h"
+
+
+namespace apache { namespace airavata { namespace model { namespace tenant {
+
+struct TenantApprovalStatus {
+  enum type {
+    REQUESTED = 0,
+    APPROVED = 1,
+    ACTIVE = 2,
+    DEACTIVATED = 3,
+    CANCELLED = 4,
+    DENIED = 5,
+    CREATED = 6
+  };
+};
+
+extern const std::map<int, const char*> _TenantApprovalStatus_VALUES_TO_NAMES;
+
+class Tenant;
+
+typedef struct _Tenant__isset {
+  _Tenant__isset() : tenantName(false), domain(false), emailAddress(false), tenantAcronym(false), tenantURL(false), tenantPublicAbstract(false), reviewProposalDescription(false), tenantAdminFirstName(false), tenantAdminLastName(false), tenantAdminEmail(false), identityServerUserName(false), identityServerPasswordToken(false), declinedReason(false), oauthClientId(false), oauthClientSecret(false), requestCreationTime(false), requesterUsername(false) {}
+  bool tenantName :1;
+  bool domain :1;
+  bool emailAddress :1;
+  bool tenantAcronym :1;
+  bool tenantURL :1;
+  bool tenantPublicAbstract :1;
+  bool reviewProposalDescription :1;
+  bool tenantAdminFirstName :1;
+  bool tenantAdminLastName :1;
+  bool tenantAdminEmail :1;
+  bool identityServerUserName :1;
+  bool identityServerPasswordToken :1;
+  bool declinedReason :1;
+  bool oauthClientId :1;
+  bool oauthClientSecret :1;
+  bool requestCreationTime :1;
+  bool requesterUsername :1;
+} _Tenant__isset;
+
+class Tenant {
+ public:
+
+  Tenant(const Tenant&);
+  Tenant& operator=(const Tenant&);
+  Tenant() : tenantId(), tenantApprovalStatus((TenantApprovalStatus::type)0), tenantName(), domain(), emailAddress(), tenantAcronym(), tenantURL(), tenantPublicAbstract(), reviewProposalDescription(), tenantAdminFirstName(), tenantAdminLastName(), tenantAdminEmail(), identityServerUserName(), identityServerPasswordToken(), declinedReason(), oauthClientId(), oauthClientSecret(), requestCreationTime(0), requesterUsername() {
+  }
+
+  virtual ~Tenant() throw();
+  std::string tenantId;
+  TenantApprovalStatus::type tenantApprovalStatus;
+  std::string tenantName;
+  std::string domain;
+  std::string emailAddress;
+  std::string tenantAcronym;
+  std::string tenantURL;
+  std::string tenantPublicAbstract;
+  std::string reviewProposalDescription;
+  std::string tenantAdminFirstName;
+  std::string tenantAdminLastName;
+  std::string tenantAdminEmail;
+  std::string identityServerUserName;
+  std::string identityServerPasswordToken;
+  std::string declinedReason;
+  std::string oauthClientId;
+  std::string oauthClientSecret;
+  int64_t requestCreationTime;
+  std::string requesterUsername;
+
+  _Tenant__isset __isset;
+
+  void __set_tenantId(const std::string& val);
+
+  void __set_tenantApprovalStatus(const TenantApprovalStatus::type val);
+
+  void __set_tenantName(const std::string& val);
+
+  void __set_domain(const std::string& val);
+
+  void __set_emailAddress(const std::string& val);
+
+  void __set_tenantAcronym(const std::string& val);
+
+  void __set_tenantURL(const std::string& val);
+
+  void __set_tenantPublicAbstract(const std::string& val);
+
+  void __set_reviewProposalDescription(const std::string& val);
+
+  void __set_tenantAdminFirstName(const std::string& val);
+
+  void __set_tenantAdminLastName(const std::string& val);
+
+  void __set_tenantAdminEmail(const std::string& val);
+
+  void __set_identityServerUserName(const std::string& val);
+
+  void __set_identityServerPasswordToken(const std::string& val);
+
+  void __set_declinedReason(const std::string& val);
+
+  void __set_oauthClientId(const std::string& val);
+
+  void __set_oauthClientSecret(const std::string& val);
+
+  void __set_requestCreationTime(const int64_t val);
+
+  void __set_requesterUsername(const std::string& val);
+
+  bool operator == (const Tenant & rhs) const
+  {
+    if (!(tenantId == rhs.tenantId))
+      return false;
+    if (!(tenantApprovalStatus == rhs.tenantApprovalStatus))
+      return false;
+    if (__isset.tenantName != rhs.__isset.tenantName)
+      return false;
+    else if (__isset.tenantName && !(tenantName == rhs.tenantName))
+      return false;
+    if (__isset.domain != rhs.__isset.domain)
+      return false;
+    else if (__isset.domain && !(domain == rhs.domain))
+      return false;
+    if (__isset.emailAddress != rhs.__isset.emailAddress)
+      return false;
+    else if (__isset.emailAddress && !(emailAddress == rhs.emailAddress))
+      return false;
+    if (__isset.tenantAcronym != rhs.__isset.tenantAcronym)
+      return false;
+    else if (__isset.tenantAcronym && !(tenantAcronym == rhs.tenantAcronym))
+      return false;
+    if (__isset.tenantURL != rhs.__isset.tenantURL)
+      return false;
+    else if (__isset.tenantURL && !(tenantURL == rhs.tenantURL))
+      return false;
+    if (__isset.tenantPublicAbstract != rhs.__isset.tenantPublicAbstract)
+      return false;
+    else if (__isset.tenantPublicAbstract && !(tenantPublicAbstract == rhs.tenantPublicAbstract))
+      return false;
+    if (__isset.reviewProposalDescription != rhs.__isset.reviewProposalDescription)
+      return false;
+    else if (__isset.reviewProposalDescription && !(reviewProposalDescription == rhs.reviewProposalDescription))
+      return false;
+    if (__isset.tenantAdminFirstName != rhs.__isset.tenantAdminFirstName)
+      return false;
+    else if (__isset.tenantAdminFirstName && !(tenantAdminFirstName == rhs.tenantAdminFirstName))
+      return false;
+    if (__isset.tenantAdminLastName != rhs.__isset.tenantAdminLastName)
+      return false;
+    else if (__isset.tenantAdminLastName && !(tenantAdminLastName == rhs.tenantAdminLastName))
+      return false;
+    if (__isset.tenantAdminEmail != rhs.__isset.tenantAdminEmail)
+      return false;
+    else if (__isset.tenantAdminEmail && !(tenantAdminEmail == rhs.tenantAdminEmail))
+      return false;
+    if (__isset.identityServerUserName != rhs.__isset.identityServerUserName)
+      return false;
+    else if (__isset.identityServerUserName && !(identityServerUserName == rhs.identityServerUserName))
+      return false;
+    if (__isset.identityServerPasswordToken != rhs.__isset.identityServerPasswordToken)
+      return false;
+    else if (__isset.identityServerPasswordToken && !(identityServerPasswordToken == rhs.identityServerPasswordToken))
+      return false;
+    if (__isset.declinedReason != rhs.__isset.declinedReason)
+      return false;
+    else if (__isset.declinedReason && !(declinedReason == rhs.declinedReason))
+      return false;
+    if (__isset.oauthClientId != rhs.__isset.oauthClientId)
+      return false;
+    else if (__isset.oauthClientId && !(oauthClientId == rhs.oauthClientId))
+      return false;
+    if (__isset.oauthClientSecret != rhs.__isset.oauthClientSecret)
+      return false;
+    else if (__isset.oauthClientSecret && !(oauthClientSecret == rhs.oauthClientSecret))
+      return false;
+    if (__isset.requestCreationTime != rhs.__isset.requestCreationTime)
+      return false;
+    else if (__isset.requestCreationTime && !(requestCreationTime == rhs.requestCreationTime))
+      return false;
+    if (__isset.requesterUsername != rhs.__isset.requesterUsername)
+      return false;
+    else if (__isset.requesterUsername && !(requesterUsername == rhs.requesterUsername))
+      return false;
+    return true;
+  }
+  bool operator != (const Tenant &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Tenant & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  virtual void printTo(std::ostream& out) const;
+};
+
+void swap(Tenant &a, Tenant &b);
+
+inline std::ostream& operator<<(std::ostream& out, const Tenant& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
+}}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_profile_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_profile_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_profile_model_types.cpp
index 8dbb408..a7b968a 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_profile_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_profile_model_types.cpp
@@ -121,6 +121,10 @@ NSFDemographics::~NSFDemographics() throw() {
 }
 
 
+void NSFDemographics::__set_airavataInternalUserId(const std::string& val) {
+  this->airavataInternalUserId = val;
+}
+
 void NSFDemographics::__set_gender(const std::string& val) {
   this->gender = val;
 __isset.gender = true;
@@ -158,6 +162,7 @@ uint32_t NSFDemographics::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   using ::apache::thrift::protocol::TProtocolException;
 
+  bool isset_airavataInternalUserId = false;
 
   while (true)
   {
@@ -169,13 +174,21 @@ uint32_t NSFDemographics::read(::apache::thrift::protocol::TProtocol* iprot) {
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->airavataInternalUserId);
+          isset_airavataInternalUserId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->gender);
           this->__isset.gender = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 2:
+      case 3:
         if (ftype == ::apache::thrift::protocol::T_I32) {
           int32_t ecast0;
           xfer += iprot->readI32(ecast0);
@@ -185,7 +198,7 @@ uint32_t NSFDemographics::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 3:
+      case 4:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->ethnicities.clear();
@@ -207,7 +220,7 @@ uint32_t NSFDemographics::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
+      case 5:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->races.clear();
@@ -229,7 +242,7 @@ uint32_t NSFDemographics::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 5:
+      case 6:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->disabilities.clear();
@@ -260,6 +273,8 @@ uint32_t NSFDemographics::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   xfer += iprot->readStructEnd();
 
+  if (!isset_airavataInternalUserId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
@@ -268,18 +283,22 @@ uint32_t NSFDemographics::write(::apache::thrift::protocol::TProtocol* oprot) co
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
   xfer += oprot->writeStructBegin("NSFDemographics");
 
+  xfer += oprot->writeFieldBegin("airavataInternalUserId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->airavataInternalUserId);
+  xfer += oprot->writeFieldEnd();
+
   if (this->__isset.gender) {
-    xfer += oprot->writeFieldBegin("gender", ::apache::thrift::protocol::T_STRING, 1);
+    xfer += oprot->writeFieldBegin("gender", ::apache::thrift::protocol::T_STRING, 2);
     xfer += oprot->writeString(this->gender);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.usCitizenship) {
-    xfer += oprot->writeFieldBegin("usCitizenship", ::apache::thrift::protocol::T_I32, 2);
+    xfer += oprot->writeFieldBegin("usCitizenship", ::apache::thrift::protocol::T_I32, 3);
     xfer += oprot->writeI32((int32_t)this->usCitizenship);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.ethnicities) {
-    xfer += oprot->writeFieldBegin("ethnicities", ::apache::thrift::protocol::T_LIST, 3);
+    xfer += oprot->writeFieldBegin("ethnicities", ::apache::thrift::protocol::T_LIST, 4);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I32, static_cast<uint32_t>(this->ethnicities.size()));
       std::vector<ethnicity::type> ::const_iterator _iter19;
@@ -292,7 +311,7 @@ uint32_t NSFDemographics::write(::apache::thrift::protocol::TProtocol* oprot) co
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.races) {
-    xfer += oprot->writeFieldBegin("races", ::apache::thrift::protocol::T_LIST, 4);
+    xfer += oprot->writeFieldBegin("races", ::apache::thrift::protocol::T_LIST, 5);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I32, static_cast<uint32_t>(this->races.size()));
       std::vector<race::type> ::const_iterator _iter20;
@@ -305,7 +324,7 @@ uint32_t NSFDemographics::write(::apache::thrift::protocol::TProtocol* oprot) co
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.disabilities) {
-    xfer += oprot->writeFieldBegin("disabilities", ::apache::thrift::protocol::T_LIST, 5);
+    xfer += oprot->writeFieldBegin("disabilities", ::apache::thrift::protocol::T_LIST, 6);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I32, static_cast<uint32_t>(this->disabilities.size()));
       std::vector<disability::type> ::const_iterator _iter21;
@@ -324,6 +343,7 @@ uint32_t NSFDemographics::write(::apache::thrift::protocol::TProtocol* oprot) co
 
 void swap(NSFDemographics &a, NSFDemographics &b) {
   using ::std::swap;
+  swap(a.airavataInternalUserId, b.airavataInternalUserId);
   swap(a.gender, b.gender);
   swap(a.usCitizenship, b.usCitizenship);
   swap(a.ethnicities, b.ethnicities);
@@ -333,6 +353,7 @@ void swap(NSFDemographics &a, NSFDemographics &b) {
 }
 
 NSFDemographics::NSFDemographics(const NSFDemographics& other22) {
+  airavataInternalUserId = other22.airavataInternalUserId;
   gender = other22.gender;
   usCitizenship = other22.usCitizenship;
   ethnicities = other22.ethnicities;
@@ -341,6 +362,7 @@ NSFDemographics::NSFDemographics(const NSFDemographics& other22) {
   __isset = other22.__isset;
 }
 NSFDemographics& NSFDemographics::operator=(const NSFDemographics& other23) {
+  airavataInternalUserId = other23.airavataInternalUserId;
   gender = other23.gender;
   usCitizenship = other23.usCitizenship;
   ethnicities = other23.ethnicities;
@@ -352,7 +374,8 @@ NSFDemographics& NSFDemographics::operator=(const NSFDemographics& other23) {
 void NSFDemographics::printTo(std::ostream& out) const {
   using ::apache::thrift::to_string;
   out << "NSFDemographics(";
-  out << "gender="; (__isset.gender ? (out << to_string(gender)) : (out << "<null>"));
+  out << "airavataInternalUserId=" << to_string(airavataInternalUserId);
+  out << ", " << "gender="; (__isset.gender ? (out << to_string(gender)) : (out << "<null>"));
   out << ", " << "usCitizenship="; (__isset.usCitizenship ? (out << to_string(usCitizenship)) : (out << "<null>"));
   out << ", " << "ethnicities="; (__isset.ethnicities ? (out << to_string(ethnicities)) : (out << "<null>"));
   out << ", " << "races="; (__isset.races ? (out << to_string(races)) : (out << "<null>"));
@@ -385,6 +408,29 @@ void UserProfile::__set_emails(const std::vector<std::string> & val) {
   this->emails = val;
 }
 
+void UserProfile::__set_firstName(const std::string& val) {
+  this->firstName = val;
+}
+
+void UserProfile::__set_lastName(const std::string& val) {
+  this->lastName = val;
+}
+
+void UserProfile::__set_middleName(const std::string& val) {
+  this->middleName = val;
+__isset.middleName = true;
+}
+
+void UserProfile::__set_namePrefix(const std::string& val) {
+  this->namePrefix = val;
+__isset.namePrefix = true;
+}
+
+void UserProfile::__set_nameSuffix(const std::string& val) {
+  this->nameSuffix = val;
+__isset.nameSuffix = true;
+}
+
 void UserProfile::__set_userName(const std::string& val) {
   this->userName = val;
 __isset.userName = true;
@@ -420,15 +466,15 @@ void UserProfile::__set_orginationAffiliation(const std::string& val) {
 __isset.orginationAffiliation = true;
 }
 
-void UserProfile::__set_creationTime(const std::string& val) {
+void UserProfile::__set_creationTime(const int64_t val) {
   this->creationTime = val;
 }
 
-void UserProfile::__set_lastAccessTime(const std::string& val) {
+void UserProfile::__set_lastAccessTime(const int64_t val) {
   this->lastAccessTime = val;
 }
 
-void UserProfile::__set_validUntil(const std::string& val) {
+void UserProfile::__set_validUntil(const int64_t val) {
   this->validUntil = val;
 }
 
@@ -478,6 +524,8 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
   bool isset_userId = false;
   bool isset_gatewayId = false;
   bool isset_emails = false;
+  bool isset_firstName = false;
+  bool isset_lastName = false;
   bool isset_creationTime = false;
   bool isset_lastAccessTime = false;
   bool isset_validUntil = false;
@@ -545,13 +593,53 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 6:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->firstName);
+          isset_firstName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->lastName);
+          isset_lastName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->middleName);
+          this->__isset.middleName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 9:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->namePrefix);
+          this->__isset.namePrefix = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->nameSuffix);
+          this->__isset.nameSuffix = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 11:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->userName);
           this->__isset.userName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 7:
+      case 12:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->orcidId);
           this->__isset.orcidId = true;
@@ -559,7 +647,7 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 8:
+      case 13:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->phones.clear();
@@ -579,7 +667,7 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 9:
+      case 14:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->country);
           this->__isset.country = true;
@@ -587,7 +675,7 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 10:
+      case 15:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->nationality.clear();
@@ -607,7 +695,7 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 11:
+      case 16:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->homeOrganization);
           this->__isset.homeOrganization = true;
@@ -615,7 +703,7 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 12:
+      case 17:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->orginationAffiliation);
           this->__isset.orginationAffiliation = true;
@@ -623,31 +711,31 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 13:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->creationTime);
+      case 18:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->creationTime);
           isset_creationTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 14:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->lastAccessTime);
+      case 19:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->lastAccessTime);
           isset_lastAccessTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 15:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->validUntil);
+      case 20:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->validUntil);
           isset_validUntil = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 16:
+      case 21:
         if (ftype == ::apache::thrift::protocol::T_I32) {
           int32_t ecast39;
           xfer += iprot->readI32(ecast39);
@@ -657,7 +745,7 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 17:
+      case 22:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->comments);
           this->__isset.comments = true;
@@ -665,7 +753,7 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 18:
+      case 23:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->labeledURI.clear();
@@ -685,7 +773,7 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 19:
+      case 24:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->gpgKey);
           this->__isset.gpgKey = true;
@@ -693,7 +781,7 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 20:
+      case 25:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->timeZone);
           this->__isset.timeZone = true;
@@ -701,7 +789,7 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 21:
+      case 26:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->nsfDemographics.read(iprot);
           this->__isset.nsfDemographics = true;
@@ -728,6 +816,10 @@ uint32_t UserProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_emails)
     throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_firstName)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_lastName)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_creationTime)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_lastAccessTime)
@@ -772,18 +864,41 @@ uint32_t UserProfile::write(::apache::thrift::protocol::TProtocol* oprot) const
   }
   xfer += oprot->writeFieldEnd();
 
+  xfer += oprot->writeFieldBegin("firstName", ::apache::thrift::protocol::T_STRING, 6);
+  xfer += oprot->writeString(this->firstName);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("lastName", ::apache::thrift::protocol::T_STRING, 7);
+  xfer += oprot->writeString(this->lastName);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.middleName) {
+    xfer += oprot->writeFieldBegin("middleName", ::apache::thrift::protocol::T_STRING, 8);
+    xfer += oprot->writeString(this->middleName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.namePrefix) {
+    xfer += oprot->writeFieldBegin("namePrefix", ::apache::thrift::protocol::T_STRING, 9);
+    xfer += oprot->writeString(this->namePrefix);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.nameSuffix) {
+    xfer += oprot->writeFieldBegin("nameSuffix", ::apache::thrift::protocol::T_STRING, 10);
+    xfer += oprot->writeString(this->nameSuffix);
+    xfer += oprot->writeFieldEnd();
+  }
   if (this->__isset.userName) {
-    xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 11);
     xfer += oprot->writeString(this->userName);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.orcidId) {
-    xfer += oprot->writeFieldBegin("orcidId", ::apache::thrift::protocol::T_STRING, 7);
+    xfer += oprot->writeFieldBegin("orcidId", ::apache::thrift::protocol::T_STRING, 12);
     xfer += oprot->writeString(this->orcidId);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.phones) {
-    xfer += oprot->writeFieldBegin("phones", ::apache::thrift::protocol::T_LIST, 8);
+    xfer += oprot->writeFieldBegin("phones", ::apache::thrift::protocol::T_LIST, 13);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->phones.size()));
       std::vector<std::string> ::const_iterator _iter46;
@@ -796,12 +911,12 @@ uint32_t UserProfile::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.country) {
-    xfer += oprot->writeFieldBegin("country", ::apache::thrift::protocol::T_STRING, 9);
+    xfer += oprot->writeFieldBegin("country", ::apache::thrift::protocol::T_STRING, 14);
     xfer += oprot->writeString(this->country);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.nationality) {
-    xfer += oprot->writeFieldBegin("nationality", ::apache::thrift::protocol::T_LIST, 10);
+    xfer += oprot->writeFieldBegin("nationality", ::apache::thrift::protocol::T_LIST, 15);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->nationality.size()));
       std::vector<std::string> ::const_iterator _iter47;
@@ -814,38 +929,38 @@ uint32_t UserProfile::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.homeOrganization) {
-    xfer += oprot->writeFieldBegin("homeOrganization", ::apache::thrift::protocol::T_STRING, 11);
+    xfer += oprot->writeFieldBegin("homeOrganization", ::apache::thrift::protocol::T_STRING, 16);
     xfer += oprot->writeString(this->homeOrganization);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.orginationAffiliation) {
-    xfer += oprot->writeFieldBegin("orginationAffiliation", ::apache::thrift::protocol::T_STRING, 12);
+    xfer += oprot->writeFieldBegin("orginationAffiliation", ::apache::thrift::protocol::T_STRING, 17);
     xfer += oprot->writeString(this->orginationAffiliation);
     xfer += oprot->writeFieldEnd();
   }
-  xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_STRING, 13);
-  xfer += oprot->writeString(this->creationTime);
+  xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 18);
+  xfer += oprot->writeI64(this->creationTime);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("lastAccessTime", ::apache::thrift::protocol::T_STRING, 14);
-  xfer += oprot->writeString(this->lastAccessTime);
+  xfer += oprot->writeFieldBegin("lastAccessTime", ::apache::thrift::protocol::T_I64, 19);
+  xfer += oprot->writeI64(this->lastAccessTime);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("validUntil", ::apache::thrift::protocol::T_STRING, 15);
-  xfer += oprot->writeString(this->validUntil);
+  xfer += oprot->writeFieldBegin("validUntil", ::apache::thrift::protocol::T_I64, 20);
+  xfer += oprot->writeI64(this->validUntil);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("State", ::apache::thrift::protocol::T_I32, 16);
+  xfer += oprot->writeFieldBegin("State", ::apache::thrift::protocol::T_I32, 21);
   xfer += oprot->writeI32((int32_t)this->State);
   xfer += oprot->writeFieldEnd();
 
   if (this->__isset.comments) {
-    xfer += oprot->writeFieldBegin("comments", ::apache::thrift::protocol::T_STRING, 17);
+    xfer += oprot->writeFieldBegin("comments", ::apache::thrift::protocol::T_STRING, 22);
     xfer += oprot->writeString(this->comments);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.labeledURI) {
-    xfer += oprot->writeFieldBegin("labeledURI", ::apache::thrift::protocol::T_LIST, 18);
+    xfer += oprot->writeFieldBegin("labeledURI", ::apache::thrift::protocol::T_LIST, 23);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->labeledURI.size()));
       std::vector<std::string> ::const_iterator _iter48;
@@ -858,17 +973,17 @@ uint32_t UserProfile::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.gpgKey) {
-    xfer += oprot->writeFieldBegin("gpgKey", ::apache::thrift::protocol::T_STRING, 19);
+    xfer += oprot->writeFieldBegin("gpgKey", ::apache::thrift::protocol::T_STRING, 24);
     xfer += oprot->writeString(this->gpgKey);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.timeZone) {
-    xfer += oprot->writeFieldBegin("timeZone", ::apache::thrift::protocol::T_STRING, 20);
+    xfer += oprot->writeFieldBegin("timeZone", ::apache::thrift::protocol::T_STRING, 25);
     xfer += oprot->writeString(this->timeZone);
     xfer += oprot->writeFieldEnd();
   }
   if (this->__isset.nsfDemographics) {
-    xfer += oprot->writeFieldBegin("nsfDemographics", ::apache::thrift::protocol::T_STRUCT, 21);
+    xfer += oprot->writeFieldBegin("nsfDemographics", ::apache::thrift::protocol::T_STRUCT, 26);
     xfer += this->nsfDemographics.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
@@ -884,6 +999,11 @@ void swap(UserProfile &a, UserProfile &b) {
   swap(a.userId, b.userId);
   swap(a.gatewayId, b.gatewayId);
   swap(a.emails, b.emails);
+  swap(a.firstName, b.firstName);
+  swap(a.lastName, b.lastName);
+  swap(a.middleName, b.middleName);
+  swap(a.namePrefix, b.namePrefix);
+  swap(a.nameSuffix, b.nameSuffix);
   swap(a.userName, b.userName);
   swap(a.orcidId, b.orcidId);
   swap(a.phones, b.phones);
@@ -909,6 +1029,11 @@ UserProfile::UserProfile(const UserProfile& other49) {
   userId = other49.userId;
   gatewayId = other49.gatewayId;
   emails = other49.emails;
+  firstName = other49.firstName;
+  lastName = other49.lastName;
+  middleName = other49.middleName;
+  namePrefix = other49.namePrefix;
+  nameSuffix = other49.nameSuffix;
   userName = other49.userName;
   orcidId = other49.orcidId;
   phones = other49.phones;
@@ -933,6 +1058,11 @@ UserProfile& UserProfile::operator=(const UserProfile& other50) {
   userId = other50.userId;
   gatewayId = other50.gatewayId;
   emails = other50.emails;
+  firstName = other50.firstName;
+  lastName = other50.lastName;
+  middleName = other50.middleName;
+  namePrefix = other50.namePrefix;
+  nameSuffix = other50.nameSuffix;
   userName = other50.userName;
   orcidId = other50.orcidId;
   phones = other50.phones;
@@ -960,6 +1090,11 @@ void UserProfile::printTo(std::ostream& out) const {
   out << ", " << "userId=" << to_string(userId);
   out << ", " << "gatewayId=" << to_string(gatewayId);
   out << ", " << "emails=" << to_string(emails);
+  out << ", " << "firstName=" << to_string(firstName);
+  out << ", " << "lastName=" << to_string(lastName);
+  out << ", " << "middleName="; (__isset.middleName ? (out << to_string(middleName)) : (out << "<null>"));
+  out << ", " << "namePrefix="; (__isset.namePrefix ? (out << to_string(namePrefix)) : (out << "<null>"));
+  out << ", " << "nameSuffix="; (__isset.nameSuffix ? (out << to_string(nameSuffix)) : (out << "<null>"));
   out << ", " << "userName="; (__isset.userName ? (out << to_string(userName)) : (out << "<null>"));
   out << ", " << "orcidId="; (__isset.orcidId ? (out << to_string(orcidId)) : (out << "<null>"));
   out << ", " << "phones="; (__isset.phones ? (out << to_string(phones)) : (out << "<null>"));

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_profile_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_profile_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_profile_model_types.h
index 69fa0a0..1d5b3be 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_profile_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_profile_model_types.h
@@ -118,10 +118,11 @@ class NSFDemographics {
 
   NSFDemographics(const NSFDemographics&);
   NSFDemographics& operator=(const NSFDemographics&);
-  NSFDemographics() : gender(), usCitizenship((USCitizenship::type)0) {
+  NSFDemographics() : airavataInternalUserId("DO_NOT_SET_AT_CLIENTS"), gender(), usCitizenship((USCitizenship::type)0) {
   }
 
   virtual ~NSFDemographics() throw();
+  std::string airavataInternalUserId;
   std::string gender;
   USCitizenship::type usCitizenship;
   std::vector<ethnicity::type>  ethnicities;
@@ -130,6 +131,8 @@ class NSFDemographics {
 
   _NSFDemographics__isset __isset;
 
+  void __set_airavataInternalUserId(const std::string& val);
+
   void __set_gender(const std::string& val);
 
   void __set_usCitizenship(const USCitizenship::type val);
@@ -142,6 +145,8 @@ class NSFDemographics {
 
   bool operator == (const NSFDemographics & rhs) const
   {
+    if (!(airavataInternalUserId == rhs.airavataInternalUserId))
+      return false;
     if (__isset.gender != rhs.__isset.gender)
       return false;
     else if (__isset.gender && !(gender == rhs.gender))
@@ -185,7 +190,10 @@ inline std::ostream& operator<<(std::ostream& out, const NSFDemographics& obj)
 }
 
 typedef struct _UserProfile__isset {
-  _UserProfile__isset() : userName(false), orcidId(false), phones(false), country(false), nationality(false), homeOrganization(false), orginationAffiliation(false), comments(false), labeledURI(false), gpgKey(false), timeZone(false), nsfDemographics(false) {}
+  _UserProfile__isset() : middleName(false), namePrefix(false), nameSuffix(false), userName(false), orcidId(false), phones(false), country(false), nationality(false), homeOrganization(false), orginationAffiliation(false), comments(false), labeledURI(false), gpgKey(false), timeZone(false), nsfDemographics(false) {}
+  bool middleName :1;
+  bool namePrefix :1;
+  bool nameSuffix :1;
   bool userName :1;
   bool orcidId :1;
   bool phones :1;
@@ -205,7 +213,7 @@ class UserProfile {
 
   UserProfile(const UserProfile&);
   UserProfile& operator=(const UserProfile&);
-  UserProfile() : userModelVersion("1.0"), airavataInternalUserId("DO_NOT_SET_AT_CLIENTS"), userId(), gatewayId(), userName(), orcidId(), country(), homeOrganization(), orginationAffiliation(), creationTime(), lastAccessTime(), validUntil(), State((Status::type)0), comments(), gpgKey(), timeZone() {
+  UserProfile() : userModelVersion("1.0"), airavataInternalUserId("DO_NOT_SET_AT_CLIENTS"), userId(), gatewayId(), firstName(), lastName(), middleName(), namePrefix(), nameSuffix(), userName(), orcidId(), country(), homeOrganization(), orginationAffiliation(), creationTime(0), lastAccessTime(0), validUntil(0), State((Status::type)0), comments(), gpgKey(), timeZone() {
   }
 
   virtual ~UserProfile() throw();
@@ -214,6 +222,11 @@ class UserProfile {
   std::string userId;
   std::string gatewayId;
   std::vector<std::string>  emails;
+  std::string firstName;
+  std::string lastName;
+  std::string middleName;
+  std::string namePrefix;
+  std::string nameSuffix;
   std::string userName;
   std::string orcidId;
   std::vector<std::string>  phones;
@@ -221,9 +234,9 @@ class UserProfile {
   std::vector<std::string>  nationality;
   std::string homeOrganization;
   std::string orginationAffiliation;
-  std::string creationTime;
-  std::string lastAccessTime;
-  std::string validUntil;
+  int64_t creationTime;
+  int64_t lastAccessTime;
+  int64_t validUntil;
   Status::type State;
   std::string comments;
   std::vector<std::string>  labeledURI;
@@ -243,6 +256,16 @@ class UserProfile {
 
   void __set_emails(const std::vector<std::string> & val);
 
+  void __set_firstName(const std::string& val);
+
+  void __set_lastName(const std::string& val);
+
+  void __set_middleName(const std::string& val);
+
+  void __set_namePrefix(const std::string& val);
+
+  void __set_nameSuffix(const std::string& val);
+
   void __set_userName(const std::string& val);
 
   void __set_orcidId(const std::string& val);
@@ -257,11 +280,11 @@ class UserProfile {
 
   void __set_orginationAffiliation(const std::string& val);
 
-  void __set_creationTime(const std::string& val);
+  void __set_creationTime(const int64_t val);
 
-  void __set_lastAccessTime(const std::string& val);
+  void __set_lastAccessTime(const int64_t val);
 
-  void __set_validUntil(const std::string& val);
+  void __set_validUntil(const int64_t val);
 
   void __set_State(const Status::type val);
 
@@ -287,6 +310,22 @@ class UserProfile {
       return false;
     if (!(emails == rhs.emails))
       return false;
+    if (!(firstName == rhs.firstName))
+      return false;
+    if (!(lastName == rhs.lastName))
+      return false;
+    if (__isset.middleName != rhs.__isset.middleName)
+      return false;
+    else if (__isset.middleName && !(middleName == rhs.middleName))
+      return false;
+    if (__isset.namePrefix != rhs.__isset.namePrefix)
+      return false;
+    else if (__isset.namePrefix && !(namePrefix == rhs.namePrefix))
+      return false;
+    if (__isset.nameSuffix != rhs.__isset.nameSuffix)
+      return false;
+    else if (__isset.nameSuffix && !(nameSuffix == rhs.nameSuffix))
+      return false;
     if (__isset.userName != rhs.__isset.userName)
       return false;
     else if (__isset.userName && !(userName == rhs.userName))

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index e1032be..23df7a4 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -4139,6 +4139,12 @@ interface AiravataIf {
    * *  Externally assertable unique identifier. SAML (primarly in higher education, academic) tends to keep
    * *   user name less opaque. OpenID Connect maintains them to be opaque.
    * *
+   * * firstName, middleName, lastName:
+   * *  First and Last names as assertede by the user
+   * *
+   * * namePrefix, nameSuffix:
+   * *  prefix and suffix to the users name as asserted by the user
+   * *
    * * emails:
    * *   Email identifier are Verified, REQUIRED and MULTIVALUED
    * *
@@ -4222,6 +4228,12 @@ interface AiravataIf {
    * *  Externally assertable unique identifier. SAML (primarly in higher education, academic) tends to keep
    * *   user name less opaque. OpenID Connect maintains them to be opaque.
    * *
+   * * firstName, middleName, lastName:
+   * *  First and Last names as assertede by the user
+   * *
+   * * namePrefix, nameSuffix:
+   * *  prefix and suffix to the users name as asserted by the user
+   * *
    * * emails:
    * *   Email identifier are Verified, REQUIRED and MULTIVALUED
    * *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Error/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Error/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Error/Types.php
index edaa6de..0b5258d 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Error/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Error/Types.php
@@ -514,6 +514,88 @@ class AuthorizationException extends TException {
 }
 
 /**
+ * This exception is thrown when you try to save a duplicate entity that already exists
+ *   in the database.
+ * 
+ *   message: contains the associated error message
+ * 
+ */
+class DuplicateEntryException extends TException {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $message = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'message',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['message'])) {
+        $this->message = $vals['message'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'DuplicateEntryException';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->message);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('DuplicateEntryException');
+    if ($this->message !== null) {
+      $xfer += $output->writeFieldBegin('message', TType::STRING, 1);
+      $xfer += $output->writeString($this->message);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+/**
  * This exception is thrown by Airavata Services when a call fails as a result of
  * a problem that a client may be able to resolve.  For example, if the user
  * attempts to execute an application on a resource gateway does not have access to.

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
index 03a2690..86e6c5d 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/ComputeResource/Types.php
@@ -51,7 +51,7 @@ final class ResourceJobManagerType {
     3 => 'LSF',
     4 => 'UGE',
     5 => 'CLOUD',
-      6 => 'AIRAVATA_CUSTOM',
+    6 => 'AIRAVATA_CUSTOM',
   );
 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Application/Io/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Application/Io/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Application/Io/Types.php
index fd97025..b8bdf76 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Application/Io/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Application/Io/Types.php
@@ -173,9 +173,9 @@ class InputDataObjectType {
           'var' => 'storageResourceId',
           'type' => TType::STRING,
           ),
-          13 => array(
-              'var' => 'isReadOnly',
-              'type' => TType::BOOL,
+        13 => array(
+          'var' => 'isReadOnly',
+          'type' => TType::BOOL,
           ),
         );
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Replica/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Replica/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Replica/Types.php
index 7fba287..d6e208e 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Replica/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Data/Replica/Types.php
@@ -48,103 +48,107 @@ final class DataProductType {
   );
 }
 
-class DataProductModel {
+class DataReplicaLocationModel {
   static $_TSPEC;
 
   /**
    * @var string
    */
-  public $productUri = null;
+  public $replicaId = null;
   /**
    * @var string
    */
-  public $gatewayId = null;
+  public $productUri = null;
   /**
    * @var string
    */
-  public $parentProductUri = null;
+  public $replicaName = null;
   /**
    * @var string
    */
-  public $productName = null;
+  public $replicaDescription = null;
   /**
-   * @var string
+   * @var int
    */
-  public $productDescription = null;
+  public $creationTime = null;
   /**
-   * @var string
+   * @var int
    */
-  public $ownerName = null;
+  public $lastModifiedTime = null;
   /**
    * @var int
    */
-  public $dataProductType = null;
+  public $validUntilTime = null;
   /**
    * @var int
    */
-  public $productSize = null;
+  public $replicaLocationCategory = null;
   /**
    * @var int
    */
-  public $creationTime = null;
+  public $replicaPersistentType = null;
   /**
-   * @var int
+   * @var string
    */
-  public $lastModifiedTime = null;
+  public $storageResourceId = null;
   /**
-   * @var array
+   * @var string
    */
-  public $productMetadata = null;
+  public $filePath = null;
   /**
-   * @var \Airavata\Model\Data\Replica\DataReplicaLocationModel[]
+   * @var array
    */
-  public $replicaLocations = null;
+  public $replicaMetadata = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'productUri',
+          'var' => 'replicaId',
           'type' => TType::STRING,
           ),
         2 => array(
-          'var' => 'gatewayId',
+          'var' => 'productUri',
           'type' => TType::STRING,
           ),
         3 => array(
-          'var' => 'parentProductUri',
+          'var' => 'replicaName',
           'type' => TType::STRING,
           ),
         4 => array(
-          'var' => 'productName',
+          'var' => 'replicaDescription',
           'type' => TType::STRING,
           ),
         5 => array(
-          'var' => 'productDescription',
-          'type' => TType::STRING,
+          'var' => 'creationTime',
+          'type' => TType::I64,
           ),
         6 => array(
-          'var' => 'ownerName',
-          'type' => TType::STRING,
+          'var' => 'lastModifiedTime',
+          'type' => TType::I64,
           ),
         7 => array(
-          'var' => 'dataProductType',
-          'type' => TType::I32,
+          'var' => 'validUntilTime',
+          'type' => TType::I64,
           ),
         8 => array(
-          'var' => 'productSize',
+          'var' => 'replicaLocationCategory',
           'type' => TType::I32,
           ),
         9 => array(
-          'var' => 'creationTime',
-          'type' => TType::I64,
+          'var' => 'replicaPersistentType',
+          'type' => TType::I32,
           ),
         10 => array(
-          'var' => 'lastModifiedTime',
-          'type' => TType::I64,
+          'var' => 'storageResourceId',
+          'type' => TType::STRING,
           ),
         11 => array(
-          'var' => 'productMetadata',
+          'var' => 'filePath',
+          'type' => TType::STRING,
+          ),
+        12 => array(
+          'var' => 'replicaMetadata',
           'type' => TType::MAP,
           'ktype' => TType::STRING,
           'vtype' => TType::STRING,
@@ -155,41 +159,20 @@ class DataProductModel {
             'type' => TType::STRING,
             ),
           ),
-        12 => array(
-          'var' => 'replicaLocations',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Data\Replica\DataReplicaLocationModel',
-            ),
-          ),
         );
     }
     if (is_array($vals)) {
+      if (isset($vals['replicaId'])) {
+        $this->replicaId = $vals['replicaId'];
+      }
       if (isset($vals['productUri'])) {
         $this->productUri = $vals['productUri'];
       }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['parentProductUri'])) {
-        $this->parentProductUri = $vals['parentProductUri'];
-      }
-      if (isset($vals['productName'])) {
-        $this->productName = $vals['productName'];
-      }
-      if (isset($vals['productDescription'])) {
-        $this->productDescription = $vals['productDescription'];
-      }
-      if (isset($vals['ownerName'])) {
-        $this->ownerName = $vals['ownerName'];
-      }
-      if (isset($vals['dataProductType'])) {
-        $this->dataProductType = $vals['dataProductType'];
+      if (isset($vals['replicaName'])) {
+        $this->replicaName = $vals['replicaName'];
       }
-      if (isset($vals['productSize'])) {
-        $this->productSize = $vals['productSize'];
+      if (isset($vals['replicaDescription'])) {
+        $this->replicaDescription = $vals['replicaDescription'];
       }
       if (isset($vals['creationTime'])) {
         $this->creationTime = $vals['creationTime'];
@@ -197,17 +180,29 @@ class DataProductModel {
       if (isset($vals['lastModifiedTime'])) {
         $this->lastModifiedTime = $vals['lastModifiedTime'];
       }
-      if (isset($vals['productMetadata'])) {
-        $this->productMetadata = $vals['productMetadata'];
+      if (isset($vals['validUntilTime'])) {
+        $this->validUntilTime = $vals['validUntilTime'];
       }
-      if (isset($vals['replicaLocations'])) {
-        $this->replicaLocations = $vals['replicaLocations'];
+      if (isset($vals['replicaLocationCategory'])) {
+        $this->replicaLocationCategory = $vals['replicaLocationCategory'];
+      }
+      if (isset($vals['replicaPersistentType'])) {
+        $this->replicaPersistentType = $vals['replicaPersistentType'];
+      }
+      if (isset($vals['storageResourceId'])) {
+        $this->storageResourceId = $vals['storageResourceId'];
+      }
+      if (isset($vals['filePath'])) {
+        $this->filePath = $vals['filePath'];
+      }
+      if (isset($vals['replicaMetadata'])) {
+        $this->replicaMetadata = $vals['replicaMetadata'];
       }
     }
   }
 
   public function getName() {
-    return 'DataProductModel';
+    return 'DataReplicaLocationModel';
   }
 
   public function read($input)
@@ -227,77 +222,84 @@ class DataProductModel {
       {
         case 1:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->productUri);
+            $xfer += $input->readString($this->replicaId);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 2:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
+            $xfer += $input->readString($this->productUri);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 3:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->parentProductUri);
+            $xfer += $input->readString($this->replicaName);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 4:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->productName);
+            $xfer += $input->readString($this->replicaDescription);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 5:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->productDescription);
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->creationTime);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 6:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->ownerName);
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->lastModifiedTime);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 7:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->dataProductType);
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->validUntilTime);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 8:
           if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->productSize);
+            $xfer += $input->readI32($this->replicaLocationCategory);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 9:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->creationTime);
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->replicaPersistentType);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 10:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->lastModifiedTime);
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->storageResourceId);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 11:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->filePath);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 12:
           if ($ftype == TType::MAP) {
-            $this->productMetadata = array();
+            $this->replicaMetadata = array();
             $_size0 = 0;
             $_ktype1 = 0;
             $_vtype2 = 0;
@@ -308,31 +310,13 @@ class DataProductModel {
               $val6 = '';
               $xfer += $input->readString($key5);
               $xfer += $input->readString($val6);
-              $this->productMetadata[$key5] = $val6;
+              $this->replicaMetadata[$key5] = $val6;
             }
             $xfer += $input->readMapEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 12:
-          if ($ftype == TType::LST) {
-            $this->replicaLocations = array();
-            $_size7 = 0;
-            $_etype10 = 0;
-            $xfer += $input->readListBegin($_etype10, $_size7);
-            for ($_i11 = 0; $_i11 < $_size7; ++$_i11)
-            {
-              $elem12 = null;
-              $elem12 = new \Airavata\Model\Data\Replica\DataReplicaLocationModel();
-              $xfer += $elem12->read($input);
-              $this->replicaLocations []= $elem12;
-            }
-            $xfer += $input->readListEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -345,92 +329,80 @@ class DataProductModel {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('DataProductModel');
+    $xfer += $output->writeStructBegin('DataReplicaLocationModel');
+    if ($this->replicaId !== null) {
+      $xfer += $output->writeFieldBegin('replicaId', TType::STRING, 1);
+      $xfer += $output->writeString($this->replicaId);
+      $xfer += $output->writeFieldEnd();
+    }
     if ($this->productUri !== null) {
-      $xfer += $output->writeFieldBegin('productUri', TType::STRING, 1);
+      $xfer += $output->writeFieldBegin('productUri', TType::STRING, 2);
       $xfer += $output->writeString($this->productUri);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
+    if ($this->replicaName !== null) {
+      $xfer += $output->writeFieldBegin('replicaName', TType::STRING, 3);
+      $xfer += $output->writeString($this->replicaName);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->parentProductUri !== null) {
-      $xfer += $output->writeFieldBegin('parentProductUri', TType::STRING, 3);
-      $xfer += $output->writeString($this->parentProductUri);
+    if ($this->replicaDescription !== null) {
+      $xfer += $output->writeFieldBegin('replicaDescription', TType::STRING, 4);
+      $xfer += $output->writeString($this->replicaDescription);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->productName !== null) {
-      $xfer += $output->writeFieldBegin('productName', TType::STRING, 4);
-      $xfer += $output->writeString($this->productName);
+    if ($this->creationTime !== null) {
+      $xfer += $output->writeFieldBegin('creationTime', TType::I64, 5);
+      $xfer += $output->writeI64($this->creationTime);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->productDescription !== null) {
-      $xfer += $output->writeFieldBegin('productDescription', TType::STRING, 5);
-      $xfer += $output->writeString($this->productDescription);
+    if ($this->lastModifiedTime !== null) {
+      $xfer += $output->writeFieldBegin('lastModifiedTime', TType::I64, 6);
+      $xfer += $output->writeI64($this->lastModifiedTime);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->ownerName !== null) {
-      $xfer += $output->writeFieldBegin('ownerName', TType::STRING, 6);
-      $xfer += $output->writeString($this->ownerName);
+    if ($this->validUntilTime !== null) {
+      $xfer += $output->writeFieldBegin('validUntilTime', TType::I64, 7);
+      $xfer += $output->writeI64($this->validUntilTime);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->dataProductType !== null) {
-      $xfer += $output->writeFieldBegin('dataProductType', TType::I32, 7);
-      $xfer += $output->writeI32($this->dataProductType);
+    if ($this->replicaLocationCategory !== null) {
+      $xfer += $output->writeFieldBegin('replicaLocationCategory', TType::I32, 8);
+      $xfer += $output->writeI32($this->replicaLocationCategory);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->productSize !== null) {
-      $xfer += $output->writeFieldBegin('productSize', TType::I32, 8);
-      $xfer += $output->writeI32($this->productSize);
+    if ($this->replicaPersistentType !== null) {
+      $xfer += $output->writeFieldBegin('replicaPersistentType', TType::I32, 9);
+      $xfer += $output->writeI32($this->replicaPersistentType);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->creationTime !== null) {
-      $xfer += $output->writeFieldBegin('creationTime', TType::I64, 9);
-      $xfer += $output->writeI64($this->creationTime);
+    if ($this->storageResourceId !== null) {
+      $xfer += $output->writeFieldBegin('storageResourceId', TType::STRING, 10);
+      $xfer += $output->writeString($this->storageResourceId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->lastModifiedTime !== null) {
-      $xfer += $output->writeFieldBegin('lastModifiedTime', TType::I64, 10);
-      $xfer += $output->writeI64($this->lastModifiedTime);
+    if ($this->filePath !== null) {
+      $xfer += $output->writeFieldBegin('filePath', TType::STRING, 11);
+      $xfer += $output->writeString($this->filePath);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->productMetadata !== null) {
-      if (!is_array($this->productMetadata)) {
+    if ($this->replicaMetadata !== null) {
+      if (!is_array($this->replicaMetadata)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('productMetadata', TType::MAP, 11);
+      $xfer += $output->writeFieldBegin('replicaMetadata', TType::MAP, 12);
       {
-        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->productMetadata));
+        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->replicaMetadata));
         {
-          foreach ($this->productMetadata as $kiter13 => $viter14)
+          foreach ($this->replicaMetadata as $kiter7 => $viter8)
           {
-            $xfer += $output->writeString($kiter13);
-            $xfer += $output->writeString($viter14);
+            $xfer += $output->writeString($kiter7);
+            $xfer += $output->writeString($viter8);
           }
         }
         $output->writeMapEnd();
       }
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->replicaLocations !== null) {
-      if (!is_array($this->replicaLocations)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('replicaLocations', TType::LST, 12);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->replicaLocations));
-        {
-          foreach ($this->replicaLocations as $iter15)
-          {
-            $xfer += $iter15->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -438,107 +410,103 @@ class DataProductModel {
 
 }
 
-class DataReplicaLocationModel {
+class DataProductModel {
   static $_TSPEC;
 
   /**
    * @var string
    */
-  public $replicaId = null;
+  public $productUri = null;
   /**
    * @var string
    */
-  public $productUri = null;
+  public $gatewayId = null;
   /**
    * @var string
    */
-  public $replicaName = null;
+  public $parentProductUri = null;
   /**
    * @var string
    */
-  public $replicaDescription = null;
+  public $productName = null;
   /**
-   * @var int
+   * @var string
    */
-  public $creationTime = null;
+  public $productDescription = null;
   /**
-   * @var int
+   * @var string
    */
-  public $lastModifiedTime = null;
+  public $ownerName = null;
   /**
    * @var int
    */
-  public $validUntilTime = null;
+  public $dataProductType = null;
   /**
    * @var int
    */
-  public $replicaLocationCategory = null;
+  public $productSize = null;
   /**
    * @var int
    */
-  public $replicaPersistentType = null;
+  public $creationTime = null;
   /**
-   * @var string
+   * @var int
    */
-  public $storageResourceId = null;
+  public $lastModifiedTime = null;
   /**
-   * @var string
+   * @var array
    */
-  public $filePath = null;
+  public $productMetadata = null;
   /**
-   * @var array
+   * @var \Airavata\Model\Data\Replica\DataReplicaLocationModel[]
    */
-  public $replicaMetadata = null;
+  public $replicaLocations = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'replicaId',
+          'var' => 'productUri',
           'type' => TType::STRING,
           ),
         2 => array(
-          'var' => 'productUri',
+          'var' => 'gatewayId',
           'type' => TType::STRING,
           ),
         3 => array(
-          'var' => 'replicaName',
+          'var' => 'parentProductUri',
           'type' => TType::STRING,
           ),
         4 => array(
-          'var' => 'replicaDescription',
+          'var' => 'productName',
           'type' => TType::STRING,
           ),
         5 => array(
-          'var' => 'creationTime',
-          'type' => TType::I64,
+          'var' => 'productDescription',
+          'type' => TType::STRING,
           ),
         6 => array(
-          'var' => 'lastModifiedTime',
-          'type' => TType::I64,
+          'var' => 'ownerName',
+          'type' => TType::STRING,
           ),
         7 => array(
-          'var' => 'validUntilTime',
-          'type' => TType::I64,
+          'var' => 'dataProductType',
+          'type' => TType::I32,
           ),
         8 => array(
-          'var' => 'replicaLocationCategory',
+          'var' => 'productSize',
           'type' => TType::I32,
           ),
         9 => array(
-          'var' => 'replicaPersistentType',
-          'type' => TType::I32,
+          'var' => 'creationTime',
+          'type' => TType::I64,
           ),
         10 => array(
-          'var' => 'storageResourceId',
-          'type' => TType::STRING,
+          'var' => 'lastModifiedTime',
+          'type' => TType::I64,
           ),
         11 => array(
-          'var' => 'filePath',
-          'type' => TType::STRING,
-          ),
-        12 => array(
-          'var' => 'replicaMetadata',
+          'var' => 'productMetadata',
           'type' => TType::MAP,
           'ktype' => TType::STRING,
           'vtype' => TType::STRING,
@@ -549,50 +517,59 @@ class DataReplicaLocationModel {
             'type' => TType::STRING,
             ),
           ),
+        12 => array(
+          'var' => 'replicaLocations',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Data\Replica\DataReplicaLocationModel',
+            ),
+          ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['replicaId'])) {
-        $this->replicaId = $vals['replicaId'];
-      }
       if (isset($vals['productUri'])) {
         $this->productUri = $vals['productUri'];
       }
-      if (isset($vals['replicaName'])) {
-        $this->replicaName = $vals['replicaName'];
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
       }
-      if (isset($vals['replicaDescription'])) {
-        $this->replicaDescription = $vals['replicaDescription'];
+      if (isset($vals['parentProductUri'])) {
+        $this->parentProductUri = $vals['parentProductUri'];
       }
-      if (isset($vals['creationTime'])) {
-        $this->creationTime = $vals['creationTime'];
+      if (isset($vals['productName'])) {
+        $this->productName = $vals['productName'];
       }
-      if (isset($vals['lastModifiedTime'])) {
-        $this->lastModifiedTime = $vals['lastModifiedTime'];
+      if (isset($vals['productDescription'])) {
+        $this->productDescription = $vals['productDescription'];
       }
-      if (isset($vals['validUntilTime'])) {
-        $this->validUntilTime = $vals['validUntilTime'];
+      if (isset($vals['ownerName'])) {
+        $this->ownerName = $vals['ownerName'];
       }
-      if (isset($vals['replicaLocationCategory'])) {
-        $this->replicaLocationCategory = $vals['replicaLocationCategory'];
+      if (isset($vals['dataProductType'])) {
+        $this->dataProductType = $vals['dataProductType'];
       }
-      if (isset($vals['replicaPersistentType'])) {
-        $this->replicaPersistentType = $vals['replicaPersistentType'];
+      if (isset($vals['productSize'])) {
+        $this->productSize = $vals['productSize'];
       }
-      if (isset($vals['storageResourceId'])) {
-        $this->storageResourceId = $vals['storageResourceId'];
+      if (isset($vals['creationTime'])) {
+        $this->creationTime = $vals['creationTime'];
       }
-      if (isset($vals['filePath'])) {
-        $this->filePath = $vals['filePath'];
+      if (isset($vals['lastModifiedTime'])) {
+        $this->lastModifiedTime = $vals['lastModifiedTime'];
       }
-      if (isset($vals['replicaMetadata'])) {
-        $this->replicaMetadata = $vals['replicaMetadata'];
+      if (isset($vals['productMetadata'])) {
+        $this->productMetadata = $vals['productMetadata'];
+      }
+      if (isset($vals['replicaLocations'])) {
+        $this->replicaLocations = $vals['replicaLocations'];
       }
     }
   }
 
   public function getName() {
-    return 'DataReplicaLocationModel';
+    return 'DataProductModel';
   }
 
   public function read($input)
@@ -612,97 +589,108 @@ class DataReplicaLocationModel {
       {
         case 1:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->replicaId);
+            $xfer += $input->readString($this->productUri);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 2:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->productUri);
+            $xfer += $input->readString($this->gatewayId);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 3:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->replicaName);
+            $xfer += $input->readString($this->parentProductUri);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 4:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->replicaDescription);
+            $xfer += $input->readString($this->productName);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 5:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->creationTime);
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->productDescription);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 6:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->lastModifiedTime);
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->ownerName);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 7:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->validUntilTime);
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->dataProductType);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 8:
           if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->replicaLocationCategory);
+            $xfer += $input->readI32($this->productSize);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 9:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->replicaPersistentType);
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->creationTime);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 10:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->storageResourceId);
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->lastModifiedTime);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 11:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->filePath);
+          if ($ftype == TType::MAP) {
+            $this->productMetadata = array();
+            $_size9 = 0;
+            $_ktype10 = 0;
+            $_vtype11 = 0;
+            $xfer += $input->readMapBegin($_ktype10, $_vtype11, $_size9);
+            for ($_i13 = 0; $_i13 < $_size9; ++$_i13)
+            {
+              $key14 = '';
+              $val15 = '';
+              $xfer += $input->readString($key14);
+              $xfer += $input->readString($val15);
+              $this->productMetadata[$key14] = $val15;
+            }
+            $xfer += $input->readMapEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 12:
-          if ($ftype == TType::MAP) {
-            $this->replicaMetadata = array();
+          if ($ftype == TType::LST) {
+            $this->replicaLocations = array();
             $_size16 = 0;
-            $_ktype17 = 0;
-            $_vtype18 = 0;
-            $xfer += $input->readMapBegin($_ktype17, $_vtype18, $_size16);
+            $_etype19 = 0;
+            $xfer += $input->readListBegin($_etype19, $_size16);
             for ($_i20 = 0; $_i20 < $_size16; ++$_i20)
             {
-              $key21 = '';
-              $val22 = '';
-              $xfer += $input->readString($key21);
-              $xfer += $input->readString($val22);
-              $this->replicaMetadata[$key21] = $val22;
+              $elem21 = null;
+              $elem21 = new \Airavata\Model\Data\Replica\DataReplicaLocationModel();
+              $xfer += $elem21->read($input);
+              $this->replicaLocations []= $elem21;
             }
-            $xfer += $input->readMapEnd();
+            $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -719,80 +707,92 @@ class DataReplicaLocationModel {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('DataReplicaLocationModel');
-    if ($this->replicaId !== null) {
-      $xfer += $output->writeFieldBegin('replicaId', TType::STRING, 1);
-      $xfer += $output->writeString($this->replicaId);
-      $xfer += $output->writeFieldEnd();
-    }
+    $xfer += $output->writeStructBegin('DataProductModel');
     if ($this->productUri !== null) {
-      $xfer += $output->writeFieldBegin('productUri', TType::STRING, 2);
+      $xfer += $output->writeFieldBegin('productUri', TType::STRING, 1);
       $xfer += $output->writeString($this->productUri);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->replicaName !== null) {
-      $xfer += $output->writeFieldBegin('replicaName', TType::STRING, 3);
-      $xfer += $output->writeString($this->replicaName);
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->replicaDescription !== null) {
-      $xfer += $output->writeFieldBegin('replicaDescription', TType::STRING, 4);
-      $xfer += $output->writeString($this->replicaDescription);
+    if ($this->parentProductUri !== null) {
+      $xfer += $output->writeFieldBegin('parentProductUri', TType::STRING, 3);
+      $xfer += $output->writeString($this->parentProductUri);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->creationTime !== null) {
-      $xfer += $output->writeFieldBegin('creationTime', TType::I64, 5);
-      $xfer += $output->writeI64($this->creationTime);
+    if ($this->productName !== null) {
+      $xfer += $output->writeFieldBegin('productName', TType::STRING, 4);
+      $xfer += $output->writeString($this->productName);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->lastModifiedTime !== null) {
-      $xfer += $output->writeFieldBegin('lastModifiedTime', TType::I64, 6);
-      $xfer += $output->writeI64($this->lastModifiedTime);
+    if ($this->productDescription !== null) {
+      $xfer += $output->writeFieldBegin('productDescription', TType::STRING, 5);
+      $xfer += $output->writeString($this->productDescription);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->validUntilTime !== null) {
-      $xfer += $output->writeFieldBegin('validUntilTime', TType::I64, 7);
-      $xfer += $output->writeI64($this->validUntilTime);
+    if ($this->ownerName !== null) {
+      $xfer += $output->writeFieldBegin('ownerName', TType::STRING, 6);
+      $xfer += $output->writeString($this->ownerName);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->replicaLocationCategory !== null) {
-      $xfer += $output->writeFieldBegin('replicaLocationCategory', TType::I32, 8);
-      $xfer += $output->writeI32($this->replicaLocationCategory);
+    if ($this->dataProductType !== null) {
+      $xfer += $output->writeFieldBegin('dataProductType', TType::I32, 7);
+      $xfer += $output->writeI32($this->dataProductType);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->replicaPersistentType !== null) {
-      $xfer += $output->writeFieldBegin('replicaPersistentType', TType::I32, 9);
-      $xfer += $output->writeI32($this->replicaPersistentType);
+    if ($this->productSize !== null) {
+      $xfer += $output->writeFieldBegin('productSize', TType::I32, 8);
+      $xfer += $output->writeI32($this->productSize);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->storageResourceId !== null) {
-      $xfer += $output->writeFieldBegin('storageResourceId', TType::STRING, 10);
-      $xfer += $output->writeString($this->storageResourceId);
+    if ($this->creationTime !== null) {
+      $xfer += $output->writeFieldBegin('creationTime', TType::I64, 9);
+      $xfer += $output->writeI64($this->creationTime);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->filePath !== null) {
-      $xfer += $output->writeFieldBegin('filePath', TType::STRING, 11);
-      $xfer += $output->writeString($this->filePath);
+    if ($this->lastModifiedTime !== null) {
+      $xfer += $output->writeFieldBegin('lastModifiedTime', TType::I64, 10);
+      $xfer += $output->writeI64($this->lastModifiedTime);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->replicaMetadata !== null) {
-      if (!is_array($this->replicaMetadata)) {
+    if ($this->productMetadata !== null) {
+      if (!is_array($this->productMetadata)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('replicaMetadata', TType::MAP, 12);
+      $xfer += $output->writeFieldBegin('productMetadata', TType::MAP, 11);
       {
-        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->replicaMetadata));
+        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->productMetadata));
         {
-          foreach ($this->replicaMetadata as $kiter23 => $viter24)
+          foreach ($this->productMetadata as $kiter22 => $viter23)
           {
-            $xfer += $output->writeString($kiter23);
-            $xfer += $output->writeString($viter24);
+            $xfer += $output->writeString($kiter22);
+            $xfer += $output->writeString($viter23);
           }
         }
         $output->writeMapEnd();
       }
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->replicaLocations !== null) {
+      if (!is_array($this->replicaLocations)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('replicaLocations', TType::LST, 12);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->replicaLocations));
+        {
+          foreach ($this->replicaLocations as $iter24)
+          {
+            $xfer += $iter24->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;