You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by go...@apache.org on 2017/05/02 19:58:59 UTC

[01/17] airavata git commit: Add Tenant Profile Thrift Model

Repository: airavata
Updated Branches:
  refs/heads/develop 57dc7672e -> 9fab62776


http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/airavata_data_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/airavata_data_models.thrift b/thrift-interface-descriptions/data-models/airavata_data_models.thrift
index 3237de3..6d41138 100644
--- a/thrift-interface-descriptions/data-models/airavata_data_models.thrift
+++ b/thrift-interface-descriptions/data-models/airavata_data_models.thrift
@@ -32,8 +32,9 @@ include "experiment-catalog-models/scheduling_model.thrift"
 include "experiment-catalog-models/status_models.thrift"
 include "resource-catalog-models/data_movement_models.thrift"
 include "replica-catalog-models/replica_catalog_models.thrift"
-include "user-group-models/user_profile_model.thrift"
-include "user-group-models/group_manager_model.thrift"
+include "user-tenant-group-models/user_profile_model.thrift"
+include "user-tenant-group-models/group_manager_model.thrift"
+include "user-tenant-group-models/tenant_profile_model.thrift"
 include "credential-store-models/credential_store_data_models.thrift"
 
 namespace java org.apache.airavata.model

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift b/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift
index fd4784d..3dcb53b 100644
--- a/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift
+++ b/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift
@@ -25,7 +25,7 @@ namespace py apache.airavata.model.appcatalog.userresourceprofile
 
 include "compute_resource_model.thrift"
 include "data_movement_models.thrift"
-include "../user-group-models/user_profile_model.thrift"
+include "../user-tenant-group-models/user_profile_model.thrift"
 
 /**
  * User specific preferences for a Computer Resource

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/user-group-models/group_manager_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/user-group-models/group_manager_model.thrift b/thrift-interface-descriptions/data-models/user-group-models/group_manager_model.thrift
deleted file mode 100644
index 2bc3b2f..0000000
--- a/thrift-interface-descriptions/data-models/user-group-models/group_manager_model.thrift
+++ /dev/null
@@ -1,48 +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.
- *
- */
-
- include "../../airavata-apis/airavata_commons.thrift"
-
- namespace java org.apache.airavata.model.group
- namespace php Airavata.Model.Group
- namespace cpp apache.airavata.model.group
- namespace py apache.airavata.model.group
-
-
-enum ResourceType {
-    PROJECT,
-    EXPERIMENT,
-    DATA,
-    OTHER
-}
-
-enum ResourcePermissionType {
-    WRITE,
-    READ,
-    OWNER
-}
-
-struct GroupModel{
-    1: optional string id,
-    2: optional string name,
-    3: optional string ownerId,
-    4: optional string description,
-    5: optional list<string> members
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift b/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift
deleted file mode 100644
index 116d9eb..0000000
--- a/thrift-interface-descriptions/data-models/user-group-models/user_profile_model.thrift
+++ /dev/null
@@ -1,186 +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.
- *
- */
-
- include "../../airavata-apis/airavata_commons.thrift"
-
- namespace java org.apache.airavata.model.user
- namespace php Airavata.Model.User
- namespace cpp apache.airavata.model.user
- namespace py apache.airavata.model.user
-
-const string USER_PROFILE_VERSION = "1.0"
-
-enum Status {
-    ACTIVE,
-    CONFIRMED,
-    APPROVED,
-    DELETED,
-    DUPLICATE,
-    GRACE_PERIOD,
-    INVITED,
-    DENIED
-    PENDING,
-    PENDING_APPROVAL,
-    PENDING_CONFIRMATION
-    SUSPENDED
-    DECLINED
-    EXPIRED
-}
-
-/**
- * U.S. Citizen (see: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
- *
-*/
-enum USCitizenship {
-    US_CITIZEN,
-    US_PERMANENT_RESIDENT,
-    OTHER_NON_US_CITIZEN
-}
-
-/**
- * Hispanic or Latino - a person of Mexican, Puerto Rican, Cuban, South or
- *  Central American, or other Spanish culture or origin, regardless of race.
- *
-*/
-enum ethnicity {
-    HISPANIC_LATINO,
-    NOT_HISPANIC_LATINO
-}
-
-/**
- * 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,
-  *      China, India, Japan, Korea, Malaysia, Pakistan, the Philippine Islands,
-  *      Thailand, and Vietnam.
- * American Indian or Alaskan Native - a person having origins in any of the original
-  *     peoples of North and South America (including Central America), and who maintains
-   *     tribal affiliation or community attachment.
- * Black or African American - a person having origins in any of the black racial groups
- *      of Africa.
- * Native Hawaiian or Pacific Islander - a person having origins in any of the original
- *      peoples of Hawaii, Guan, Samoa, or other Pacific Islands.
- * White - a person having origins in any of the original peoples of Europe, the Middle East, or North Africa.
- *
-*/
-enum race {
-    ASIAN,
-    AMERICAN_INDIAN_OR_ALASKAN_NATIVE,
-    BLACK_OR_AFRICAN_AMERICAN,
-    NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER,
-    WHITE
-}
-
-enum disability {
-    HEARING_IMAPAIRED,
-    VISUAL_IMPAIRED,
-    MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT,
-    OTHER_IMPAIRMENT
-}
-
-/**
- * A structure holding the NSF Demographic information.
- *
- *
-*/
-struct NSFDemographics {
-    1: required string airavataInternalUserId = airavata_commons.DEFAULT_ID,
-    2: optional string gender,
-    3: optional USCitizenship usCitizenship,
-    4: optional list<ethnicity> ethnicities,
-    5: optional list<race> races,
-    6: optional list<disability> disabilities
-}
-
-/**
- * A structure holding the user profile and its child models.
- *
- * Notes:
- *  The model does not include passwords as it is assumed an external identity provider is used to authenticate user.
- *  References:
- *     NSF Demographic Information - http://www.nsf.gov/pubs/2000/00form1225/00form1225.doc
- *     LDAP Schema - https://tools.ietf.org/html/rfc4519
- *     SCIM 2.0 - https://tools.ietf.org/html/rfc7643
- *
- * userModelVersion:
- *  Version number of profile
- *
- * airavataInternalUserId:
- *  internal to Airavata, not intended to be used outside of the Airavata platform or possibly by gateways
- *  (that is, never shown to users), never reassigned, REQUIRED
- *
- * userId:
- *  Externally assertable unique identifier. SAML (primarly in higher education, academic) tends to keep
- *   user name less opaque. OpenID Connect maintains them to be opaque.
- *
- * emails:
- *   Email identifier are Verified, REQUIRED and MULTIVALUED
- *
- * userName:
- *  Name-based identifiers can be multivalues. To keep it simple, Airavata 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)
-     *   Components:
-     *      givenName
-     *      surname (familyName)
-     *      displayName (often asserted by user to handle things like middle names, suffix, prefix, and the like)
- *
- * orcidId: ORCID ID - http://orcid.org/about/what-is-orcid)
- *
- * phones: Telephone MULTIVALUED
- *
- * country: Country of Residance
- *
- * nationality Countries of citizenship
- *
- * comments:
- *   Free-form information (treated as opaque by Airavata and simply passed to resource).
- *
- * labeledURI:
-   * Google Scholar, Web of Science, ACS, e.t.c
- *
- * timeZone:
- *  User’s preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones.
- *
-*/
-
-struct UserProfile {
-    1: required string userModelVersion = USER_PROFILE_VERSION,
-    2: required string airavataInternalUserId = airavata_commons.DEFAULT_ID,
-    3: required string userId,
-    4: required string gatewayId,
-    5: required list<string> emails,
-    6: optional string userName,
-    7: optional string orcidId,
-    8: optional list<string> phones,
-    9: optional string country,
-    10: optional list<string> nationality,
-    11: optional string homeOrganization,
-    12: optional string orginationAffiliation,
-    13: required i64 creationTime,
-    14: required i64 lastAccessTime,
-    15: required i64 validUntil,
-    16: required Status State,
-    17: optional string comments,
-    18: optional list<string> labeledURI,
-    19: optional string gpgKey,
-    20: optional string timeZone,
-    21: optional NSFDemographics nsfDemographics
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift b/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift
new file mode 100644
index 0000000..2bc3b2f
--- /dev/null
+++ b/thrift-interface-descriptions/data-models/user-tenant-group-models/group_manager_model.thrift
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ *
+ */
+
+ include "../../airavata-apis/airavata_commons.thrift"
+
+ namespace java org.apache.airavata.model.group
+ namespace php Airavata.Model.Group
+ namespace cpp apache.airavata.model.group
+ namespace py apache.airavata.model.group
+
+
+enum ResourceType {
+    PROJECT,
+    EXPERIMENT,
+    DATA,
+    OTHER
+}
+
+enum ResourcePermissionType {
+    WRITE,
+    READ,
+    OWNER
+}
+
+struct GroupModel{
+    1: optional string id,
+    2: optional string name,
+    3: optional string ownerId,
+    4: optional string description,
+    5: optional list<string> members
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/user-tenant-group-models/tenant_profile_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/user-tenant-group-models/tenant_profile_model.thrift b/thrift-interface-descriptions/data-models/user-tenant-group-models/tenant_profile_model.thrift
new file mode 100644
index 0000000..557dddb
--- /dev/null
+++ b/thrift-interface-descriptions/data-models/user-tenant-group-models/tenant_profile_model.thrift
@@ -0,0 +1,58 @@
+/*
+ * 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.
+ *
+ */
+
+include "../../airavata-apis/airavata_commons.thrift"
+
+namespace java org.apache.airavata.model.tenant
+namespace php Airavata.Model.Tenant
+namespace cpp apache.airavata.model.tenant
+namespace py apache.airavata.model.tenant
+
+enum TenantApprovalStatus {
+    REQUESTED,
+    APPROVED,
+    ACTIVE,
+    DEACTIVATED,
+    CANCELLED,
+    DENIED,
+    CREATED
+}
+
+struct Tenant {
+    1: required string tenantId,
+    2: required TenantApprovalStatus tenantApprovalStatus,
+    3: optional string tenantName,
+    4: optional string domain,
+    5: optional string emailAddress
+    6: optional string tenantAcronym,
+    7: optional string tenantURL,
+    8: optional string tenantPublicAbstract,
+    9: optional string reviewProposalDescription,
+    10: optional string tenantAdminFirstName,
+    11: optional string tenantAdminLastName,
+    12: optional string tenantAdminEmail,
+    13: optional string identityServerUserName,
+    14: optional string identityServerPasswordToken,
+    15: optional string declinedReason,
+    16: optional string oauthClientId,
+    17: optional string oauthClientSecret,
+    18: optional i64 requestCreationTime,
+    19: optional string requesterUsername
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/data-models/user-tenant-group-models/user_profile_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/user-tenant-group-models/user_profile_model.thrift b/thrift-interface-descriptions/data-models/user-tenant-group-models/user_profile_model.thrift
new file mode 100644
index 0000000..638eb01
--- /dev/null
+++ b/thrift-interface-descriptions/data-models/user-tenant-group-models/user_profile_model.thrift
@@ -0,0 +1,197 @@
+/*
+ * 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.
+ *
+ */
+
+ include "../../airavata-apis/airavata_commons.thrift"
+
+ namespace java org.apache.airavata.model.user
+ namespace php Airavata.Model.User
+ namespace cpp apache.airavata.model.user
+ namespace py apache.airavata.model.user
+
+const string USER_PROFILE_VERSION = "1.0"
+
+enum Status {
+    ACTIVE,
+    CONFIRMED,
+    APPROVED,
+    DELETED,
+    DUPLICATE,
+    GRACE_PERIOD,
+    INVITED,
+    DENIED
+    PENDING,
+    PENDING_APPROVAL,
+    PENDING_CONFIRMATION
+    SUSPENDED
+    DECLINED
+    EXPIRED
+}
+
+/**
+ * U.S. Citizen (see: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
+ *
+*/
+enum USCitizenship {
+    US_CITIZEN,
+    US_PERMANENT_RESIDENT,
+    OTHER_NON_US_CITIZEN
+}
+
+/**
+ * Hispanic or Latino - a person of Mexican, Puerto Rican, Cuban, South or
+ *  Central American, or other Spanish culture or origin, regardless of race.
+ *
+*/
+enum ethnicity {
+    HISPANIC_LATINO,
+    NOT_HISPANIC_LATINO
+}
+
+/**
+ * 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,
+  *      China, India, Japan, Korea, Malaysia, Pakistan, the Philippine Islands,
+  *      Thailand, and Vietnam.
+ * American Indian or Alaskan Native - a person having origins in any of the original
+  *     peoples of North and South America (including Central America), and who maintains
+   *     tribal affiliation or community attachment.
+ * Black or African American - a person having origins in any of the black racial groups
+ *      of Africa.
+ * Native Hawaiian or Pacific Islander - a person having origins in any of the original
+ *      peoples of Hawaii, Guan, Samoa, or other Pacific Islands.
+ * White - a person having origins in any of the original peoples of Europe, the Middle East, or North Africa.
+ *
+*/
+enum race {
+    ASIAN,
+    AMERICAN_INDIAN_OR_ALASKAN_NATIVE,
+    BLACK_OR_AFRICAN_AMERICAN,
+    NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER,
+    WHITE
+}
+
+enum disability {
+    HEARING_IMAPAIRED,
+    VISUAL_IMPAIRED,
+    MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT,
+    OTHER_IMPAIRMENT
+}
+
+/**
+ * A structure holding the NSF Demographic information.
+ *
+ *
+*/
+struct NSFDemographics {
+    1: required string airavataInternalUserId = airavata_commons.DEFAULT_ID,
+    2: optional string gender,
+    3: optional USCitizenship usCitizenship,
+    4: optional list<ethnicity> ethnicities,
+    5: optional list<race> races,
+    6: optional list<disability> disabilities
+}
+
+/**
+ * A structure holding the user profile and its child models.
+ *
+ * Notes:
+ *  The model does not include passwords as it is assumed an external identity provider is used to authenticate user.
+ *  References:
+ *     NSF Demographic Information - http://www.nsf.gov/pubs/2000/00form1225/00form1225.doc
+ *     LDAP Schema - https://tools.ietf.org/html/rfc4519
+ *     SCIM 2.0 - https://tools.ietf.org/html/rfc7643
+ *
+ * userModelVersion:
+ *  Version number of profile
+ *
+ * airavataInternalUserId:
+ *  internal to Airavata, not intended to be used outside of the Airavata platform or possibly by gateways
+ *  (that is, never shown to users), never reassigned, REQUIRED
+ *
+ * userId:
+ *  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
+ *
+ * userName:
+ *  Name-based identifiers can be multivalues. To keep it simple, Airavata 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)
+     *   Components:
+     *      givenName
+     *      surname (familyName)
+     *      displayName (often asserted by user to handle things like middle names, suffix, prefix, and the like)
+ *
+ * orcidId: ORCID ID - http://orcid.org/about/what-is-orcid)
+ *
+ * phones: Telephone MULTIVALUED
+ *
+ * country: Country of Residance
+ *
+ * nationality Countries of citizenship
+ *
+ * comments:
+ *   Free-form information (treated as opaque by Airavata and simply passed to resource).
+ *
+ * labeledURI:
+   * Google Scholar, Web of Science, ACS, e.t.c
+ *
+ * timeZone:
+ *  User’s preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones.
+ *
+*/
+
+struct UserProfile {
+    1: required string userModelVersion = USER_PROFILE_VERSION,
+    2: required string airavataInternalUserId = airavata_commons.DEFAULT_ID,
+    3: required string userId,
+    4: required string gatewayId,
+    5: required list<string> emails,
+    6: required string firstName,
+    7: required string lastName,
+    8: optional string middleName,
+    9: optional string namePrefix,
+    10: optional string nameSuffix,
+    11: optional string userName,
+    12: optional string orcidId,
+    13: optional list<string> phones,
+    14: optional string country,
+    15: optional list<string> nationality,
+    16: optional string homeOrganization,
+    17: optional string orginationAffiliation,
+    18: required i64 creationTime,
+    19: required i64 lastAccessTime,
+    20: required i64 validUntil,
+    21: required Status State,
+    22: optional string comments,
+    23: optional list<string> labeledURI,
+    24: optional string gpgKey,
+    25: optional string timeZone,
+    26: optional NSFDemographics nsfDemographics
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift b/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift
index 3f4d63e..36821d9 100644
--- a/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift
+++ b/thrift-interface-descriptions/service-cpis/profile-service/iam-admin-services/iam-admin-services-cpi.thrift
@@ -26,7 +26,7 @@
 include "../../../airavata-apis/airavata_errors.thrift"
 include "../../../airavata-apis/security_model.thrift"
 include "../../../data-models/experiment-catalog-models/workspace_model.thrift"
-include "../../../data-models/user-group-models/user_profile_model.thrift"
+include "../../../data-models/user-tenant-group-models/user_profile_model.thrift"
 include "../../../data-models/credential-store-models/credential_store_data_models.thrift"
 include "iam_admin_services_cpi_errors.thrift"
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift b/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift
index f4f5de3..13f6a5c 100644
--- a/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift
+++ b/thrift-interface-descriptions/service-cpis/profile-service/profile-user/profile-user-cpi.thrift
@@ -25,7 +25,7 @@
 
 include "../../../airavata-apis/airavata_errors.thrift"
 include "../../../airavata-apis/security_model.thrift"
-include "../../../data-models/user-group-models/user_profile_model.thrift"
+include "../../../data-models/user-tenant-group-models/user_profile_model.thrift"
 include "profile_user_cpi_errors.thrift"
 
 


[02/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/tenant/TenantApprovalStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/tenant/TenantApprovalStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/tenant/TenantApprovalStatus.java
new file mode 100644
index 0000000..4c43d6f
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/tenant/TenantApprovalStatus.java
@@ -0,0 +1,77 @@
+/**
+ * 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
+ */
+package org.apache.airavata.model.tenant;
+
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum TenantApprovalStatus implements org.apache.thrift.TEnum {
+  REQUESTED(0),
+  APPROVED(1),
+  ACTIVE(2),
+  DEACTIVATED(3),
+  CANCELLED(4),
+  DENIED(5),
+  CREATED(6);
+
+  private final int value;
+
+  private TenantApprovalStatus(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static TenantApprovalStatus findByValue(int value) { 
+    switch (value) {
+      case 0:
+        return REQUESTED;
+      case 1:
+        return APPROVED;
+      case 2:
+        return ACTIVE;
+      case 3:
+        return DEACTIVATED;
+      case 4:
+        return CANCELLED;
+      case 5:
+        return DENIED;
+      case 6:
+        return CREATED;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
index e335716..b01ab6a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/Status.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/Status.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/Status.java
index 17ba411..8360fe9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/Status.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/Status.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/USCitizenship.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/USCitizenship.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/USCitizenship.java
index 3f30db8..231654b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/USCitizenship.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/USCitizenship.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
index 9d0e42f..7c6fd74 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *
@@ -74,6 +72,12 @@ import org.slf4j.LoggerFactory;
  * *  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
  * *
@@ -114,22 +118,27 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
   private static final org.apache.thrift.protocol.TField USER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("userId", org.apache.thrift.protocol.TType.STRING, (short)3);
   private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)4);
   private static final org.apache.thrift.protocol.TField EMAILS_FIELD_DESC = new org.apache.thrift.protocol.TField("emails", org.apache.thrift.protocol.TType.LIST, (short)5);
-  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)6);
-  private static final org.apache.thrift.protocol.TField ORCID_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("orcidId", org.apache.thrift.protocol.TType.STRING, (short)7);
-  private static final org.apache.thrift.protocol.TField PHONES_FIELD_DESC = new org.apache.thrift.protocol.TField("phones", org.apache.thrift.protocol.TType.LIST, (short)8);
-  private static final org.apache.thrift.protocol.TField COUNTRY_FIELD_DESC = new org.apache.thrift.protocol.TField("country", org.apache.thrift.protocol.TType.STRING, (short)9);
-  private static final org.apache.thrift.protocol.TField NATIONALITY_FIELD_DESC = new org.apache.thrift.protocol.TField("nationality", org.apache.thrift.protocol.TType.LIST, (short)10);
-  private static final org.apache.thrift.protocol.TField HOME_ORGANIZATION_FIELD_DESC = new org.apache.thrift.protocol.TField("homeOrganization", org.apache.thrift.protocol.TType.STRING, (short)11);
-  private static final org.apache.thrift.protocol.TField ORGINATION_AFFILIATION_FIELD_DESC = new org.apache.thrift.protocol.TField("orginationAffiliation", org.apache.thrift.protocol.TType.STRING, (short)12);
-  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)13);
-  private static final org.apache.thrift.protocol.TField LAST_ACCESS_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastAccessTime", org.apache.thrift.protocol.TType.I64, (short)14);
-  private static final org.apache.thrift.protocol.TField VALID_UNTIL_FIELD_DESC = new org.apache.thrift.protocol.TField("validUntil", org.apache.thrift.protocol.TType.I64, (short)15);
-  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("State", org.apache.thrift.protocol.TType.I32, (short)16);
-  private static final org.apache.thrift.protocol.TField COMMENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("comments", org.apache.thrift.protocol.TType.STRING, (short)17);
-  private static final org.apache.thrift.protocol.TField LABELED_URI_FIELD_DESC = new org.apache.thrift.protocol.TField("labeledURI", org.apache.thrift.protocol.TType.LIST, (short)18);
-  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)19);
-  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)20);
-  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)21);
+  private static final org.apache.thrift.protocol.TField FIRST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("firstName", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField LAST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastName", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField MIDDLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("middleName", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField NAME_PREFIX_FIELD_DESC = new org.apache.thrift.protocol.TField("namePrefix", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField NAME_SUFFIX_FIELD_DESC = new org.apache.thrift.protocol.TField("nameSuffix", org.apache.thrift.protocol.TType.STRING, (short)10);
+  private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)11);
+  private static final org.apache.thrift.protocol.TField ORCID_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("orcidId", org.apache.thrift.protocol.TType.STRING, (short)12);
+  private static final org.apache.thrift.protocol.TField PHONES_FIELD_DESC = new org.apache.thrift.protocol.TField("phones", org.apache.thrift.protocol.TType.LIST, (short)13);
+  private static final org.apache.thrift.protocol.TField COUNTRY_FIELD_DESC = new org.apache.thrift.protocol.TField("country", org.apache.thrift.protocol.TType.STRING, (short)14);
+  private static final org.apache.thrift.protocol.TField NATIONALITY_FIELD_DESC = new org.apache.thrift.protocol.TField("nationality", org.apache.thrift.protocol.TType.LIST, (short)15);
+  private static final org.apache.thrift.protocol.TField HOME_ORGANIZATION_FIELD_DESC = new org.apache.thrift.protocol.TField("homeOrganization", org.apache.thrift.protocol.TType.STRING, (short)16);
+  private static final org.apache.thrift.protocol.TField ORGINATION_AFFILIATION_FIELD_DESC = new org.apache.thrift.protocol.TField("orginationAffiliation", org.apache.thrift.protocol.TType.STRING, (short)17);
+  private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)18);
+  private static final org.apache.thrift.protocol.TField LAST_ACCESS_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastAccessTime", org.apache.thrift.protocol.TType.I64, (short)19);
+  private static final org.apache.thrift.protocol.TField VALID_UNTIL_FIELD_DESC = new org.apache.thrift.protocol.TField("validUntil", org.apache.thrift.protocol.TType.I64, (short)20);
+  private static final org.apache.thrift.protocol.TField STATE_FIELD_DESC = new org.apache.thrift.protocol.TField("State", org.apache.thrift.protocol.TType.I32, (short)21);
+  private static final org.apache.thrift.protocol.TField COMMENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("comments", org.apache.thrift.protocol.TType.STRING, (short)22);
+  private static final org.apache.thrift.protocol.TField LABELED_URI_FIELD_DESC = new org.apache.thrift.protocol.TField("labeledURI", org.apache.thrift.protocol.TType.LIST, (short)23);
+  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)24);
+  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)25);
+  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)26);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -142,6 +151,11 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
   private String userId; // required
   private String gatewayId; // required
   private 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 userName; // optional
   private String orcidId; // optional
   private List<String> phones; // optional
@@ -166,26 +180,31 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     USER_ID((short)3, "userId"),
     GATEWAY_ID((short)4, "gatewayId"),
     EMAILS((short)5, "emails"),
-    USER_NAME((short)6, "userName"),
-    ORCID_ID((short)7, "orcidId"),
-    PHONES((short)8, "phones"),
-    COUNTRY((short)9, "country"),
-    NATIONALITY((short)10, "nationality"),
-    HOME_ORGANIZATION((short)11, "homeOrganization"),
-    ORGINATION_AFFILIATION((short)12, "orginationAffiliation"),
-    CREATION_TIME((short)13, "creationTime"),
-    LAST_ACCESS_TIME((short)14, "lastAccessTime"),
-    VALID_UNTIL((short)15, "validUntil"),
+    FIRST_NAME((short)6, "firstName"),
+    LAST_NAME((short)7, "lastName"),
+    MIDDLE_NAME((short)8, "middleName"),
+    NAME_PREFIX((short)9, "namePrefix"),
+    NAME_SUFFIX((short)10, "nameSuffix"),
+    USER_NAME((short)11, "userName"),
+    ORCID_ID((short)12, "orcidId"),
+    PHONES((short)13, "phones"),
+    COUNTRY((short)14, "country"),
+    NATIONALITY((short)15, "nationality"),
+    HOME_ORGANIZATION((short)16, "homeOrganization"),
+    ORGINATION_AFFILIATION((short)17, "orginationAffiliation"),
+    CREATION_TIME((short)18, "creationTime"),
+    LAST_ACCESS_TIME((short)19, "lastAccessTime"),
+    VALID_UNTIL((short)20, "validUntil"),
     /**
      * 
      * @see Status
      */
-    STATE((short)16, "State"),
-    COMMENTS((short)17, "comments"),
-    LABELED_URI((short)18, "labeledURI"),
-    GPG_KEY((short)19, "gpgKey"),
-    TIME_ZONE((short)20, "timeZone"),
-    NSF_DEMOGRAPHICS((short)21, "nsfDemographics");
+    STATE((short)21, "State"),
+    COMMENTS((short)22, "comments"),
+    LABELED_URI((short)23, "labeledURI"),
+    GPG_KEY((short)24, "gpgKey"),
+    TIME_ZONE((short)25, "timeZone"),
+    NSF_DEMOGRAPHICS((short)26, "nsfDemographics");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -210,37 +229,47 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
           return GATEWAY_ID;
         case 5: // EMAILS
           return EMAILS;
-        case 6: // USER_NAME
+        case 6: // FIRST_NAME
+          return FIRST_NAME;
+        case 7: // LAST_NAME
+          return LAST_NAME;
+        case 8: // MIDDLE_NAME
+          return MIDDLE_NAME;
+        case 9: // NAME_PREFIX
+          return NAME_PREFIX;
+        case 10: // NAME_SUFFIX
+          return NAME_SUFFIX;
+        case 11: // USER_NAME
           return USER_NAME;
-        case 7: // ORCID_ID
+        case 12: // ORCID_ID
           return ORCID_ID;
-        case 8: // PHONES
+        case 13: // PHONES
           return PHONES;
-        case 9: // COUNTRY
+        case 14: // COUNTRY
           return COUNTRY;
-        case 10: // NATIONALITY
+        case 15: // NATIONALITY
           return NATIONALITY;
-        case 11: // HOME_ORGANIZATION
+        case 16: // HOME_ORGANIZATION
           return HOME_ORGANIZATION;
-        case 12: // ORGINATION_AFFILIATION
+        case 17: // ORGINATION_AFFILIATION
           return ORGINATION_AFFILIATION;
-        case 13: // CREATION_TIME
+        case 18: // CREATION_TIME
           return CREATION_TIME;
-        case 14: // LAST_ACCESS_TIME
+        case 19: // LAST_ACCESS_TIME
           return LAST_ACCESS_TIME;
-        case 15: // VALID_UNTIL
+        case 20: // VALID_UNTIL
           return VALID_UNTIL;
-        case 16: // STATE
+        case 21: // STATE
           return STATE;
-        case 17: // COMMENTS
+        case 22: // COMMENTS
           return COMMENTS;
-        case 18: // LABELED_URI
+        case 23: // LABELED_URI
           return LABELED_URI;
-        case 19: // GPG_KEY
+        case 24: // GPG_KEY
           return GPG_KEY;
-        case 20: // TIME_ZONE
+        case 25: // TIME_ZONE
           return TIME_ZONE;
-        case 21: // NSF_DEMOGRAPHICS
+        case 26: // NSF_DEMOGRAPHICS
           return NSF_DEMOGRAPHICS;
         default:
           return null;
@@ -286,7 +315,7 @@ 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.USER_NAME,_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};
+  private static final _Fields optionals[] = {_Fields.MIDDLE_NAME,_Fields.NAME_PREFIX,_Fields.NAME_SUFFIX,_Fields.USER_NAME,_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 Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -301,6 +330,16 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     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, 
+        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, 
+        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, 
+        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, 
+        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, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", 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, 
@@ -353,6 +392,8 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     String userId,
     String gatewayId,
     List<String> emails,
+    String firstName,
+    String lastName,
     long creationTime,
     long lastAccessTime,
     long validUntil,
@@ -364,6 +405,8 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     this.userId = userId;
     this.gatewayId = gatewayId;
     this.emails = emails;
+    this.firstName = firstName;
+    this.lastName = lastName;
     this.creationTime = creationTime;
     setCreationTimeIsSet(true);
     this.lastAccessTime = lastAccessTime;
@@ -394,6 +437,21 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       List<String> __this__emails = new ArrayList<String>(other.emails);
       this.emails = __this__emails;
     }
+    if (other.isSetFirstName()) {
+      this.firstName = other.firstName;
+    }
+    if (other.isSetLastName()) {
+      this.lastName = other.lastName;
+    }
+    if (other.isSetMiddleName()) {
+      this.middleName = other.middleName;
+    }
+    if (other.isSetNamePrefix()) {
+      this.namePrefix = other.namePrefix;
+    }
+    if (other.isSetNameSuffix()) {
+      this.nameSuffix = other.nameSuffix;
+    }
     if (other.isSetUserName()) {
       this.userName = other.userName;
     }
@@ -454,6 +512,11 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     this.userId = null;
     this.gatewayId = null;
     this.emails = null;
+    this.firstName = null;
+    this.lastName = null;
+    this.middleName = null;
+    this.namePrefix = null;
+    this.nameSuffix = null;
     this.userName = null;
     this.orcidId = null;
     this.phones = null;
@@ -605,6 +668,121 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     }
   }
 
+  public String getFirstName() {
+    return this.firstName;
+  }
+
+  public void setFirstName(String firstName) {
+    this.firstName = firstName;
+  }
+
+  public void unsetFirstName() {
+    this.firstName = null;
+  }
+
+  /** Returns true if field firstName is set (has been assigned a value) and false otherwise */
+  public boolean isSetFirstName() {
+    return this.firstName != null;
+  }
+
+  public void setFirstNameIsSet(boolean value) {
+    if (!value) {
+      this.firstName = null;
+    }
+  }
+
+  public String getLastName() {
+    return this.lastName;
+  }
+
+  public void setLastName(String lastName) {
+    this.lastName = lastName;
+  }
+
+  public void unsetLastName() {
+    this.lastName = null;
+  }
+
+  /** Returns true if field lastName is set (has been assigned a value) and false otherwise */
+  public boolean isSetLastName() {
+    return this.lastName != null;
+  }
+
+  public void setLastNameIsSet(boolean value) {
+    if (!value) {
+      this.lastName = null;
+    }
+  }
+
+  public String getMiddleName() {
+    return this.middleName;
+  }
+
+  public void setMiddleName(String middleName) {
+    this.middleName = middleName;
+  }
+
+  public void unsetMiddleName() {
+    this.middleName = null;
+  }
+
+  /** Returns true if field middleName is set (has been assigned a value) and false otherwise */
+  public boolean isSetMiddleName() {
+    return this.middleName != null;
+  }
+
+  public void setMiddleNameIsSet(boolean value) {
+    if (!value) {
+      this.middleName = null;
+    }
+  }
+
+  public String getNamePrefix() {
+    return this.namePrefix;
+  }
+
+  public void setNamePrefix(String namePrefix) {
+    this.namePrefix = namePrefix;
+  }
+
+  public void unsetNamePrefix() {
+    this.namePrefix = null;
+  }
+
+  /** Returns true if field namePrefix is set (has been assigned a value) and false otherwise */
+  public boolean isSetNamePrefix() {
+    return this.namePrefix != null;
+  }
+
+  public void setNamePrefixIsSet(boolean value) {
+    if (!value) {
+      this.namePrefix = null;
+    }
+  }
+
+  public String getNameSuffix() {
+    return this.nameSuffix;
+  }
+
+  public void setNameSuffix(String nameSuffix) {
+    this.nameSuffix = nameSuffix;
+  }
+
+  public void unsetNameSuffix() {
+    this.nameSuffix = null;
+  }
+
+  /** Returns true if field nameSuffix is set (has been assigned a value) and false otherwise */
+  public boolean isSetNameSuffix() {
+    return this.nameSuffix != null;
+  }
+
+  public void setNameSuffixIsSet(boolean value) {
+    if (!value) {
+      this.nameSuffix = null;
+    }
+  }
+
   public String getUserName() {
     return this.userName;
   }
@@ -1065,6 +1243,46 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       }
       break;
 
+    case FIRST_NAME:
+      if (value == null) {
+        unsetFirstName();
+      } else {
+        setFirstName((String)value);
+      }
+      break;
+
+    case LAST_NAME:
+      if (value == null) {
+        unsetLastName();
+      } else {
+        setLastName((String)value);
+      }
+      break;
+
+    case MIDDLE_NAME:
+      if (value == null) {
+        unsetMiddleName();
+      } else {
+        setMiddleName((String)value);
+      }
+      break;
+
+    case NAME_PREFIX:
+      if (value == null) {
+        unsetNamePrefix();
+      } else {
+        setNamePrefix((String)value);
+      }
+      break;
+
+    case NAME_SUFFIX:
+      if (value == null) {
+        unsetNameSuffix();
+      } else {
+        setNameSuffix((String)value);
+      }
+      break;
+
     case USER_NAME:
       if (value == null) {
         unsetUserName();
@@ -1213,6 +1431,21 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     case EMAILS:
       return getEmails();
 
+    case FIRST_NAME:
+      return getFirstName();
+
+    case LAST_NAME:
+      return getLastName();
+
+    case MIDDLE_NAME:
+      return getMiddleName();
+
+    case NAME_PREFIX:
+      return getNamePrefix();
+
+    case NAME_SUFFIX:
+      return getNameSuffix();
+
     case USER_NAME:
       return getUserName();
 
@@ -1282,6 +1515,16 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       return isSetGatewayId();
     case EMAILS:
       return isSetEmails();
+    case FIRST_NAME:
+      return isSetFirstName();
+    case LAST_NAME:
+      return isSetLastName();
+    case MIDDLE_NAME:
+      return isSetMiddleName();
+    case NAME_PREFIX:
+      return isSetNamePrefix();
+    case NAME_SUFFIX:
+      return isSetNameSuffix();
     case USER_NAME:
       return isSetUserName();
     case ORCID_ID:
@@ -1376,6 +1619,51 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         return false;
     }
 
+    boolean this_present_firstName = true && this.isSetFirstName();
+    boolean that_present_firstName = true && that.isSetFirstName();
+    if (this_present_firstName || that_present_firstName) {
+      if (!(this_present_firstName && that_present_firstName))
+        return false;
+      if (!this.firstName.equals(that.firstName))
+        return false;
+    }
+
+    boolean this_present_lastName = true && this.isSetLastName();
+    boolean that_present_lastName = true && that.isSetLastName();
+    if (this_present_lastName || that_present_lastName) {
+      if (!(this_present_lastName && that_present_lastName))
+        return false;
+      if (!this.lastName.equals(that.lastName))
+        return false;
+    }
+
+    boolean this_present_middleName = true && this.isSetMiddleName();
+    boolean that_present_middleName = true && that.isSetMiddleName();
+    if (this_present_middleName || that_present_middleName) {
+      if (!(this_present_middleName && that_present_middleName))
+        return false;
+      if (!this.middleName.equals(that.middleName))
+        return false;
+    }
+
+    boolean this_present_namePrefix = true && this.isSetNamePrefix();
+    boolean that_present_namePrefix = true && that.isSetNamePrefix();
+    if (this_present_namePrefix || that_present_namePrefix) {
+      if (!(this_present_namePrefix && that_present_namePrefix))
+        return false;
+      if (!this.namePrefix.equals(that.namePrefix))
+        return false;
+    }
+
+    boolean this_present_nameSuffix = true && this.isSetNameSuffix();
+    boolean that_present_nameSuffix = true && that.isSetNameSuffix();
+    if (this_present_nameSuffix || that_present_nameSuffix) {
+      if (!(this_present_nameSuffix && that_present_nameSuffix))
+        return false;
+      if (!this.nameSuffix.equals(that.nameSuffix))
+        return false;
+    }
+
     boolean this_present_userName = true && this.isSetUserName();
     boolean that_present_userName = true && that.isSetUserName();
     if (this_present_userName || that_present_userName) {
@@ -1552,6 +1840,31 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
     if (present_emails)
       list.add(emails);
 
+    boolean present_firstName = true && (isSetFirstName());
+    list.add(present_firstName);
+    if (present_firstName)
+      list.add(firstName);
+
+    boolean present_lastName = true && (isSetLastName());
+    list.add(present_lastName);
+    if (present_lastName)
+      list.add(lastName);
+
+    boolean present_middleName = true && (isSetMiddleName());
+    list.add(present_middleName);
+    if (present_middleName)
+      list.add(middleName);
+
+    boolean present_namePrefix = true && (isSetNamePrefix());
+    list.add(present_namePrefix);
+    if (present_namePrefix)
+      list.add(namePrefix);
+
+    boolean present_nameSuffix = true && (isSetNameSuffix());
+    list.add(present_nameSuffix);
+    if (present_nameSuffix)
+      list.add(nameSuffix);
+
     boolean present_userName = true && (isSetUserName());
     list.add(present_userName);
     if (present_userName)
@@ -1693,6 +2006,56 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetFirstName()).compareTo(other.isSetFirstName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFirstName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.firstName, other.firstName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLastName()).compareTo(other.isSetLastName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLastName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastName, other.lastName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetMiddleName()).compareTo(other.isSetMiddleName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMiddleName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.middleName, other.middleName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetNamePrefix()).compareTo(other.isSetNamePrefix());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNamePrefix()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.namePrefix, other.namePrefix);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetNameSuffix()).compareTo(other.isSetNameSuffix());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetNameSuffix()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nameSuffix, other.nameSuffix);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     lastComparison = Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
     if (lastComparison != 0) {
       return lastComparison;
@@ -1912,6 +2275,52 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       sb.append(this.emails);
     }
     first = false;
+    if (!first) sb.append(", ");
+    sb.append("firstName:");
+    if (this.firstName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.firstName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("lastName:");
+    if (this.lastName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.lastName);
+    }
+    first = false;
+    if (isSetMiddleName()) {
+      if (!first) sb.append(", ");
+      sb.append("middleName:");
+      if (this.middleName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.middleName);
+      }
+      first = false;
+    }
+    if (isSetNamePrefix()) {
+      if (!first) sb.append(", ");
+      sb.append("namePrefix:");
+      if (this.namePrefix == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.namePrefix);
+      }
+      first = false;
+    }
+    if (isSetNameSuffix()) {
+      if (!first) sb.append(", ");
+      sb.append("nameSuffix:");
+      if (this.nameSuffix == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.nameSuffix);
+      }
+      first = false;
+    }
     if (isSetUserName()) {
       if (!first) sb.append(", ");
       sb.append("userName:");
@@ -2078,6 +2487,14 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'emails' is unset! Struct:" + toString());
     }
 
+    if (!isSetFirstName()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'firstName' is unset! Struct:" + toString());
+    }
+
+    if (!isSetLastName()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'lastName' is unset! Struct:" + toString());
+    }
+
     if (!isSetCreationTime()) {
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'creationTime' is unset! Struct:" + toString());
     }
@@ -2186,7 +2603,47 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 6: // USER_NAME
+          case 6: // FIRST_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.firstName = iprot.readString();
+              struct.setFirstNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // LAST_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.lastName = iprot.readString();
+              struct.setLastNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // MIDDLE_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.middleName = iprot.readString();
+              struct.setMiddleNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // NAME_PREFIX
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.namePrefix = iprot.readString();
+              struct.setNamePrefixIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // NAME_SUFFIX
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.nameSuffix = iprot.readString();
+              struct.setNameSuffixIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // USER_NAME
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.userName = iprot.readString();
               struct.setUserNameIsSet(true);
@@ -2194,7 +2651,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 7: // ORCID_ID
+          case 12: // ORCID_ID
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.orcidId = iprot.readString();
               struct.setOrcidIdIsSet(true);
@@ -2202,7 +2659,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 8: // PHONES
+          case 13: // PHONES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list27 = iprot.readListBegin();
@@ -2220,7 +2677,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 9: // COUNTRY
+          case 14: // COUNTRY
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.country = iprot.readString();
               struct.setCountryIsSet(true);
@@ -2228,7 +2685,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 10: // NATIONALITY
+          case 15: // NATIONALITY
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list30 = iprot.readListBegin();
@@ -2246,7 +2703,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 11: // HOME_ORGANIZATION
+          case 16: // HOME_ORGANIZATION
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.homeOrganization = iprot.readString();
               struct.setHomeOrganizationIsSet(true);
@@ -2254,7 +2711,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 12: // ORGINATION_AFFILIATION
+          case 17: // ORGINATION_AFFILIATION
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.orginationAffiliation = iprot.readString();
               struct.setOrginationAffiliationIsSet(true);
@@ -2262,7 +2719,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 13: // CREATION_TIME
+          case 18: // CREATION_TIME
             if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
               struct.creationTime = iprot.readI64();
               struct.setCreationTimeIsSet(true);
@@ -2270,7 +2727,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 14: // LAST_ACCESS_TIME
+          case 19: // LAST_ACCESS_TIME
             if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
               struct.lastAccessTime = iprot.readI64();
               struct.setLastAccessTimeIsSet(true);
@@ -2278,7 +2735,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 15: // VALID_UNTIL
+          case 20: // VALID_UNTIL
             if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
               struct.validUntil = iprot.readI64();
               struct.setValidUntilIsSet(true);
@@ -2286,7 +2743,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 16: // STATE
+          case 21: // STATE
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
               struct.State = org.apache.airavata.model.user.Status.findByValue(iprot.readI32());
               struct.setStateIsSet(true);
@@ -2294,7 +2751,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 17: // COMMENTS
+          case 22: // COMMENTS
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.comments = iprot.readString();
               struct.setCommentsIsSet(true);
@@ -2302,7 +2759,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 18: // LABELED_URI
+          case 23: // LABELED_URI
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list33 = iprot.readListBegin();
@@ -2320,7 +2777,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 19: // GPG_KEY
+          case 24: // GPG_KEY
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.gpgKey = iprot.readString();
               struct.setGpgKeyIsSet(true);
@@ -2328,7 +2785,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 20: // TIME_ZONE
+          case 25: // TIME_ZONE
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.timeZone = iprot.readString();
               struct.setTimeZoneIsSet(true);
@@ -2336,7 +2793,7 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 21: // NSF_DEMOGRAPHICS
+          case 26: // NSF_DEMOGRAPHICS
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
               struct.nsfDemographics = new NSFDemographics();
               struct.nsfDemographics.read(iprot);
@@ -2390,6 +2847,37 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         }
         oprot.writeFieldEnd();
       }
+      if (struct.firstName != null) {
+        oprot.writeFieldBegin(FIRST_NAME_FIELD_DESC);
+        oprot.writeString(struct.firstName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.lastName != null) {
+        oprot.writeFieldBegin(LAST_NAME_FIELD_DESC);
+        oprot.writeString(struct.lastName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.middleName != null) {
+        if (struct.isSetMiddleName()) {
+          oprot.writeFieldBegin(MIDDLE_NAME_FIELD_DESC);
+          oprot.writeString(struct.middleName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.namePrefix != null) {
+        if (struct.isSetNamePrefix()) {
+          oprot.writeFieldBegin(NAME_PREFIX_FIELD_DESC);
+          oprot.writeString(struct.namePrefix);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.nameSuffix != null) {
+        if (struct.isSetNameSuffix()) {
+          oprot.writeFieldBegin(NAME_SUFFIX_FIELD_DESC);
+          oprot.writeString(struct.nameSuffix);
+          oprot.writeFieldEnd();
+        }
+      }
       if (struct.userName != null) {
         if (struct.isSetUserName()) {
           oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
@@ -2537,48 +3025,68 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
           oprot.writeString(_iter40);
         }
       }
+      oprot.writeString(struct.firstName);
+      oprot.writeString(struct.lastName);
       oprot.writeI64(struct.creationTime);
       oprot.writeI64(struct.lastAccessTime);
       oprot.writeI64(struct.validUntil);
       oprot.writeI32(struct.State.getValue());
       BitSet optionals = new BitSet();
-      if (struct.isSetUserName()) {
+      if (struct.isSetMiddleName()) {
         optionals.set(0);
       }
-      if (struct.isSetOrcidId()) {
+      if (struct.isSetNamePrefix()) {
         optionals.set(1);
       }
-      if (struct.isSetPhones()) {
+      if (struct.isSetNameSuffix()) {
         optionals.set(2);
       }
-      if (struct.isSetCountry()) {
+      if (struct.isSetUserName()) {
         optionals.set(3);
       }
-      if (struct.isSetNationality()) {
+      if (struct.isSetOrcidId()) {
         optionals.set(4);
       }
-      if (struct.isSetHomeOrganization()) {
+      if (struct.isSetPhones()) {
         optionals.set(5);
       }
-      if (struct.isSetOrginationAffiliation()) {
+      if (struct.isSetCountry()) {
         optionals.set(6);
       }
-      if (struct.isSetComments()) {
+      if (struct.isSetNationality()) {
         optionals.set(7);
       }
-      if (struct.isSetLabeledURI()) {
+      if (struct.isSetHomeOrganization()) {
         optionals.set(8);
       }
-      if (struct.isSetGpgKey()) {
+      if (struct.isSetOrginationAffiliation()) {
         optionals.set(9);
       }
-      if (struct.isSetTimeZone()) {
+      if (struct.isSetComments()) {
         optionals.set(10);
       }
-      if (struct.isSetNsfDemographics()) {
+      if (struct.isSetLabeledURI()) {
         optionals.set(11);
       }
-      oprot.writeBitSet(optionals, 12);
+      if (struct.isSetGpgKey()) {
+        optionals.set(12);
+      }
+      if (struct.isSetTimeZone()) {
+        optionals.set(13);
+      }
+      if (struct.isSetNsfDemographics()) {
+        optionals.set(14);
+      }
+      oprot.writeBitSet(optionals, 15);
+      if (struct.isSetMiddleName()) {
+        oprot.writeString(struct.middleName);
+      }
+      if (struct.isSetNamePrefix()) {
+        oprot.writeString(struct.namePrefix);
+      }
+      if (struct.isSetNameSuffix()) {
+        oprot.writeString(struct.nameSuffix);
+      }
       if (struct.isSetUserName()) {
         oprot.writeString(struct.userName);
       }
@@ -2657,6 +3165,10 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         }
       }
       struct.setEmailsIsSet(true);
+      struct.firstName = iprot.readString();
+      struct.setFirstNameIsSet(true);
+      struct.lastName = iprot.readString();
+      struct.setLastNameIsSet(true);
       struct.creationTime = iprot.readI64();
       struct.setCreationTimeIsSet(true);
       struct.lastAccessTime = iprot.readI64();
@@ -2665,16 +3177,28 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
       struct.setValidUntilIsSet(true);
       struct.State = org.apache.airavata.model.user.Status.findByValue(iprot.readI32());
       struct.setStateIsSet(true);
-      BitSet incoming = iprot.readBitSet(12);
+      BitSet incoming = iprot.readBitSet(15);
       if (incoming.get(0)) {
+        struct.middleName = iprot.readString();
+        struct.setMiddleNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.namePrefix = iprot.readString();
+        struct.setNamePrefixIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.nameSuffix = iprot.readString();
+        struct.setNameSuffixIsSet(true);
+      }
+      if (incoming.get(3)) {
         struct.userName = iprot.readString();
         struct.setUserNameIsSet(true);
       }
-      if (incoming.get(1)) {
+      if (incoming.get(4)) {
         struct.orcidId = iprot.readString();
         struct.setOrcidIdIsSet(true);
       }
-      if (incoming.get(2)) {
+      if (incoming.get(5)) {
         {
           org.apache.thrift.protocol.TList _list47 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
           struct.phones = new ArrayList<String>(_list47.size);
@@ -2687,11 +3211,11 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         }
         struct.setPhonesIsSet(true);
       }
-      if (incoming.get(3)) {
+      if (incoming.get(6)) {
         struct.country = iprot.readString();
         struct.setCountryIsSet(true);
       }
-      if (incoming.get(4)) {
+      if (incoming.get(7)) {
         {
           org.apache.thrift.protocol.TList _list50 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
           struct.nationality = new ArrayList<String>(_list50.size);
@@ -2704,19 +3228,19 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         }
         struct.setNationalityIsSet(true);
       }
-      if (incoming.get(5)) {
+      if (incoming.get(8)) {
         struct.homeOrganization = iprot.readString();
         struct.setHomeOrganizationIsSet(true);
       }
-      if (incoming.get(6)) {
+      if (incoming.get(9)) {
         struct.orginationAffiliation = iprot.readString();
         struct.setOrginationAffiliationIsSet(true);
       }
-      if (incoming.get(7)) {
+      if (incoming.get(10)) {
         struct.comments = iprot.readString();
         struct.setCommentsIsSet(true);
       }
-      if (incoming.get(8)) {
+      if (incoming.get(11)) {
         {
           org.apache.thrift.protocol.TList _list53 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
           struct.labeledURI = new ArrayList<String>(_list53.size);
@@ -2729,15 +3253,15 @@ public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserPro
         }
         struct.setLabeledURIIsSet(true);
       }
-      if (incoming.get(9)) {
+      if (incoming.get(12)) {
         struct.gpgKey = iprot.readString();
         struct.setGpgKeyIsSet(true);
       }
-      if (incoming.get(10)) {
+      if (incoming.get(13)) {
         struct.timeZone = iprot.readString();
         struct.setTimeZoneIsSet(true);
       }
-      if (incoming.get(11)) {
+      if (incoming.get(14)) {
         struct.nsfDemographics = new NSFDemographics();
         struct.nsfDemographics.read(iprot);
         struct.setNsfDemographicsIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/disability.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/disability.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/disability.java
index cc6dd0c..de4077c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/disability.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/disability.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/ethnicity.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/ethnicity.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/ethnicity.java
index d9462ba..aaf005b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/ethnicity.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/ethnicity.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/race.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/race.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/race.java
index fef5da6..dbf1cac 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/race.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/race.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/user_profile_modelConstants.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/user_profile_modelConstants.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/user_profile_modelConstants.java
index 91f5425..37b47a8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/user_profile_modelConstants.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/user_profile_modelConstants.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
index 2018124..c32cc0d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/GatewayApprovalStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/GatewayApprovalStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/GatewayApprovalStatus.java
index 2a47b1a..e53ee20 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/GatewayApprovalStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/GatewayApprovalStatus.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
index e765ab7..f1bf76f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
index 65dc1da..bebdca6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/NotificationPriority.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/NotificationPriority.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/NotificationPriority.java
index 4b0c11e..90c56be 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/NotificationPriority.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/NotificationPriority.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
index d01c743..275c199 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
index e26a269..e0cfcc2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
index 34ef441..e952abb 100644
--- a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
@@ -43,8 +43,8 @@ include "../data-models/resource-catalog-models/user_resource_profile_model.thri
 include "../data-models/resource-catalog-models/data_movement_models.thrift"
 include "../data-models/workflow-models/workflow_data_model.thrift"
 include "../data-models/replica-catalog-models/replica_catalog_models.thrift"
-include "../data-models/user-group-models/group_manager_model.thrift"
-include "../data-models/user-group-models/user_profile_model.thrift"
+include "../data-models/user-tenant-group-models/group_manager_model.thrift"
+include "../data-models/user-tenant-group-models/user_profile_model.thrift"
 
 namespace java org.apache.airavata.api
 namespace php Airavata.API

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/component-cpis/registry-api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/component-cpis/registry-api.thrift b/thrift-interface-descriptions/component-cpis/registry-api.thrift
index 004919a..cd3248f 100644
--- a/thrift-interface-descriptions/component-cpis/registry-api.thrift
+++ b/thrift-interface-descriptions/component-cpis/registry-api.thrift
@@ -24,7 +24,7 @@
 */
 
 include "../data-models/airavata_data_models.thrift"
-include "../data-models/user-group-models/user_profile_model.thrift"
+include "../data-models/user-tenant-group-models/user_profile_model.thrift"
 include "../data-models/experiment-catalog-models/status_models.thrift"
 include "../data-models/experiment-catalog-models/job_model.thrift"
 include "../data-models/experiment-catalog-models/experiment_model.thrift"

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/thrift-interface-descriptions/component-cpis/user-profile-cpi.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/component-cpis/user-profile-cpi.thrift b/thrift-interface-descriptions/component-cpis/user-profile-cpi.thrift
index 739ea1c..9567bf0 100644
--- a/thrift-interface-descriptions/component-cpis/user-profile-cpi.thrift
+++ b/thrift-interface-descriptions/component-cpis/user-profile-cpi.thrift
@@ -23,7 +23,7 @@
  *
 */
 
-include "../data-models/user-group-models/user_profile_model.thrift"
+include "../data-models/user-tenant-group-models/user_profile_model.thrift"
 include "user_profile_cpi_errors.thrift"
 
 


[06/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/DataType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/DataType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/DataType.java
index e32653e..8bef839 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/DataType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/DataType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
index 98547d4..6308e58 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
index 75e6d64..19df1e3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
index c981170..2adadf4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
index 95cb756..154f28c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
index 359d67e..1ef9ee3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/airavata_commonsConstants.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/airavata_commonsConstants.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/airavata_commonsConstants.java
index 977333d..c8be61d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/airavata_commonsConstants.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/airavata_commonsConstants.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CertificateCredential.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CertificateCredential.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CertificateCredential.java
index 3c4cb53..c1d959c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CertificateCredential.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CertificateCredential.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CommunityUser.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CommunityUser.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CommunityUser.java
index ba4e56b..199fee6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CommunityUser.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CommunityUser.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CredentialOwnerType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CredentialOwnerType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CredentialOwnerType.java
index c5a9814..01b3c90 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CredentialOwnerType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CredentialOwnerType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CredentialSummary.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CredentialSummary.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CredentialSummary.java
index 0cd6529..c31a1b1 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CredentialSummary.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/CredentialSummary.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/PasswordCredential.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/PasswordCredential.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/PasswordCredential.java
index 8f2f9cb..f7d5db0 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/PasswordCredential.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/PasswordCredential.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/SSHCredential.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/SSHCredential.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/SSHCredential.java
index 0203895..670fc7e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/SSHCredential.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/SSHCredential.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/SummaryType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/SummaryType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/SummaryType.java
index e24c144..7451f89 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/SummaryType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/SummaryType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/credential_store_data_modelsConstants.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/credential_store_data_modelsConstants.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/credential_store_data_modelsConstants.java
index 7d1f400..d4b1dd0 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/credential_store_data_modelsConstants.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/credential/store/credential_store_data_modelsConstants.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DMType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DMType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DMType.java
index 5b4fd31..5ff84bd 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DMType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DMType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
index a973938..b9678e0 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementProtocol.java
index 97c69a8..627b91b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementProtocol.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementProtocol.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
index 4f6754d..9e586ce 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
index 826fae7..3db57a7 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
index 382ee05..31c4ddb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SecurityProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SecurityProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SecurityProtocol.java
index f5b380e..359930a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SecurityProtocol.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SecurityProtocol.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
index 7047942..8d54c40 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
index 3b48a66..931e94c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *
@@ -219,7 +217,7 @@ public class DataProductModel implements org.apache.thrift.TBase<DataProductMode
             new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
     tmpMap.put(_Fields.REPLICA_LOCATIONS, new org.apache.thrift.meta_data.FieldMetaData("replicaLocations", 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.STRUCT            , "DataReplicaLocationModel"))));
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DataReplicaLocationModel.class))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DataProductModel.class, metaDataMap);
   }
@@ -263,7 +261,7 @@ public class DataProductModel implements org.apache.thrift.TBase<DataProductMode
     if (other.isSetReplicaLocations()) {
       List<DataReplicaLocationModel> __this__replicaLocations = new ArrayList<DataReplicaLocationModel>(other.replicaLocations.size());
       for (DataReplicaLocationModel other_element : other.replicaLocations) {
-        __this__replicaLocations.add(other_element);
+        __this__replicaLocations.add(new DataReplicaLocationModel(other_element));
       }
       this.replicaLocations = __this__replicaLocations;
     }
@@ -1351,15 +1349,15 @@ public class DataProductModel implements org.apache.thrift.TBase<DataProductMode
           case 11: // PRODUCT_METADATA
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map0 = iprot.readMapBegin();
-                struct.productMetadata = new HashMap<String,String>(2*_map0.size);
-                String _key1;
-                String _val2;
-                for (int _i3 = 0; _i3 < _map0.size; ++_i3)
+                org.apache.thrift.protocol.TMap _map10 = iprot.readMapBegin();
+                struct.productMetadata = new HashMap<String,String>(2*_map10.size);
+                String _key11;
+                String _val12;
+                for (int _i13 = 0; _i13 < _map10.size; ++_i13)
                 {
-                  _key1 = iprot.readString();
-                  _val2 = iprot.readString();
-                  struct.productMetadata.put(_key1, _val2);
+                  _key11 = iprot.readString();
+                  _val12 = iprot.readString();
+                  struct.productMetadata.put(_key11, _val12);
                 }
                 iprot.readMapEnd();
               }
@@ -1371,14 +1369,14 @@ public class DataProductModel implements org.apache.thrift.TBase<DataProductMode
           case 12: // REPLICA_LOCATIONS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list4 = iprot.readListBegin();
-                struct.replicaLocations = new ArrayList<DataReplicaLocationModel>(_list4.size);
-                DataReplicaLocationModel _elem5;
-                for (int _i6 = 0; _i6 < _list4.size; ++_i6)
+                org.apache.thrift.protocol.TList _list14 = iprot.readListBegin();
+                struct.replicaLocations = new ArrayList<DataReplicaLocationModel>(_list14.size);
+                DataReplicaLocationModel _elem15;
+                for (int _i16 = 0; _i16 < _list14.size; ++_i16)
                 {
-                  _elem5 = new DataReplicaLocationModel();
-                  _elem5.read(iprot);
-                  struct.replicaLocations.add(_elem5);
+                  _elem15 = new DataReplicaLocationModel();
+                  _elem15.read(iprot);
+                  struct.replicaLocations.add(_elem15);
                 }
                 iprot.readListEnd();
               }
@@ -1469,10 +1467,10 @@ public class DataProductModel implements org.apache.thrift.TBase<DataProductMode
           oprot.writeFieldBegin(PRODUCT_METADATA_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.productMetadata.size()));
-            for (Map.Entry<String, String> _iter7 : struct.productMetadata.entrySet())
+            for (Map.Entry<String, String> _iter17 : struct.productMetadata.entrySet())
             {
-              oprot.writeString(_iter7.getKey());
-              oprot.writeString(_iter7.getValue());
+              oprot.writeString(_iter17.getKey());
+              oprot.writeString(_iter17.getValue());
             }
             oprot.writeMapEnd();
           }
@@ -1484,9 +1482,9 @@ public class DataProductModel implements org.apache.thrift.TBase<DataProductMode
           oprot.writeFieldBegin(REPLICA_LOCATIONS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.replicaLocations.size()));
-            for (DataReplicaLocationModel _iter8 : struct.replicaLocations)
+            for (DataReplicaLocationModel _iter18 : struct.replicaLocations)
             {
-              _iter8.write(oprot);
+              _iter18.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -1581,19 +1579,19 @@ public class DataProductModel implements org.apache.thrift.TBase<DataProductMode
       if (struct.isSetProductMetadata()) {
         {
           oprot.writeI32(struct.productMetadata.size());
-          for (Map.Entry<String, String> _iter9 : struct.productMetadata.entrySet())
+          for (Map.Entry<String, String> _iter19 : struct.productMetadata.entrySet())
           {
-            oprot.writeString(_iter9.getKey());
-            oprot.writeString(_iter9.getValue());
+            oprot.writeString(_iter19.getKey());
+            oprot.writeString(_iter19.getValue());
           }
         }
       }
       if (struct.isSetReplicaLocations()) {
         {
           oprot.writeI32(struct.replicaLocations.size());
-          for (DataReplicaLocationModel _iter10 : struct.replicaLocations)
+          for (DataReplicaLocationModel _iter20 : struct.replicaLocations)
           {
-            _iter10.write(oprot);
+            _iter20.write(oprot);
           }
         }
       }
@@ -1645,29 +1643,29 @@ public class DataProductModel implements org.apache.thrift.TBase<DataProductMode
       }
       if (incoming.get(10)) {
         {
-          org.apache.thrift.protocol.TMap _map11 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.productMetadata = new HashMap<String,String>(2*_map11.size);
-          String _key12;
-          String _val13;
-          for (int _i14 = 0; _i14 < _map11.size; ++_i14)
+          org.apache.thrift.protocol.TMap _map21 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.productMetadata = new HashMap<String,String>(2*_map21.size);
+          String _key22;
+          String _val23;
+          for (int _i24 = 0; _i24 < _map21.size; ++_i24)
           {
-            _key12 = iprot.readString();
-            _val13 = iprot.readString();
-            struct.productMetadata.put(_key12, _val13);
+            _key22 = iprot.readString();
+            _val23 = iprot.readString();
+            struct.productMetadata.put(_key22, _val23);
           }
         }
         struct.setProductMetadataIsSet(true);
       }
       if (incoming.get(11)) {
         {
-          org.apache.thrift.protocol.TList _list15 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.replicaLocations = new ArrayList<DataReplicaLocationModel>(_list15.size);
-          DataReplicaLocationModel _elem16;
-          for (int _i17 = 0; _i17 < _list15.size; ++_i17)
+          org.apache.thrift.protocol.TList _list25 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.replicaLocations = new ArrayList<DataReplicaLocationModel>(_list25.size);
+          DataReplicaLocationModel _elem26;
+          for (int _i27 = 0; _i27 < _list25.size; ++_i27)
           {
-            _elem16 = new DataReplicaLocationModel();
-            _elem16.read(iprot);
-            struct.replicaLocations.add(_elem16);
+            _elem26 = new DataReplicaLocationModel();
+            _elem26.read(iprot);
+            struct.replicaLocations.add(_elem26);
           }
         }
         struct.setReplicaLocationsIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductType.java
index 77f8003..db4895d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
index fc76d20..151f9c2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *
@@ -1351,15 +1349,15 @@ public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataRep
           case 12: // REPLICA_METADATA
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map18 = iprot.readMapBegin();
-                struct.replicaMetadata = new HashMap<String,String>(2*_map18.size);
-                String _key19;
-                String _val20;
-                for (int _i21 = 0; _i21 < _map18.size; ++_i21)
+                org.apache.thrift.protocol.TMap _map0 = iprot.readMapBegin();
+                struct.replicaMetadata = new HashMap<String,String>(2*_map0.size);
+                String _key1;
+                String _val2;
+                for (int _i3 = 0; _i3 < _map0.size; ++_i3)
                 {
-                  _key19 = iprot.readString();
-                  _val20 = iprot.readString();
-                  struct.replicaMetadata.put(_key19, _val20);
+                  _key1 = iprot.readString();
+                  _val2 = iprot.readString();
+                  struct.replicaMetadata.put(_key1, _val2);
                 }
                 iprot.readMapEnd();
               }
@@ -1457,10 +1455,10 @@ public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataRep
           oprot.writeFieldBegin(REPLICA_METADATA_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.replicaMetadata.size()));
-            for (Map.Entry<String, String> _iter22 : struct.replicaMetadata.entrySet())
+            for (Map.Entry<String, String> _iter4 : struct.replicaMetadata.entrySet())
             {
-              oprot.writeString(_iter22.getKey());
-              oprot.writeString(_iter22.getValue());
+              oprot.writeString(_iter4.getKey());
+              oprot.writeString(_iter4.getValue());
             }
             oprot.writeMapEnd();
           }
@@ -1558,10 +1556,10 @@ public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataRep
       if (struct.isSetReplicaMetadata()) {
         {
           oprot.writeI32(struct.replicaMetadata.size());
-          for (Map.Entry<String, String> _iter23 : struct.replicaMetadata.entrySet())
+          for (Map.Entry<String, String> _iter5 : struct.replicaMetadata.entrySet())
           {
-            oprot.writeString(_iter23.getKey());
-            oprot.writeString(_iter23.getValue());
+            oprot.writeString(_iter5.getKey());
+            oprot.writeString(_iter5.getValue());
           }
         }
       }
@@ -1617,15 +1615,15 @@ public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataRep
       }
       if (incoming.get(11)) {
         {
-          org.apache.thrift.protocol.TMap _map24 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.replicaMetadata = new HashMap<String,String>(2*_map24.size);
-          String _key25;
-          String _val26;
-          for (int _i27 = 0; _i27 < _map24.size; ++_i27)
+          org.apache.thrift.protocol.TMap _map6 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.replicaMetadata = new HashMap<String,String>(2*_map6.size);
+          String _key7;
+          String _val8;
+          for (int _i9 = 0; _i9 < _map6.size; ++_i9)
           {
-            _key25 = iprot.readString();
-            _val26 = iprot.readString();
-            struct.replicaMetadata.put(_key25, _val26);
+            _key7 = iprot.readString();
+            _val8 = iprot.readString();
+            struct.replicaMetadata.put(_key7, _val8);
           }
         }
         struct.setReplicaMetadataIsSet(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaLocationCategory.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaLocationCategory.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaLocationCategory.java
index 9b6b436..6cf5a8e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaLocationCategory.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaLocationCategory.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java
index 19715fa..518ca9f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/ReplicaPersistentType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
index 8e8da82..dfc6630 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataErrorType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataErrorType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataErrorType.java
index 960233d..323195f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataErrorType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataErrorType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
index 41546e2..feb658c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *


[13/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.h
index 12cfa2a..469b9b4 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.h
@@ -37,6 +37,7 @@
 #include "airavata_errors_types.h"
 #include "messaging_events_types.h"
 #include "security_model_types.h"
+#include "db_event_model_types.h"
 #include "experiment_model_types.h"
 #include "job_model_types.h"
 #include "task_model_types.h"
@@ -47,6 +48,7 @@
 #include "replica_catalog_models_types.h"
 #include "user_profile_model_types.h"
 #include "group_manager_model_types.h"
+#include "tenant_profile_model_types.h"
 #include "credential_store_data_models_types.h"
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_errors_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_errors_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_errors_types.cpp
index 08c02cf..589de8e 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_errors_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_errors_types.cpp
@@ -611,6 +611,103 @@ const char* AuthorizationException::what() const throw() {
 }
 
 
+DuplicateEntryException::~DuplicateEntryException() throw() {
+}
+
+
+void DuplicateEntryException::__set_message(const std::string& val) {
+  this->message = val;
+}
+
+uint32_t DuplicateEntryException::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_message = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->message);
+          isset_message = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_message)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t DuplicateEntryException::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("DuplicateEntryException");
+
+  xfer += oprot->writeFieldBegin("message", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->message);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(DuplicateEntryException &a, DuplicateEntryException &b) {
+  using ::std::swap;
+  swap(a.message, b.message);
+}
+
+DuplicateEntryException::DuplicateEntryException(const DuplicateEntryException& other12) : TException() {
+  message = other12.message;
+}
+DuplicateEntryException& DuplicateEntryException::operator=(const DuplicateEntryException& other13) {
+  message = other13.message;
+  return *this;
+}
+void DuplicateEntryException::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "DuplicateEntryException(";
+  out << "message=" << to_string(message);
+  out << ")";
+}
+
+const char* DuplicateEntryException::what() const throw() {
+  try {
+    std::stringstream ss;
+    ss << "TException - service has thrown: " << *this;
+    this->thriftTExceptionMessageHolder_ = ss.str();
+    return this->thriftTExceptionMessageHolder_.c_str();
+  } catch (const std::exception&) {
+    return "TException - service has thrown: DuplicateEntryException";
+  }
+}
+
+
 AiravataClientException::~AiravataClientException() throw() {
 }
 
@@ -648,9 +745,9 @@ uint32_t AiravataClientException::read(::apache::thrift::protocol::TProtocol* ip
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast12;
-          xfer += iprot->readI32(ecast12);
-          this->airavataErrorType = (AiravataErrorType::type)ecast12;
+          int32_t ecast14;
+          xfer += iprot->readI32(ecast14);
+          this->airavataErrorType = (AiravataErrorType::type)ecast14;
           isset_airavataErrorType = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -704,15 +801,15 @@ void swap(AiravataClientException &a, AiravataClientException &b) {
   swap(a.__isset, b.__isset);
 }
 
-AiravataClientException::AiravataClientException(const AiravataClientException& other13) : TException() {
-  airavataErrorType = other13.airavataErrorType;
-  parameter = other13.parameter;
-  __isset = other13.__isset;
+AiravataClientException::AiravataClientException(const AiravataClientException& other15) : TException() {
+  airavataErrorType = other15.airavataErrorType;
+  parameter = other15.parameter;
+  __isset = other15.__isset;
 }
-AiravataClientException& AiravataClientException::operator=(const AiravataClientException& other14) {
-  airavataErrorType = other14.airavataErrorType;
-  parameter = other14.parameter;
-  __isset = other14.__isset;
+AiravataClientException& AiravataClientException::operator=(const AiravataClientException& other16) {
+  airavataErrorType = other16.airavataErrorType;
+  parameter = other16.parameter;
+  __isset = other16.__isset;
   return *this;
 }
 void AiravataClientException::printTo(std::ostream& out) const {
@@ -826,15 +923,15 @@ void swap(ValidatorResult &a, ValidatorResult &b) {
   swap(a.__isset, b.__isset);
 }
 
-ValidatorResult::ValidatorResult(const ValidatorResult& other15) {
-  result = other15.result;
-  errorDetails = other15.errorDetails;
-  __isset = other15.__isset;
+ValidatorResult::ValidatorResult(const ValidatorResult& other17) {
+  result = other17.result;
+  errorDetails = other17.errorDetails;
+  __isset = other17.__isset;
 }
-ValidatorResult& ValidatorResult::operator=(const ValidatorResult& other16) {
-  result = other16.result;
-  errorDetails = other16.errorDetails;
-  __isset = other16.__isset;
+ValidatorResult& ValidatorResult::operator=(const ValidatorResult& other18) {
+  result = other18.result;
+  errorDetails = other18.errorDetails;
+  __isset = other18.__isset;
   return *this;
 }
 void ValidatorResult::printTo(std::ostream& out) const {
@@ -893,14 +990,14 @@ uint32_t ValidationResults::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->validationResultList.clear();
-            uint32_t _size17;
-            ::apache::thrift::protocol::TType _etype20;
-            xfer += iprot->readListBegin(_etype20, _size17);
-            this->validationResultList.resize(_size17);
-            uint32_t _i21;
-            for (_i21 = 0; _i21 < _size17; ++_i21)
+            uint32_t _size19;
+            ::apache::thrift::protocol::TType _etype22;
+            xfer += iprot->readListBegin(_etype22, _size19);
+            this->validationResultList.resize(_size19);
+            uint32_t _i23;
+            for (_i23 = 0; _i23 < _size19; ++_i23)
             {
-              xfer += this->validationResultList[_i21].read(iprot);
+              xfer += this->validationResultList[_i23].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -937,10 +1034,10 @@ uint32_t ValidationResults::write(::apache::thrift::protocol::TProtocol* oprot)
   xfer += oprot->writeFieldBegin("validationResultList", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->validationResultList.size()));
-    std::vector<ValidatorResult> ::const_iterator _iter22;
-    for (_iter22 = this->validationResultList.begin(); _iter22 != this->validationResultList.end(); ++_iter22)
+    std::vector<ValidatorResult> ::const_iterator _iter24;
+    for (_iter24 = this->validationResultList.begin(); _iter24 != this->validationResultList.end(); ++_iter24)
     {
-      xfer += (*_iter22).write(oprot);
+      xfer += (*_iter24).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
@@ -957,13 +1054,13 @@ void swap(ValidationResults &a, ValidationResults &b) {
   swap(a.validationResultList, b.validationResultList);
 }
 
-ValidationResults::ValidationResults(const ValidationResults& other23) {
-  validationState = other23.validationState;
-  validationResultList = other23.validationResultList;
+ValidationResults::ValidationResults(const ValidationResults& other25) {
+  validationState = other25.validationState;
+  validationResultList = other25.validationResultList;
 }
-ValidationResults& ValidationResults::operator=(const ValidationResults& other24) {
-  validationState = other24.validationState;
-  validationResultList = other24.validationResultList;
+ValidationResults& ValidationResults::operator=(const ValidationResults& other26) {
+  validationState = other26.validationState;
+  validationResultList = other26.validationResultList;
   return *this;
 }
 void ValidationResults::printTo(std::ostream& out) const {
@@ -1066,15 +1163,15 @@ void swap(LaunchValidationException &a, LaunchValidationException &b) {
   swap(a.__isset, b.__isset);
 }
 
-LaunchValidationException::LaunchValidationException(const LaunchValidationException& other25) : TException() {
-  validationResult = other25.validationResult;
-  errorMessage = other25.errorMessage;
-  __isset = other25.__isset;
+LaunchValidationException::LaunchValidationException(const LaunchValidationException& other27) : TException() {
+  validationResult = other27.validationResult;
+  errorMessage = other27.errorMessage;
+  __isset = other27.__isset;
 }
-LaunchValidationException& LaunchValidationException::operator=(const LaunchValidationException& other26) {
-  validationResult = other26.validationResult;
-  errorMessage = other26.errorMessage;
-  __isset = other26.__isset;
+LaunchValidationException& LaunchValidationException::operator=(const LaunchValidationException& other28) {
+  validationResult = other28.validationResult;
+  errorMessage = other28.errorMessage;
+  __isset = other28.__isset;
   return *this;
 }
 void LaunchValidationException::printTo(std::ostream& out) const {
@@ -1134,9 +1231,9 @@ uint32_t AiravataSystemException::read(::apache::thrift::protocol::TProtocol* ip
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast27;
-          xfer += iprot->readI32(ecast27);
-          this->airavataErrorType = (AiravataErrorType::type)ecast27;
+          int32_t ecast29;
+          xfer += iprot->readI32(ecast29);
+          this->airavataErrorType = (AiravataErrorType::type)ecast29;
           isset_airavataErrorType = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1190,15 +1287,15 @@ void swap(AiravataSystemException &a, AiravataSystemException &b) {
   swap(a.__isset, b.__isset);
 }
 
-AiravataSystemException::AiravataSystemException(const AiravataSystemException& other28) : TException() {
-  airavataErrorType = other28.airavataErrorType;
-  message = other28.message;
-  __isset = other28.__isset;
+AiravataSystemException::AiravataSystemException(const AiravataSystemException& other30) : TException() {
+  airavataErrorType = other30.airavataErrorType;
+  message = other30.message;
+  __isset = other30.__isset;
 }
-AiravataSystemException& AiravataSystemException::operator=(const AiravataSystemException& other29) {
-  airavataErrorType = other29.airavataErrorType;
-  message = other29.message;
-  __isset = other29.__isset;
+AiravataSystemException& AiravataSystemException::operator=(const AiravataSystemException& other31) {
+  airavataErrorType = other31.airavataErrorType;
+  message = other31.message;
+  __isset = other31.__isset;
   return *this;
 }
 void AiravataSystemException::printTo(std::ostream& out) const {

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_errors_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_errors_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_errors_types.h
index e756d0a..daa533d 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_errors_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_errors_types.h
@@ -64,6 +64,8 @@ class AuthenticationException;
 
 class AuthorizationException;
 
+class DuplicateEntryException;
+
 class AiravataClientException;
 
 class ValidatorResult;
@@ -321,6 +323,48 @@ inline std::ostream& operator<<(std::ostream& out, const AuthorizationException&
   return out;
 }
 
+
+class DuplicateEntryException : public ::apache::thrift::TException {
+ public:
+
+  DuplicateEntryException(const DuplicateEntryException&);
+  DuplicateEntryException& operator=(const DuplicateEntryException&);
+  DuplicateEntryException() : message() {
+  }
+
+  virtual ~DuplicateEntryException() throw();
+  std::string message;
+
+  void __set_message(const std::string& val);
+
+  bool operator == (const DuplicateEntryException & rhs) const
+  {
+    if (!(message == rhs.message))
+      return false;
+    return true;
+  }
+  bool operator != (const DuplicateEntryException &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const DuplicateEntryException & ) 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;
+  mutable std::string thriftTExceptionMessageHolder_;
+  const char* what() const throw();
+};
+
+void swap(DuplicateEntryException &a, DuplicateEntryException &b);
+
+inline std::ostream& operator<<(std::ostream& out, const DuplicateEntryException& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _AiravataClientException__isset {
   _AiravataClientException__isset() : parameter(false) {}
   bool parameter :1;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_constants.cpp
new file mode 100644
index 0000000..f752436
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_constants.cpp
@@ -0,0 +1,34 @@
+/**
+ * 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
+ */
+#include "db_event_model_constants.h"
+
+
+
+const db_event_modelConstants g_db_event_model_constants;
+
+db_event_modelConstants::db_event_modelConstants() {
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_constants.h
new file mode 100644
index 0000000..15a5a75
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_constants.h
@@ -0,0 +1,41 @@
+/**
+ * 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 db_event_model_CONSTANTS_H
+#define db_event_model_CONSTANTS_H
+
+#include "db_event_model_types.h"
+
+
+
+class db_event_modelConstants {
+ public:
+  db_event_modelConstants();
+
+};
+
+extern const db_event_modelConstants g_db_event_model_constants;
+
+
+
+#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/db_event_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_types.cpp
new file mode 100644
index 0000000..fdac10d
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_types.cpp
@@ -0,0 +1,627 @@
+/**
+ * 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
+ */
+#include "db_event_model_types.h"
+
+#include <algorithm>
+#include <ostream>
+
+#include <thrift/TToString.h>
+
+
+
+int _kCrudTypeValues[] = {
+  CrudType::CREATE,
+  CrudType::READ,
+  CrudType::UPDATE,
+  CrudType::DELETE
+};
+const char* _kCrudTypeNames[] = {
+  "CREATE",
+  "READ",
+  "UPDATE",
+  "DELETE"
+};
+const std::map<int, const char*> _CrudType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(4, _kCrudTypeValues, _kCrudTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+int _kEntityTypeValues[] = {
+  EntityType::USER_PROFILE,
+  EntityType::TENANT,
+  EntityType::GROUP,
+  EntityType::PROJECT,
+  EntityType::EXPERIMENT,
+  EntityType::APPLICATION,
+  EntityType::SHARING,
+  EntityType::REGISTRY
+};
+const char* _kEntityTypeNames[] = {
+  "USER_PROFILE",
+  "TENANT",
+  "GROUP",
+  "PROJECT",
+  "EXPERIMENT",
+  "APPLICATION",
+  "SHARING",
+  "REGISTRY"
+};
+const std::map<int, const char*> _EntityType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(8, _kEntityTypeValues, _kEntityTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+int _kDBEventTypeValues[] = {
+  DBEventType::PUBLISHER,
+  DBEventType::SUBSCRIBER
+};
+const char* _kDBEventTypeNames[] = {
+  "PUBLISHER",
+  "SUBSCRIBER"
+};
+const std::map<int, const char*> _DBEventType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, _kDBEventTypeValues, _kDBEventTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+
+DBEventPublisherContext::~DBEventPublisherContext() throw() {
+}
+
+
+void DBEventPublisherContext::__set_crudType(const CrudType::type val) {
+  this->crudType = val;
+}
+
+void DBEventPublisherContext::__set_entityType(const EntityType::type val) {
+  this->entityType = val;
+}
+
+void DBEventPublisherContext::__set_entityDataModel(const std::string& val) {
+  this->entityDataModel = val;
+}
+
+uint32_t DBEventPublisherContext::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_crudType = false;
+  bool isset_entityType = false;
+  bool isset_entityDataModel = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast0;
+          xfer += iprot->readI32(ecast0);
+          this->crudType = (CrudType::type)ecast0;
+          isset_crudType = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast1;
+          xfer += iprot->readI32(ecast1);
+          this->entityType = (EntityType::type)ecast1;
+          isset_entityType = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readBinary(this->entityDataModel);
+          isset_entityDataModel = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_crudType)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_entityType)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_entityDataModel)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t DBEventPublisherContext::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("DBEventPublisherContext");
+
+  xfer += oprot->writeFieldBegin("crudType", ::apache::thrift::protocol::T_I32, 1);
+  xfer += oprot->writeI32((int32_t)this->crudType);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("entityType", ::apache::thrift::protocol::T_I32, 2);
+  xfer += oprot->writeI32((int32_t)this->entityType);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("entityDataModel", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeBinary(this->entityDataModel);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(DBEventPublisherContext &a, DBEventPublisherContext &b) {
+  using ::std::swap;
+  swap(a.crudType, b.crudType);
+  swap(a.entityType, b.entityType);
+  swap(a.entityDataModel, b.entityDataModel);
+}
+
+DBEventPublisherContext::DBEventPublisherContext(const DBEventPublisherContext& other2) {
+  crudType = other2.crudType;
+  entityType = other2.entityType;
+  entityDataModel = other2.entityDataModel;
+}
+DBEventPublisherContext& DBEventPublisherContext::operator=(const DBEventPublisherContext& other3) {
+  crudType = other3.crudType;
+  entityType = other3.entityType;
+  entityDataModel = other3.entityDataModel;
+  return *this;
+}
+void DBEventPublisherContext::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "DBEventPublisherContext(";
+  out << "crudType=" << to_string(crudType);
+  out << ", " << "entityType=" << to_string(entityType);
+  out << ", " << "entityDataModel=" << to_string(entityDataModel);
+  out << ")";
+}
+
+
+DBEventPublisher::~DBEventPublisher() throw() {
+}
+
+
+void DBEventPublisher::__set_publisherContext(const DBEventPublisherContext& val) {
+  this->publisherContext = val;
+}
+
+uint32_t DBEventPublisher::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_publisherContext = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->publisherContext.read(iprot);
+          isset_publisherContext = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_publisherContext)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t DBEventPublisher::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("DBEventPublisher");
+
+  xfer += oprot->writeFieldBegin("publisherContext", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->publisherContext.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(DBEventPublisher &a, DBEventPublisher &b) {
+  using ::std::swap;
+  swap(a.publisherContext, b.publisherContext);
+}
+
+DBEventPublisher::DBEventPublisher(const DBEventPublisher& other4) {
+  publisherContext = other4.publisherContext;
+}
+DBEventPublisher& DBEventPublisher::operator=(const DBEventPublisher& other5) {
+  publisherContext = other5.publisherContext;
+  return *this;
+}
+void DBEventPublisher::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "DBEventPublisher(";
+  out << "publisherContext=" << to_string(publisherContext);
+  out << ")";
+}
+
+
+DBEventSubscriber::~DBEventSubscriber() throw() {
+}
+
+
+void DBEventSubscriber::__set_subscriberService(const std::string& val) {
+  this->subscriberService = val;
+}
+
+uint32_t DBEventSubscriber::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_subscriberService = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->subscriberService);
+          isset_subscriberService = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_subscriberService)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t DBEventSubscriber::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("DBEventSubscriber");
+
+  xfer += oprot->writeFieldBegin("subscriberService", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->subscriberService);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(DBEventSubscriber &a, DBEventSubscriber &b) {
+  using ::std::swap;
+  swap(a.subscriberService, b.subscriberService);
+}
+
+DBEventSubscriber::DBEventSubscriber(const DBEventSubscriber& other6) {
+  subscriberService = other6.subscriberService;
+}
+DBEventSubscriber& DBEventSubscriber::operator=(const DBEventSubscriber& other7) {
+  subscriberService = other7.subscriberService;
+  return *this;
+}
+void DBEventSubscriber::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "DBEventSubscriber(";
+  out << "subscriberService=" << to_string(subscriberService);
+  out << ")";
+}
+
+
+DBEventMessageContext::~DBEventMessageContext() throw() {
+}
+
+
+void DBEventMessageContext::__set_publisher(const DBEventPublisher& val) {
+  this->publisher = val;
+}
+
+void DBEventMessageContext::__set_subscriber(const DBEventSubscriber& val) {
+  this->subscriber = val;
+}
+
+uint32_t DBEventMessageContext::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->publisher.read(iprot);
+          this->__isset.publisher = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->subscriber.read(iprot);
+          this->__isset.subscriber = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t DBEventMessageContext::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("DBEventMessageContext");
+
+  xfer += oprot->writeFieldBegin("publisher", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->publisher.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("subscriber", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->subscriber.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(DBEventMessageContext &a, DBEventMessageContext &b) {
+  using ::std::swap;
+  swap(a.publisher, b.publisher);
+  swap(a.subscriber, b.subscriber);
+  swap(a.__isset, b.__isset);
+}
+
+DBEventMessageContext::DBEventMessageContext(const DBEventMessageContext& other8) {
+  publisher = other8.publisher;
+  subscriber = other8.subscriber;
+  __isset = other8.__isset;
+}
+DBEventMessageContext& DBEventMessageContext::operator=(const DBEventMessageContext& other9) {
+  publisher = other9.publisher;
+  subscriber = other9.subscriber;
+  __isset = other9.__isset;
+  return *this;
+}
+void DBEventMessageContext::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "DBEventMessageContext(";
+  out << "publisher=" << to_string(publisher);
+  out << ", " << "subscriber=" << to_string(subscriber);
+  out << ")";
+}
+
+
+DBEventMessage::~DBEventMessage() throw() {
+}
+
+
+void DBEventMessage::__set_dbEventType(const DBEventType::type val) {
+  this->dbEventType = val;
+}
+
+void DBEventMessage::__set_messageContext(const DBEventMessageContext& val) {
+  this->messageContext = val;
+}
+
+void DBEventMessage::__set_publisherService(const std::string& val) {
+  this->publisherService = val;
+}
+
+uint32_t DBEventMessage::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_dbEventType = false;
+  bool isset_messageContext = false;
+  bool isset_publisherService = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast10;
+          xfer += iprot->readI32(ecast10);
+          this->dbEventType = (DBEventType::type)ecast10;
+          isset_dbEventType = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->messageContext.read(iprot);
+          isset_messageContext = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->publisherService);
+          isset_publisherService = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_dbEventType)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_messageContext)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_publisherService)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t DBEventMessage::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("DBEventMessage");
+
+  xfer += oprot->writeFieldBegin("dbEventType", ::apache::thrift::protocol::T_I32, 1);
+  xfer += oprot->writeI32((int32_t)this->dbEventType);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("messageContext", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->messageContext.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("publisherService", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->publisherService);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(DBEventMessage &a, DBEventMessage &b) {
+  using ::std::swap;
+  swap(a.dbEventType, b.dbEventType);
+  swap(a.messageContext, b.messageContext);
+  swap(a.publisherService, b.publisherService);
+}
+
+DBEventMessage::DBEventMessage(const DBEventMessage& other11) {
+  dbEventType = other11.dbEventType;
+  messageContext = other11.messageContext;
+  publisherService = other11.publisherService;
+}
+DBEventMessage& DBEventMessage::operator=(const DBEventMessage& other12) {
+  dbEventType = other12.dbEventType;
+  messageContext = other12.messageContext;
+  publisherService = other12.publisherService;
+  return *this;
+}
+void DBEventMessage::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "DBEventMessage(";
+  out << "dbEventType=" << to_string(dbEventType);
+  out << ", " << "messageContext=" << to_string(messageContext);
+  out << ", " << "publisherService=" << to_string(publisherService);
+  out << ")";
+}
+
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_types.h
new file mode 100644
index 0000000..43d9508
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/db_event_model_types.h
@@ -0,0 +1,318 @@
+/**
+ * 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 db_event_model_TYPES_H
+#define db_event_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>
+
+
+
+
+struct CrudType {
+  enum type {
+    CREATE = 0,
+    READ = 1,
+    UPDATE = 2,
+    DELETE = 3
+  };
+};
+
+extern const std::map<int, const char*> _CrudType_VALUES_TO_NAMES;
+
+struct EntityType {
+  enum type {
+    USER_PROFILE = 0,
+    TENANT = 1,
+    GROUP = 2,
+    PROJECT = 3,
+    EXPERIMENT = 4,
+    APPLICATION = 5,
+    SHARING = 6,
+    REGISTRY = 7
+  };
+};
+
+extern const std::map<int, const char*> _EntityType_VALUES_TO_NAMES;
+
+struct DBEventType {
+  enum type {
+    PUBLISHER = 0,
+    SUBSCRIBER = 1
+  };
+};
+
+extern const std::map<int, const char*> _DBEventType_VALUES_TO_NAMES;
+
+class DBEventPublisherContext;
+
+class DBEventPublisher;
+
+class DBEventSubscriber;
+
+class DBEventMessageContext;
+
+class DBEventMessage;
+
+
+class DBEventPublisherContext {
+ public:
+
+  DBEventPublisherContext(const DBEventPublisherContext&);
+  DBEventPublisherContext& operator=(const DBEventPublisherContext&);
+  DBEventPublisherContext() : crudType((CrudType::type)0), entityType((EntityType::type)0), entityDataModel() {
+  }
+
+  virtual ~DBEventPublisherContext() throw();
+  CrudType::type crudType;
+  EntityType::type entityType;
+  std::string entityDataModel;
+
+  void __set_crudType(const CrudType::type val);
+
+  void __set_entityType(const EntityType::type val);
+
+  void __set_entityDataModel(const std::string& val);
+
+  bool operator == (const DBEventPublisherContext & rhs) const
+  {
+    if (!(crudType == rhs.crudType))
+      return false;
+    if (!(entityType == rhs.entityType))
+      return false;
+    if (!(entityDataModel == rhs.entityDataModel))
+      return false;
+    return true;
+  }
+  bool operator != (const DBEventPublisherContext &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const DBEventPublisherContext & ) 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(DBEventPublisherContext &a, DBEventPublisherContext &b);
+
+inline std::ostream& operator<<(std::ostream& out, const DBEventPublisherContext& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
+
+class DBEventPublisher {
+ public:
+
+  DBEventPublisher(const DBEventPublisher&);
+  DBEventPublisher& operator=(const DBEventPublisher&);
+  DBEventPublisher() {
+  }
+
+  virtual ~DBEventPublisher() throw();
+  DBEventPublisherContext publisherContext;
+
+  void __set_publisherContext(const DBEventPublisherContext& val);
+
+  bool operator == (const DBEventPublisher & rhs) const
+  {
+    if (!(publisherContext == rhs.publisherContext))
+      return false;
+    return true;
+  }
+  bool operator != (const DBEventPublisher &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const DBEventPublisher & ) 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(DBEventPublisher &a, DBEventPublisher &b);
+
+inline std::ostream& operator<<(std::ostream& out, const DBEventPublisher& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
+
+class DBEventSubscriber {
+ public:
+
+  DBEventSubscriber(const DBEventSubscriber&);
+  DBEventSubscriber& operator=(const DBEventSubscriber&);
+  DBEventSubscriber() : subscriberService() {
+  }
+
+  virtual ~DBEventSubscriber() throw();
+  std::string subscriberService;
+
+  void __set_subscriberService(const std::string& val);
+
+  bool operator == (const DBEventSubscriber & rhs) const
+  {
+    if (!(subscriberService == rhs.subscriberService))
+      return false;
+    return true;
+  }
+  bool operator != (const DBEventSubscriber &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const DBEventSubscriber & ) 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(DBEventSubscriber &a, DBEventSubscriber &b);
+
+inline std::ostream& operator<<(std::ostream& out, const DBEventSubscriber& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
+typedef struct _DBEventMessageContext__isset {
+  _DBEventMessageContext__isset() : publisher(false), subscriber(false) {}
+  bool publisher :1;
+  bool subscriber :1;
+} _DBEventMessageContext__isset;
+
+class DBEventMessageContext {
+ public:
+
+  DBEventMessageContext(const DBEventMessageContext&);
+  DBEventMessageContext& operator=(const DBEventMessageContext&);
+  DBEventMessageContext() {
+  }
+
+  virtual ~DBEventMessageContext() throw();
+  DBEventPublisher publisher;
+  DBEventSubscriber subscriber;
+
+  _DBEventMessageContext__isset __isset;
+
+  void __set_publisher(const DBEventPublisher& val);
+
+  void __set_subscriber(const DBEventSubscriber& val);
+
+  bool operator == (const DBEventMessageContext & rhs) const
+  {
+    if (!(publisher == rhs.publisher))
+      return false;
+    if (!(subscriber == rhs.subscriber))
+      return false;
+    return true;
+  }
+  bool operator != (const DBEventMessageContext &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const DBEventMessageContext & ) 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(DBEventMessageContext &a, DBEventMessageContext &b);
+
+inline std::ostream& operator<<(std::ostream& out, const DBEventMessageContext& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
+
+class DBEventMessage {
+ public:
+
+  DBEventMessage(const DBEventMessage&);
+  DBEventMessage& operator=(const DBEventMessage&);
+  DBEventMessage() : dbEventType((DBEventType::type)0), publisherService() {
+  }
+
+  virtual ~DBEventMessage() throw();
+  DBEventType::type dbEventType;
+  DBEventMessageContext messageContext;
+  std::string publisherService;
+
+  void __set_dbEventType(const DBEventType::type val);
+
+  void __set_messageContext(const DBEventMessageContext& val);
+
+  void __set_publisherService(const std::string& val);
+
+  bool operator == (const DBEventMessage & rhs) const
+  {
+    if (!(dbEventType == rhs.dbEventType))
+      return false;
+    if (!(messageContext == rhs.messageContext))
+      return false;
+    if (!(publisherService == rhs.publisherService))
+      return false;
+    return true;
+  }
+  bool operator != (const DBEventMessage &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const DBEventMessage & ) 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(DBEventMessage &a, DBEventMessage &b);
+
+inline std::ostream& operator<<(std::ostream& out, const DBEventMessage& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
+
+
+#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/messaging_events_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messaging_events_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messaging_events_types.cpp
index f7d5d87..9360c83 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messaging_events_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messaging_events_types.cpp
@@ -52,7 +52,8 @@ int _kMessageTypeValues[] = {
   MessageType::JOB,
   MessageType::LAUNCHPROCESS,
   MessageType::TERMINATEPROCESS,
-  MessageType::PROCESSOUTPUT
+  MessageType::PROCESSOUTPUT,
+  MessageType::DB_EVENT
 };
 const char* _kMessageTypeNames[] = {
   "EXPERIMENT",
@@ -62,9 +63,10 @@ const char* _kMessageTypeNames[] = {
   "JOB",
   "LAUNCHPROCESS",
   "TERMINATEPROCESS",
-  "PROCESSOUTPUT"
+  "PROCESSOUTPUT",
+  "DB_EVENT"
 };
-const std::map<int, const char*> _MessageType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(8, _kMessageTypeValues, _kMessageTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+const std::map<int, const char*> _MessageType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(9, _kMessageTypeValues, _kMessageTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
 
 ExperimentStatusChangeEvent::~ExperimentStatusChangeEvent() throw() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messaging_events_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messaging_events_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messaging_events_types.h
index 15caed1..5b2b27f 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messaging_events_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messaging_events_types.h
@@ -59,7 +59,8 @@ struct MessageType {
     JOB = 4,
     LAUNCHPROCESS = 5,
     TERMINATEPROCESS = 6,
-    PROCESSOUTPUT = 7
+    PROCESSOUTPUT = 7,
+    DB_EVENT = 8
   };
 };
 


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

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
index 937030b..47b1816 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
@@ -65,71 +65,71 @@ const char* _kDataProductTypeNames[] = {
 const std::map<int, const char*> _DataProductType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, _kDataProductTypeValues, _kDataProductTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
 
-DataProductModel::~DataProductModel() throw() {
+DataReplicaLocationModel::~DataReplicaLocationModel() throw() {
 }
 
 
-void DataProductModel::__set_productUri(const std::string& val) {
-  this->productUri = val;
-__isset.productUri = true;
+void DataReplicaLocationModel::__set_replicaId(const std::string& val) {
+  this->replicaId = val;
+__isset.replicaId = true;
 }
 
-void DataProductModel::__set_gatewayId(const std::string& val) {
-  this->gatewayId = val;
-__isset.gatewayId = true;
+void DataReplicaLocationModel::__set_productUri(const std::string& val) {
+  this->productUri = val;
+__isset.productUri = true;
 }
 
-void DataProductModel::__set_parentProductUri(const std::string& val) {
-  this->parentProductUri = val;
-__isset.parentProductUri = true;
+void DataReplicaLocationModel::__set_replicaName(const std::string& val) {
+  this->replicaName = val;
+__isset.replicaName = true;
 }
 
-void DataProductModel::__set_productName(const std::string& val) {
-  this->productName = val;
-__isset.productName = true;
+void DataReplicaLocationModel::__set_replicaDescription(const std::string& val) {
+  this->replicaDescription = val;
+__isset.replicaDescription = true;
 }
 
-void DataProductModel::__set_productDescription(const std::string& val) {
-  this->productDescription = val;
-__isset.productDescription = true;
+void DataReplicaLocationModel::__set_creationTime(const int64_t val) {
+  this->creationTime = val;
+__isset.creationTime = true;
 }
 
-void DataProductModel::__set_ownerName(const std::string& val) {
-  this->ownerName = val;
-__isset.ownerName = true;
+void DataReplicaLocationModel::__set_lastModifiedTime(const int64_t val) {
+  this->lastModifiedTime = val;
+__isset.lastModifiedTime = true;
 }
 
-void DataProductModel::__set_dataProductType(const DataProductType::type val) {
-  this->dataProductType = val;
-__isset.dataProductType = true;
+void DataReplicaLocationModel::__set_validUntilTime(const int64_t val) {
+  this->validUntilTime = val;
+__isset.validUntilTime = true;
 }
 
-void DataProductModel::__set_productSize(const int32_t val) {
-  this->productSize = val;
-__isset.productSize = true;
+void DataReplicaLocationModel::__set_replicaLocationCategory(const ReplicaLocationCategory::type val) {
+  this->replicaLocationCategory = val;
+__isset.replicaLocationCategory = true;
 }
 
-void DataProductModel::__set_creationTime(const int64_t val) {
-  this->creationTime = val;
-__isset.creationTime = true;
+void DataReplicaLocationModel::__set_replicaPersistentType(const ReplicaPersistentType::type val) {
+  this->replicaPersistentType = val;
+__isset.replicaPersistentType = true;
 }
 
-void DataProductModel::__set_lastModifiedTime(const int64_t val) {
-  this->lastModifiedTime = val;
-__isset.lastModifiedTime = true;
+void DataReplicaLocationModel::__set_storageResourceId(const std::string& val) {
+  this->storageResourceId = val;
+__isset.storageResourceId = true;
 }
 
-void DataProductModel::__set_productMetadata(const std::map<std::string, std::string> & val) {
-  this->productMetadata = val;
-__isset.productMetadata = true;
+void DataReplicaLocationModel::__set_filePath(const std::string& val) {
+  this->filePath = val;
+__isset.filePath = true;
 }
 
-void DataProductModel::__set_replicaLocations(const std::vector<DataReplicaLocationModel> & val) {
-  this->replicaLocations = val;
-__isset.replicaLocations = true;
+void DataReplicaLocationModel::__set_replicaMetadata(const std::map<std::string, std::string> & val) {
+  this->replicaMetadata = val;
+__isset.replicaMetadata = true;
 }
 
-uint32_t DataProductModel::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t DataReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -152,125 +152,115 @@ uint32_t DataProductModel::read(::apache::thrift::protocol::TProtocol* iprot) {
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->productUri);
-          this->__isset.productUri = true;
+          xfer += iprot->readString(this->replicaId);
+          this->__isset.replicaId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayId);
-          this->__isset.gatewayId = true;
+          xfer += iprot->readString(this->productUri);
+          this->__isset.productUri = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->parentProductUri);
-          this->__isset.parentProductUri = true;
+          xfer += iprot->readString(this->replicaName);
+          this->__isset.replicaName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->productName);
-          this->__isset.productName = true;
+          xfer += iprot->readString(this->replicaDescription);
+          this->__isset.replicaDescription = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 5:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->productDescription);
-          this->__isset.productDescription = true;
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->creationTime);
+          this->__isset.creationTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 6:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->ownerName);
-          this->__isset.ownerName = true;
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->lastModifiedTime);
+          this->__isset.lastModifiedTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 7:
-        if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast0;
-          xfer += iprot->readI32(ecast0);
-          this->dataProductType = (DataProductType::type)ecast0;
-          this->__isset.dataProductType = true;
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->validUntilTime);
+          this->__isset.validUntilTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 8:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          xfer += iprot->readI32(this->productSize);
-          this->__isset.productSize = true;
+          int32_t ecast0;
+          xfer += iprot->readI32(ecast0);
+          this->replicaLocationCategory = (ReplicaLocationCategory::type)ecast0;
+          this->__isset.replicaLocationCategory = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 9:
-        if (ftype == ::apache::thrift::protocol::T_I64) {
-          xfer += iprot->readI64(this->creationTime);
-          this->__isset.creationTime = true;
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast1;
+          xfer += iprot->readI32(ecast1);
+          this->replicaPersistentType = (ReplicaPersistentType::type)ecast1;
+          this->__isset.replicaPersistentType = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 10:
-        if (ftype == ::apache::thrift::protocol::T_I64) {
-          xfer += iprot->readI64(this->lastModifiedTime);
-          this->__isset.lastModifiedTime = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->storageResourceId);
+          this->__isset.storageResourceId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 11:
-        if (ftype == ::apache::thrift::protocol::T_MAP) {
-          {
-            this->productMetadata.clear();
-            uint32_t _size1;
-            ::apache::thrift::protocol::TType _ktype2;
-            ::apache::thrift::protocol::TType _vtype3;
-            xfer += iprot->readMapBegin(_ktype2, _vtype3, _size1);
-            uint32_t _i5;
-            for (_i5 = 0; _i5 < _size1; ++_i5)
-            {
-              std::string _key6;
-              xfer += iprot->readString(_key6);
-              std::string& _val7 = this->productMetadata[_key6];
-              xfer += iprot->readString(_val7);
-            }
-            xfer += iprot->readMapEnd();
-          }
-          this->__isset.productMetadata = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->filePath);
+          this->__isset.filePath = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 12:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
-            this->replicaLocations.clear();
-            uint32_t _size8;
-            ::apache::thrift::protocol::TType _etype11;
-            xfer += iprot->readListBegin(_etype11, _size8);
-            this->replicaLocations.resize(_size8);
-            uint32_t _i12;
-            for (_i12 = 0; _i12 < _size8; ++_i12)
+            this->replicaMetadata.clear();
+            uint32_t _size2;
+            ::apache::thrift::protocol::TType _ktype3;
+            ::apache::thrift::protocol::TType _vtype4;
+            xfer += iprot->readMapBegin(_ktype3, _vtype4, _size2);
+            uint32_t _i6;
+            for (_i6 = 0; _i6 < _size2; ++_i6)
             {
-              xfer += this->replicaLocations[_i12].read(iprot);
+              std::string _key7;
+              xfer += iprot->readString(_key7);
+              std::string& _val8 = this->replicaMetadata[_key7];
+              xfer += iprot->readString(_val8);
             }
-            xfer += iprot->readListEnd();
+            xfer += iprot->readMapEnd();
           }
-          this->__isset.replicaLocations = true;
+          this->__isset.replicaMetadata = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -287,225 +277,217 @@ uint32_t DataProductModel::read(::apache::thrift::protocol::TProtocol* iprot) {
   return xfer;
 }
 
-uint32_t DataProductModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t DataReplicaLocationModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("DataProductModel");
+  xfer += oprot->writeStructBegin("DataReplicaLocationModel");
 
+  if (this->__isset.replicaId) {
+    xfer += oprot->writeFieldBegin("replicaId", ::apache::thrift::protocol::T_STRING, 1);
+    xfer += oprot->writeString(this->replicaId);
+    xfer += oprot->writeFieldEnd();
+  }
   if (this->__isset.productUri) {
-    xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 1);
+    xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
     xfer += oprot->writeString(this->productUri);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.gatewayId) {
-    xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
-    xfer += oprot->writeString(this->gatewayId);
+  if (this->__isset.replicaName) {
+    xfer += oprot->writeFieldBegin("replicaName", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->replicaName);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.parentProductUri) {
-    xfer += oprot->writeFieldBegin("parentProductUri", ::apache::thrift::protocol::T_STRING, 3);
-    xfer += oprot->writeString(this->parentProductUri);
+  if (this->__isset.replicaDescription) {
+    xfer += oprot->writeFieldBegin("replicaDescription", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->replicaDescription);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.productName) {
-    xfer += oprot->writeFieldBegin("productName", ::apache::thrift::protocol::T_STRING, 4);
-    xfer += oprot->writeString(this->productName);
+  if (this->__isset.creationTime) {
+    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 5);
+    xfer += oprot->writeI64(this->creationTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.productDescription) {
-    xfer += oprot->writeFieldBegin("productDescription", ::apache::thrift::protocol::T_STRING, 5);
-    xfer += oprot->writeString(this->productDescription);
+  if (this->__isset.lastModifiedTime) {
+    xfer += oprot->writeFieldBegin("lastModifiedTime", ::apache::thrift::protocol::T_I64, 6);
+    xfer += oprot->writeI64(this->lastModifiedTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.ownerName) {
-    xfer += oprot->writeFieldBegin("ownerName", ::apache::thrift::protocol::T_STRING, 6);
-    xfer += oprot->writeString(this->ownerName);
+  if (this->__isset.validUntilTime) {
+    xfer += oprot->writeFieldBegin("validUntilTime", ::apache::thrift::protocol::T_I64, 7);
+    xfer += oprot->writeI64(this->validUntilTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.dataProductType) {
-    xfer += oprot->writeFieldBegin("dataProductType", ::apache::thrift::protocol::T_I32, 7);
-    xfer += oprot->writeI32((int32_t)this->dataProductType);
+  if (this->__isset.replicaLocationCategory) {
+    xfer += oprot->writeFieldBegin("replicaLocationCategory", ::apache::thrift::protocol::T_I32, 8);
+    xfer += oprot->writeI32((int32_t)this->replicaLocationCategory);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.productSize) {
-    xfer += oprot->writeFieldBegin("productSize", ::apache::thrift::protocol::T_I32, 8);
-    xfer += oprot->writeI32(this->productSize);
+  if (this->__isset.replicaPersistentType) {
+    xfer += oprot->writeFieldBegin("replicaPersistentType", ::apache::thrift::protocol::T_I32, 9);
+    xfer += oprot->writeI32((int32_t)this->replicaPersistentType);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.creationTime) {
-    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 9);
-    xfer += oprot->writeI64(this->creationTime);
+  if (this->__isset.storageResourceId) {
+    xfer += oprot->writeFieldBegin("storageResourceId", ::apache::thrift::protocol::T_STRING, 10);
+    xfer += oprot->writeString(this->storageResourceId);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.lastModifiedTime) {
-    xfer += oprot->writeFieldBegin("lastModifiedTime", ::apache::thrift::protocol::T_I64, 10);
-    xfer += oprot->writeI64(this->lastModifiedTime);
+  if (this->__isset.filePath) {
+    xfer += oprot->writeFieldBegin("filePath", ::apache::thrift::protocol::T_STRING, 11);
+    xfer += oprot->writeString(this->filePath);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.productMetadata) {
-    xfer += oprot->writeFieldBegin("productMetadata", ::apache::thrift::protocol::T_MAP, 11);
+  if (this->__isset.replicaMetadata) {
+    xfer += oprot->writeFieldBegin("replicaMetadata", ::apache::thrift::protocol::T_MAP, 12);
     {
-      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->productMetadata.size()));
-      std::map<std::string, std::string> ::const_iterator _iter13;
-      for (_iter13 = this->productMetadata.begin(); _iter13 != this->productMetadata.end(); ++_iter13)
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->replicaMetadata.size()));
+      std::map<std::string, std::string> ::const_iterator _iter9;
+      for (_iter9 = this->replicaMetadata.begin(); _iter9 != this->replicaMetadata.end(); ++_iter9)
       {
-        xfer += oprot->writeString(_iter13->first);
-        xfer += oprot->writeString(_iter13->second);
+        xfer += oprot->writeString(_iter9->first);
+        xfer += oprot->writeString(_iter9->second);
       }
       xfer += oprot->writeMapEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaLocations) {
-    xfer += oprot->writeFieldBegin("replicaLocations", ::apache::thrift::protocol::T_LIST, 12);
-    {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->replicaLocations.size()));
-      std::vector<DataReplicaLocationModel> ::const_iterator _iter14;
-      for (_iter14 = this->replicaLocations.begin(); _iter14 != this->replicaLocations.end(); ++_iter14)
-      {
-        xfer += (*_iter14).write(oprot);
-      }
-      xfer += oprot->writeListEnd();
-    }
-    xfer += oprot->writeFieldEnd();
-  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
-void swap(DataProductModel &a, DataProductModel &b) {
+void swap(DataReplicaLocationModel &a, DataReplicaLocationModel &b) {
   using ::std::swap;
+  swap(a.replicaId, b.replicaId);
   swap(a.productUri, b.productUri);
-  swap(a.gatewayId, b.gatewayId);
-  swap(a.parentProductUri, b.parentProductUri);
-  swap(a.productName, b.productName);
-  swap(a.productDescription, b.productDescription);
-  swap(a.ownerName, b.ownerName);
-  swap(a.dataProductType, b.dataProductType);
-  swap(a.productSize, b.productSize);
+  swap(a.replicaName, b.replicaName);
+  swap(a.replicaDescription, b.replicaDescription);
   swap(a.creationTime, b.creationTime);
   swap(a.lastModifiedTime, b.lastModifiedTime);
-  swap(a.productMetadata, b.productMetadata);
-  swap(a.replicaLocations, b.replicaLocations);
+  swap(a.validUntilTime, b.validUntilTime);
+  swap(a.replicaLocationCategory, b.replicaLocationCategory);
+  swap(a.replicaPersistentType, b.replicaPersistentType);
+  swap(a.storageResourceId, b.storageResourceId);
+  swap(a.filePath, b.filePath);
+  swap(a.replicaMetadata, b.replicaMetadata);
   swap(a.__isset, b.__isset);
 }
 
-DataProductModel::DataProductModel(const DataProductModel& other15) {
-  productUri = other15.productUri;
-  gatewayId = other15.gatewayId;
-  parentProductUri = other15.parentProductUri;
-  productName = other15.productName;
-  productDescription = other15.productDescription;
-  ownerName = other15.ownerName;
-  dataProductType = other15.dataProductType;
-  productSize = other15.productSize;
-  creationTime = other15.creationTime;
-  lastModifiedTime = other15.lastModifiedTime;
-  productMetadata = other15.productMetadata;
-  replicaLocations = other15.replicaLocations;
-  __isset = other15.__isset;
-}
-DataProductModel& DataProductModel::operator=(const DataProductModel& other16) {
-  productUri = other16.productUri;
-  gatewayId = other16.gatewayId;
-  parentProductUri = other16.parentProductUri;
-  productName = other16.productName;
-  productDescription = other16.productDescription;
-  ownerName = other16.ownerName;
-  dataProductType = other16.dataProductType;
-  productSize = other16.productSize;
-  creationTime = other16.creationTime;
-  lastModifiedTime = other16.lastModifiedTime;
-  productMetadata = other16.productMetadata;
-  replicaLocations = other16.replicaLocations;
-  __isset = other16.__isset;
+DataReplicaLocationModel::DataReplicaLocationModel(const DataReplicaLocationModel& other10) {
+  replicaId = other10.replicaId;
+  productUri = other10.productUri;
+  replicaName = other10.replicaName;
+  replicaDescription = other10.replicaDescription;
+  creationTime = other10.creationTime;
+  lastModifiedTime = other10.lastModifiedTime;
+  validUntilTime = other10.validUntilTime;
+  replicaLocationCategory = other10.replicaLocationCategory;
+  replicaPersistentType = other10.replicaPersistentType;
+  storageResourceId = other10.storageResourceId;
+  filePath = other10.filePath;
+  replicaMetadata = other10.replicaMetadata;
+  __isset = other10.__isset;
+}
+DataReplicaLocationModel& DataReplicaLocationModel::operator=(const DataReplicaLocationModel& other11) {
+  replicaId = other11.replicaId;
+  productUri = other11.productUri;
+  replicaName = other11.replicaName;
+  replicaDescription = other11.replicaDescription;
+  creationTime = other11.creationTime;
+  lastModifiedTime = other11.lastModifiedTime;
+  validUntilTime = other11.validUntilTime;
+  replicaLocationCategory = other11.replicaLocationCategory;
+  replicaPersistentType = other11.replicaPersistentType;
+  storageResourceId = other11.storageResourceId;
+  filePath = other11.filePath;
+  replicaMetadata = other11.replicaMetadata;
+  __isset = other11.__isset;
   return *this;
 }
-void DataProductModel::printTo(std::ostream& out) const {
+void DataReplicaLocationModel::printTo(std::ostream& out) const {
   using ::apache::thrift::to_string;
-  out << "DataProductModel(";
-  out << "productUri="; (__isset.productUri ? (out << to_string(productUri)) : (out << "<null>"));
-  out << ", " << "gatewayId="; (__isset.gatewayId ? (out << to_string(gatewayId)) : (out << "<null>"));
-  out << ", " << "parentProductUri="; (__isset.parentProductUri ? (out << to_string(parentProductUri)) : (out << "<null>"));
-  out << ", " << "productName="; (__isset.productName ? (out << to_string(productName)) : (out << "<null>"));
-  out << ", " << "productDescription="; (__isset.productDescription ? (out << to_string(productDescription)) : (out << "<null>"));
-  out << ", " << "ownerName="; (__isset.ownerName ? (out << to_string(ownerName)) : (out << "<null>"));
-  out << ", " << "dataProductType="; (__isset.dataProductType ? (out << to_string(dataProductType)) : (out << "<null>"));
-  out << ", " << "productSize="; (__isset.productSize ? (out << to_string(productSize)) : (out << "<null>"));
+  out << "DataReplicaLocationModel(";
+  out << "replicaId="; (__isset.replicaId ? (out << to_string(replicaId)) : (out << "<null>"));
+  out << ", " << "productUri="; (__isset.productUri ? (out << to_string(productUri)) : (out << "<null>"));
+  out << ", " << "replicaName="; (__isset.replicaName ? (out << to_string(replicaName)) : (out << "<null>"));
+  out << ", " << "replicaDescription="; (__isset.replicaDescription ? (out << to_string(replicaDescription)) : (out << "<null>"));
   out << ", " << "creationTime="; (__isset.creationTime ? (out << to_string(creationTime)) : (out << "<null>"));
   out << ", " << "lastModifiedTime="; (__isset.lastModifiedTime ? (out << to_string(lastModifiedTime)) : (out << "<null>"));
-  out << ", " << "productMetadata="; (__isset.productMetadata ? (out << to_string(productMetadata)) : (out << "<null>"));
-  out << ", " << "replicaLocations="; (__isset.replicaLocations ? (out << to_string(replicaLocations)) : (out << "<null>"));
+  out << ", " << "validUntilTime="; (__isset.validUntilTime ? (out << to_string(validUntilTime)) : (out << "<null>"));
+  out << ", " << "replicaLocationCategory="; (__isset.replicaLocationCategory ? (out << to_string(replicaLocationCategory)) : (out << "<null>"));
+  out << ", " << "replicaPersistentType="; (__isset.replicaPersistentType ? (out << to_string(replicaPersistentType)) : (out << "<null>"));
+  out << ", " << "storageResourceId="; (__isset.storageResourceId ? (out << to_string(storageResourceId)) : (out << "<null>"));
+  out << ", " << "filePath="; (__isset.filePath ? (out << to_string(filePath)) : (out << "<null>"));
+  out << ", " << "replicaMetadata="; (__isset.replicaMetadata ? (out << to_string(replicaMetadata)) : (out << "<null>"));
   out << ")";
 }
 
 
-DataReplicaLocationModel::~DataReplicaLocationModel() throw() {
+DataProductModel::~DataProductModel() throw() {
 }
 
 
-void DataReplicaLocationModel::__set_replicaId(const std::string& val) {
-  this->replicaId = val;
-__isset.replicaId = true;
-}
-
-void DataReplicaLocationModel::__set_productUri(const std::string& val) {
+void DataProductModel::__set_productUri(const std::string& val) {
   this->productUri = val;
 __isset.productUri = true;
 }
 
-void DataReplicaLocationModel::__set_replicaName(const std::string& val) {
-  this->replicaName = val;
-__isset.replicaName = true;
+void DataProductModel::__set_gatewayId(const std::string& val) {
+  this->gatewayId = val;
+__isset.gatewayId = true;
+}
+
+void DataProductModel::__set_parentProductUri(const std::string& val) {
+  this->parentProductUri = val;
+__isset.parentProductUri = true;
 }
 
-void DataReplicaLocationModel::__set_replicaDescription(const std::string& val) {
-  this->replicaDescription = val;
-__isset.replicaDescription = true;
+void DataProductModel::__set_productName(const std::string& val) {
+  this->productName = val;
+__isset.productName = true;
 }
 
-void DataReplicaLocationModel::__set_creationTime(const int64_t val) {
-  this->creationTime = val;
-__isset.creationTime = true;
+void DataProductModel::__set_productDescription(const std::string& val) {
+  this->productDescription = val;
+__isset.productDescription = true;
 }
 
-void DataReplicaLocationModel::__set_lastModifiedTime(const int64_t val) {
-  this->lastModifiedTime = val;
-__isset.lastModifiedTime = true;
+void DataProductModel::__set_ownerName(const std::string& val) {
+  this->ownerName = val;
+__isset.ownerName = true;
 }
 
-void DataReplicaLocationModel::__set_validUntilTime(const int64_t val) {
-  this->validUntilTime = val;
-__isset.validUntilTime = true;
+void DataProductModel::__set_dataProductType(const DataProductType::type val) {
+  this->dataProductType = val;
+__isset.dataProductType = true;
 }
 
-void DataReplicaLocationModel::__set_replicaLocationCategory(const ReplicaLocationCategory::type val) {
-  this->replicaLocationCategory = val;
-__isset.replicaLocationCategory = true;
+void DataProductModel::__set_productSize(const int32_t val) {
+  this->productSize = val;
+__isset.productSize = true;
 }
 
-void DataReplicaLocationModel::__set_replicaPersistentType(const ReplicaPersistentType::type val) {
-  this->replicaPersistentType = val;
-__isset.replicaPersistentType = true;
+void DataProductModel::__set_creationTime(const int64_t val) {
+  this->creationTime = val;
+__isset.creationTime = true;
 }
 
-void DataReplicaLocationModel::__set_storageResourceId(const std::string& val) {
-  this->storageResourceId = val;
-__isset.storageResourceId = true;
+void DataProductModel::__set_lastModifiedTime(const int64_t val) {
+  this->lastModifiedTime = val;
+__isset.lastModifiedTime = true;
 }
 
-void DataReplicaLocationModel::__set_filePath(const std::string& val) {
-  this->filePath = val;
-__isset.filePath = true;
+void DataProductModel::__set_productMetadata(const std::map<std::string, std::string> & val) {
+  this->productMetadata = val;
+__isset.productMetadata = true;
 }
 
-void DataReplicaLocationModel::__set_replicaMetadata(const std::map<std::string, std::string> & val) {
-  this->replicaMetadata = val;
-__isset.replicaMetadata = true;
+void DataProductModel::__set_replicaLocations(const std::vector<DataReplicaLocationModel> & val) {
+  this->replicaLocations = val;
+__isset.replicaLocations = true;
 }
 
-uint32_t DataReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t DataProductModel::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -528,115 +510,125 @@ uint32_t DataReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* i
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->replicaId);
-          this->__isset.replicaId = true;
+          xfer += iprot->readString(this->productUri);
+          this->__isset.productUri = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->productUri);
-          this->__isset.productUri = true;
+          xfer += iprot->readString(this->gatewayId);
+          this->__isset.gatewayId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->replicaName);
-          this->__isset.replicaName = true;
+          xfer += iprot->readString(this->parentProductUri);
+          this->__isset.parentProductUri = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->replicaDescription);
-          this->__isset.replicaDescription = true;
+          xfer += iprot->readString(this->productName);
+          this->__isset.productName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 5:
-        if (ftype == ::apache::thrift::protocol::T_I64) {
-          xfer += iprot->readI64(this->creationTime);
-          this->__isset.creationTime = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->productDescription);
+          this->__isset.productDescription = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 6:
-        if (ftype == ::apache::thrift::protocol::T_I64) {
-          xfer += iprot->readI64(this->lastModifiedTime);
-          this->__isset.lastModifiedTime = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->ownerName);
+          this->__isset.ownerName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 7:
-        if (ftype == ::apache::thrift::protocol::T_I64) {
-          xfer += iprot->readI64(this->validUntilTime);
-          this->__isset.validUntilTime = true;
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast12;
+          xfer += iprot->readI32(ecast12);
+          this->dataProductType = (DataProductType::type)ecast12;
+          this->__isset.dataProductType = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 8:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast17;
-          xfer += iprot->readI32(ecast17);
-          this->replicaLocationCategory = (ReplicaLocationCategory::type)ecast17;
-          this->__isset.replicaLocationCategory = true;
+          xfer += iprot->readI32(this->productSize);
+          this->__isset.productSize = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 9:
-        if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast18;
-          xfer += iprot->readI32(ecast18);
-          this->replicaPersistentType = (ReplicaPersistentType::type)ecast18;
-          this->__isset.replicaPersistentType = true;
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->creationTime);
+          this->__isset.creationTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 10:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->storageResourceId);
-          this->__isset.storageResourceId = true;
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->lastModifiedTime);
+          this->__isset.lastModifiedTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 11:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->filePath);
-          this->__isset.filePath = true;
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            this->productMetadata.clear();
+            uint32_t _size13;
+            ::apache::thrift::protocol::TType _ktype14;
+            ::apache::thrift::protocol::TType _vtype15;
+            xfer += iprot->readMapBegin(_ktype14, _vtype15, _size13);
+            uint32_t _i17;
+            for (_i17 = 0; _i17 < _size13; ++_i17)
+            {
+              std::string _key18;
+              xfer += iprot->readString(_key18);
+              std::string& _val19 = this->productMetadata[_key18];
+              xfer += iprot->readString(_val19);
+            }
+            xfer += iprot->readMapEnd();
+          }
+          this->__isset.productMetadata = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 12:
-        if (ftype == ::apache::thrift::protocol::T_MAP) {
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->replicaMetadata.clear();
-            uint32_t _size19;
-            ::apache::thrift::protocol::TType _ktype20;
-            ::apache::thrift::protocol::TType _vtype21;
-            xfer += iprot->readMapBegin(_ktype20, _vtype21, _size19);
-            uint32_t _i23;
-            for (_i23 = 0; _i23 < _size19; ++_i23)
+            this->replicaLocations.clear();
+            uint32_t _size20;
+            ::apache::thrift::protocol::TType _etype23;
+            xfer += iprot->readListBegin(_etype23, _size20);
+            this->replicaLocations.resize(_size20);
+            uint32_t _i24;
+            for (_i24 = 0; _i24 < _size20; ++_i24)
             {
-              std::string _key24;
-              xfer += iprot->readString(_key24);
-              std::string& _val25 = this->replicaMetadata[_key24];
-              xfer += iprot->readString(_val25);
+              xfer += this->replicaLocations[_i24].read(iprot);
             }
-            xfer += iprot->readMapEnd();
+            xfer += iprot->readListEnd();
           }
-          this->__isset.replicaMetadata = true;
+          this->__isset.replicaLocations = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -653,148 +645,156 @@ uint32_t DataReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* i
   return xfer;
 }
 
-uint32_t DataReplicaLocationModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t DataProductModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("DataReplicaLocationModel");
+  xfer += oprot->writeStructBegin("DataProductModel");
 
-  if (this->__isset.replicaId) {
-    xfer += oprot->writeFieldBegin("replicaId", ::apache::thrift::protocol::T_STRING, 1);
-    xfer += oprot->writeString(this->replicaId);
-    xfer += oprot->writeFieldEnd();
-  }
   if (this->__isset.productUri) {
-    xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 1);
     xfer += oprot->writeString(this->productUri);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaName) {
-    xfer += oprot->writeFieldBegin("replicaName", ::apache::thrift::protocol::T_STRING, 3);
-    xfer += oprot->writeString(this->replicaName);
+  if (this->__isset.gatewayId) {
+    xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->gatewayId);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaDescription) {
-    xfer += oprot->writeFieldBegin("replicaDescription", ::apache::thrift::protocol::T_STRING, 4);
-    xfer += oprot->writeString(this->replicaDescription);
+  if (this->__isset.parentProductUri) {
+    xfer += oprot->writeFieldBegin("parentProductUri", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->parentProductUri);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.creationTime) {
-    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 5);
-    xfer += oprot->writeI64(this->creationTime);
+  if (this->__isset.productName) {
+    xfer += oprot->writeFieldBegin("productName", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->productName);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.lastModifiedTime) {
-    xfer += oprot->writeFieldBegin("lastModifiedTime", ::apache::thrift::protocol::T_I64, 6);
-    xfer += oprot->writeI64(this->lastModifiedTime);
+  if (this->__isset.productDescription) {
+    xfer += oprot->writeFieldBegin("productDescription", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->productDescription);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.validUntilTime) {
-    xfer += oprot->writeFieldBegin("validUntilTime", ::apache::thrift::protocol::T_I64, 7);
-    xfer += oprot->writeI64(this->validUntilTime);
+  if (this->__isset.ownerName) {
+    xfer += oprot->writeFieldBegin("ownerName", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeString(this->ownerName);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaLocationCategory) {
-    xfer += oprot->writeFieldBegin("replicaLocationCategory", ::apache::thrift::protocol::T_I32, 8);
-    xfer += oprot->writeI32((int32_t)this->replicaLocationCategory);
+  if (this->__isset.dataProductType) {
+    xfer += oprot->writeFieldBegin("dataProductType", ::apache::thrift::protocol::T_I32, 7);
+    xfer += oprot->writeI32((int32_t)this->dataProductType);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaPersistentType) {
-    xfer += oprot->writeFieldBegin("replicaPersistentType", ::apache::thrift::protocol::T_I32, 9);
-    xfer += oprot->writeI32((int32_t)this->replicaPersistentType);
+  if (this->__isset.productSize) {
+    xfer += oprot->writeFieldBegin("productSize", ::apache::thrift::protocol::T_I32, 8);
+    xfer += oprot->writeI32(this->productSize);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.storageResourceId) {
-    xfer += oprot->writeFieldBegin("storageResourceId", ::apache::thrift::protocol::T_STRING, 10);
-    xfer += oprot->writeString(this->storageResourceId);
+  if (this->__isset.creationTime) {
+    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 9);
+    xfer += oprot->writeI64(this->creationTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.filePath) {
-    xfer += oprot->writeFieldBegin("filePath", ::apache::thrift::protocol::T_STRING, 11);
-    xfer += oprot->writeString(this->filePath);
+  if (this->__isset.lastModifiedTime) {
+    xfer += oprot->writeFieldBegin("lastModifiedTime", ::apache::thrift::protocol::T_I64, 10);
+    xfer += oprot->writeI64(this->lastModifiedTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaMetadata) {
-    xfer += oprot->writeFieldBegin("replicaMetadata", ::apache::thrift::protocol::T_MAP, 12);
+  if (this->__isset.productMetadata) {
+    xfer += oprot->writeFieldBegin("productMetadata", ::apache::thrift::protocol::T_MAP, 11);
     {
-      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->replicaMetadata.size()));
-      std::map<std::string, std::string> ::const_iterator _iter26;
-      for (_iter26 = this->replicaMetadata.begin(); _iter26 != this->replicaMetadata.end(); ++_iter26)
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->productMetadata.size()));
+      std::map<std::string, std::string> ::const_iterator _iter25;
+      for (_iter25 = this->productMetadata.begin(); _iter25 != this->productMetadata.end(); ++_iter25)
       {
-        xfer += oprot->writeString(_iter26->first);
-        xfer += oprot->writeString(_iter26->second);
+        xfer += oprot->writeString(_iter25->first);
+        xfer += oprot->writeString(_iter25->second);
       }
       xfer += oprot->writeMapEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.replicaLocations) {
+    xfer += oprot->writeFieldBegin("replicaLocations", ::apache::thrift::protocol::T_LIST, 12);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->replicaLocations.size()));
+      std::vector<DataReplicaLocationModel> ::const_iterator _iter26;
+      for (_iter26 = this->replicaLocations.begin(); _iter26 != this->replicaLocations.end(); ++_iter26)
+      {
+        xfer += (*_iter26).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
-void swap(DataReplicaLocationModel &a, DataReplicaLocationModel &b) {
+void swap(DataProductModel &a, DataProductModel &b) {
   using ::std::swap;
-  swap(a.replicaId, b.replicaId);
   swap(a.productUri, b.productUri);
-  swap(a.replicaName, b.replicaName);
-  swap(a.replicaDescription, b.replicaDescription);
+  swap(a.gatewayId, b.gatewayId);
+  swap(a.parentProductUri, b.parentProductUri);
+  swap(a.productName, b.productName);
+  swap(a.productDescription, b.productDescription);
+  swap(a.ownerName, b.ownerName);
+  swap(a.dataProductType, b.dataProductType);
+  swap(a.productSize, b.productSize);
   swap(a.creationTime, b.creationTime);
   swap(a.lastModifiedTime, b.lastModifiedTime);
-  swap(a.validUntilTime, b.validUntilTime);
-  swap(a.replicaLocationCategory, b.replicaLocationCategory);
-  swap(a.replicaPersistentType, b.replicaPersistentType);
-  swap(a.storageResourceId, b.storageResourceId);
-  swap(a.filePath, b.filePath);
-  swap(a.replicaMetadata, b.replicaMetadata);
+  swap(a.productMetadata, b.productMetadata);
+  swap(a.replicaLocations, b.replicaLocations);
   swap(a.__isset, b.__isset);
 }
 
-DataReplicaLocationModel::DataReplicaLocationModel(const DataReplicaLocationModel& other27) {
-  replicaId = other27.replicaId;
+DataProductModel::DataProductModel(const DataProductModel& other27) {
   productUri = other27.productUri;
-  replicaName = other27.replicaName;
-  replicaDescription = other27.replicaDescription;
+  gatewayId = other27.gatewayId;
+  parentProductUri = other27.parentProductUri;
+  productName = other27.productName;
+  productDescription = other27.productDescription;
+  ownerName = other27.ownerName;
+  dataProductType = other27.dataProductType;
+  productSize = other27.productSize;
   creationTime = other27.creationTime;
   lastModifiedTime = other27.lastModifiedTime;
-  validUntilTime = other27.validUntilTime;
-  replicaLocationCategory = other27.replicaLocationCategory;
-  replicaPersistentType = other27.replicaPersistentType;
-  storageResourceId = other27.storageResourceId;
-  filePath = other27.filePath;
-  replicaMetadata = other27.replicaMetadata;
+  productMetadata = other27.productMetadata;
+  replicaLocations = other27.replicaLocations;
   __isset = other27.__isset;
 }
-DataReplicaLocationModel& DataReplicaLocationModel::operator=(const DataReplicaLocationModel& other28) {
-  replicaId = other28.replicaId;
+DataProductModel& DataProductModel::operator=(const DataProductModel& other28) {
   productUri = other28.productUri;
-  replicaName = other28.replicaName;
-  replicaDescription = other28.replicaDescription;
+  gatewayId = other28.gatewayId;
+  parentProductUri = other28.parentProductUri;
+  productName = other28.productName;
+  productDescription = other28.productDescription;
+  ownerName = other28.ownerName;
+  dataProductType = other28.dataProductType;
+  productSize = other28.productSize;
   creationTime = other28.creationTime;
   lastModifiedTime = other28.lastModifiedTime;
-  validUntilTime = other28.validUntilTime;
-  replicaLocationCategory = other28.replicaLocationCategory;
-  replicaPersistentType = other28.replicaPersistentType;
-  storageResourceId = other28.storageResourceId;
-  filePath = other28.filePath;
-  replicaMetadata = other28.replicaMetadata;
+  productMetadata = other28.productMetadata;
+  replicaLocations = other28.replicaLocations;
   __isset = other28.__isset;
   return *this;
 }
-void DataReplicaLocationModel::printTo(std::ostream& out) const {
+void DataProductModel::printTo(std::ostream& out) const {
   using ::apache::thrift::to_string;
-  out << "DataReplicaLocationModel(";
-  out << "replicaId="; (__isset.replicaId ? (out << to_string(replicaId)) : (out << "<null>"));
-  out << ", " << "productUri="; (__isset.productUri ? (out << to_string(productUri)) : (out << "<null>"));
-  out << ", " << "replicaName="; (__isset.replicaName ? (out << to_string(replicaName)) : (out << "<null>"));
-  out << ", " << "replicaDescription="; (__isset.replicaDescription ? (out << to_string(replicaDescription)) : (out << "<null>"));
+  out << "DataProductModel(";
+  out << "productUri="; (__isset.productUri ? (out << to_string(productUri)) : (out << "<null>"));
+  out << ", " << "gatewayId="; (__isset.gatewayId ? (out << to_string(gatewayId)) : (out << "<null>"));
+  out << ", " << "parentProductUri="; (__isset.parentProductUri ? (out << to_string(parentProductUri)) : (out << "<null>"));
+  out << ", " << "productName="; (__isset.productName ? (out << to_string(productName)) : (out << "<null>"));
+  out << ", " << "productDescription="; (__isset.productDescription ? (out << to_string(productDescription)) : (out << "<null>"));
+  out << ", " << "ownerName="; (__isset.ownerName ? (out << to_string(ownerName)) : (out << "<null>"));
+  out << ", " << "dataProductType="; (__isset.dataProductType ? (out << to_string(dataProductType)) : (out << "<null>"));
+  out << ", " << "productSize="; (__isset.productSize ? (out << to_string(productSize)) : (out << "<null>"));
   out << ", " << "creationTime="; (__isset.creationTime ? (out << to_string(creationTime)) : (out << "<null>"));
   out << ", " << "lastModifiedTime="; (__isset.lastModifiedTime ? (out << to_string(lastModifiedTime)) : (out << "<null>"));
-  out << ", " << "validUntilTime="; (__isset.validUntilTime ? (out << to_string(validUntilTime)) : (out << "<null>"));
-  out << ", " << "replicaLocationCategory="; (__isset.replicaLocationCategory ? (out << to_string(replicaLocationCategory)) : (out << "<null>"));
-  out << ", " << "replicaPersistentType="; (__isset.replicaPersistentType ? (out << to_string(replicaPersistentType)) : (out << "<null>"));
-  out << ", " << "storageResourceId="; (__isset.storageResourceId ? (out << to_string(storageResourceId)) : (out << "<null>"));
-  out << ", " << "filePath="; (__isset.filePath ? (out << to_string(filePath)) : (out << "<null>"));
-  out << ", " << "replicaMetadata="; (__isset.replicaMetadata ? (out << to_string(replicaMetadata)) : (out << "<null>"));
+  out << ", " << "productMetadata="; (__isset.productMetadata ? (out << to_string(productMetadata)) : (out << "<null>"));
+  out << ", " << "replicaLocations="; (__isset.replicaLocations ? (out << to_string(replicaLocations)) : (out << "<null>"));
   out << ")";
 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
index c30079f..08f853e 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
@@ -65,145 +65,9 @@ struct DataProductType {
 
 extern const std::map<int, const char*> _DataProductType_VALUES_TO_NAMES;
 
-class DataProductModel;
-
 class DataReplicaLocationModel;
 
-typedef struct _DataProductModel__isset {
-  _DataProductModel__isset() : productUri(false), gatewayId(false), parentProductUri(false), productName(false), productDescription(false), ownerName(false), dataProductType(false), productSize(false), creationTime(false), lastModifiedTime(false), productMetadata(false), replicaLocations(false) {}
-  bool productUri :1;
-  bool gatewayId :1;
-  bool parentProductUri :1;
-  bool productName :1;
-  bool productDescription :1;
-  bool ownerName :1;
-  bool dataProductType :1;
-  bool productSize :1;
-  bool creationTime :1;
-  bool lastModifiedTime :1;
-  bool productMetadata :1;
-  bool replicaLocations :1;
-} _DataProductModel__isset;
-
-class DataProductModel {
- public:
-
-  DataProductModel(const DataProductModel&);
-  DataProductModel& operator=(const DataProductModel&);
-  DataProductModel() : productUri(), gatewayId(), parentProductUri(), productName(), productDescription(), ownerName(), dataProductType((DataProductType::type)0), productSize(0), creationTime(0), lastModifiedTime(0) {
-  }
-
-  virtual ~DataProductModel() throw();
-  std::string productUri;
-  std::string gatewayId;
-  std::string parentProductUri;
-  std::string productName;
-  std::string productDescription;
-  std::string ownerName;
-  DataProductType::type dataProductType;
-  int32_t productSize;
-  int64_t creationTime;
-  int64_t lastModifiedTime;
-  std::map<std::string, std::string>  productMetadata;
-  std::vector<DataReplicaLocationModel>  replicaLocations;
-
-  _DataProductModel__isset __isset;
-
-  void __set_productUri(const std::string& val);
-
-  void __set_gatewayId(const std::string& val);
-
-  void __set_parentProductUri(const std::string& val);
-
-  void __set_productName(const std::string& val);
-
-  void __set_productDescription(const std::string& val);
-
-  void __set_ownerName(const std::string& val);
-
-  void __set_dataProductType(const DataProductType::type val);
-
-  void __set_productSize(const int32_t val);
-
-  void __set_creationTime(const int64_t val);
-
-  void __set_lastModifiedTime(const int64_t val);
-
-  void __set_productMetadata(const std::map<std::string, std::string> & val);
-
-  void __set_replicaLocations(const std::vector<DataReplicaLocationModel> & val);
-
-  bool operator == (const DataProductModel & rhs) const
-  {
-    if (__isset.productUri != rhs.__isset.productUri)
-      return false;
-    else if (__isset.productUri && !(productUri == rhs.productUri))
-      return false;
-    if (__isset.gatewayId != rhs.__isset.gatewayId)
-      return false;
-    else if (__isset.gatewayId && !(gatewayId == rhs.gatewayId))
-      return false;
-    if (__isset.parentProductUri != rhs.__isset.parentProductUri)
-      return false;
-    else if (__isset.parentProductUri && !(parentProductUri == rhs.parentProductUri))
-      return false;
-    if (__isset.productName != rhs.__isset.productName)
-      return false;
-    else if (__isset.productName && !(productName == rhs.productName))
-      return false;
-    if (__isset.productDescription != rhs.__isset.productDescription)
-      return false;
-    else if (__isset.productDescription && !(productDescription == rhs.productDescription))
-      return false;
-    if (__isset.ownerName != rhs.__isset.ownerName)
-      return false;
-    else if (__isset.ownerName && !(ownerName == rhs.ownerName))
-      return false;
-    if (__isset.dataProductType != rhs.__isset.dataProductType)
-      return false;
-    else if (__isset.dataProductType && !(dataProductType == rhs.dataProductType))
-      return false;
-    if (__isset.productSize != rhs.__isset.productSize)
-      return false;
-    else if (__isset.productSize && !(productSize == rhs.productSize))
-      return false;
-    if (__isset.creationTime != rhs.__isset.creationTime)
-      return false;
-    else if (__isset.creationTime && !(creationTime == rhs.creationTime))
-      return false;
-    if (__isset.lastModifiedTime != rhs.__isset.lastModifiedTime)
-      return false;
-    else if (__isset.lastModifiedTime && !(lastModifiedTime == rhs.lastModifiedTime))
-      return false;
-    if (__isset.productMetadata != rhs.__isset.productMetadata)
-      return false;
-    else if (__isset.productMetadata && !(productMetadata == rhs.productMetadata))
-      return false;
-    if (__isset.replicaLocations != rhs.__isset.replicaLocations)
-      return false;
-    else if (__isset.replicaLocations && !(replicaLocations == rhs.replicaLocations))
-      return false;
-    return true;
-  }
-  bool operator != (const DataProductModel &rhs) const {
-    return !(*this == rhs);
-  }
-
-  bool operator < (const DataProductModel & ) 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(DataProductModel &a, DataProductModel &b);
-
-inline std::ostream& operator<<(std::ostream& out, const DataProductModel& obj)
-{
-  obj.printTo(out);
-  return out;
-}
+class DataProductModel;
 
 typedef struct _DataReplicaLocationModel__isset {
   _DataReplicaLocationModel__isset() : replicaId(false), productUri(false), replicaName(false), replicaDescription(false), creationTime(false), lastModifiedTime(false), validUntilTime(false), replicaLocationCategory(false), replicaPersistentType(false), storageResourceId(false), filePath(false), replicaMetadata(false) {}
@@ -341,6 +205,142 @@ inline std::ostream& operator<<(std::ostream& out, const DataReplicaLocationMode
   return out;
 }
 
+typedef struct _DataProductModel__isset {
+  _DataProductModel__isset() : productUri(false), gatewayId(false), parentProductUri(false), productName(false), productDescription(false), ownerName(false), dataProductType(false), productSize(false), creationTime(false), lastModifiedTime(false), productMetadata(false), replicaLocations(false) {}
+  bool productUri :1;
+  bool gatewayId :1;
+  bool parentProductUri :1;
+  bool productName :1;
+  bool productDescription :1;
+  bool ownerName :1;
+  bool dataProductType :1;
+  bool productSize :1;
+  bool creationTime :1;
+  bool lastModifiedTime :1;
+  bool productMetadata :1;
+  bool replicaLocations :1;
+} _DataProductModel__isset;
+
+class DataProductModel {
+ public:
+
+  DataProductModel(const DataProductModel&);
+  DataProductModel& operator=(const DataProductModel&);
+  DataProductModel() : productUri(), gatewayId(), parentProductUri(), productName(), productDescription(), ownerName(), dataProductType((DataProductType::type)0), productSize(0), creationTime(0), lastModifiedTime(0) {
+  }
+
+  virtual ~DataProductModel() throw();
+  std::string productUri;
+  std::string gatewayId;
+  std::string parentProductUri;
+  std::string productName;
+  std::string productDescription;
+  std::string ownerName;
+  DataProductType::type dataProductType;
+  int32_t productSize;
+  int64_t creationTime;
+  int64_t lastModifiedTime;
+  std::map<std::string, std::string>  productMetadata;
+  std::vector<DataReplicaLocationModel>  replicaLocations;
+
+  _DataProductModel__isset __isset;
+
+  void __set_productUri(const std::string& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  void __set_parentProductUri(const std::string& val);
+
+  void __set_productName(const std::string& val);
+
+  void __set_productDescription(const std::string& val);
+
+  void __set_ownerName(const std::string& val);
+
+  void __set_dataProductType(const DataProductType::type val);
+
+  void __set_productSize(const int32_t val);
+
+  void __set_creationTime(const int64_t val);
+
+  void __set_lastModifiedTime(const int64_t val);
+
+  void __set_productMetadata(const std::map<std::string, std::string> & val);
+
+  void __set_replicaLocations(const std::vector<DataReplicaLocationModel> & val);
+
+  bool operator == (const DataProductModel & rhs) const
+  {
+    if (__isset.productUri != rhs.__isset.productUri)
+      return false;
+    else if (__isset.productUri && !(productUri == rhs.productUri))
+      return false;
+    if (__isset.gatewayId != rhs.__isset.gatewayId)
+      return false;
+    else if (__isset.gatewayId && !(gatewayId == rhs.gatewayId))
+      return false;
+    if (__isset.parentProductUri != rhs.__isset.parentProductUri)
+      return false;
+    else if (__isset.parentProductUri && !(parentProductUri == rhs.parentProductUri))
+      return false;
+    if (__isset.productName != rhs.__isset.productName)
+      return false;
+    else if (__isset.productName && !(productName == rhs.productName))
+      return false;
+    if (__isset.productDescription != rhs.__isset.productDescription)
+      return false;
+    else if (__isset.productDescription && !(productDescription == rhs.productDescription))
+      return false;
+    if (__isset.ownerName != rhs.__isset.ownerName)
+      return false;
+    else if (__isset.ownerName && !(ownerName == rhs.ownerName))
+      return false;
+    if (__isset.dataProductType != rhs.__isset.dataProductType)
+      return false;
+    else if (__isset.dataProductType && !(dataProductType == rhs.dataProductType))
+      return false;
+    if (__isset.productSize != rhs.__isset.productSize)
+      return false;
+    else if (__isset.productSize && !(productSize == rhs.productSize))
+      return false;
+    if (__isset.creationTime != rhs.__isset.creationTime)
+      return false;
+    else if (__isset.creationTime && !(creationTime == rhs.creationTime))
+      return false;
+    if (__isset.lastModifiedTime != rhs.__isset.lastModifiedTime)
+      return false;
+    else if (__isset.lastModifiedTime && !(lastModifiedTime == rhs.lastModifiedTime))
+      return false;
+    if (__isset.productMetadata != rhs.__isset.productMetadata)
+      return false;
+    else if (__isset.productMetadata && !(productMetadata == rhs.productMetadata))
+      return false;
+    if (__isset.replicaLocations != rhs.__isset.replicaLocations)
+      return false;
+    else if (__isset.replicaLocations && !(replicaLocations == rhs.replicaLocations))
+      return false;
+    return true;
+  }
+  bool operator != (const DataProductModel &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const DataProductModel & ) 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(DataProductModel &a, DataProductModel &b);
+
+inline std::ostream& operator<<(std::ostream& out, const DataProductModel& 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/tenant_profile_model_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.cpp
new file mode 100644
index 0000000..6bae159
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.cpp
@@ -0,0 +1,34 @@
+/**
+ * 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
+ */
+#include "tenant_profile_model_constants.h"
+
+namespace apache { namespace airavata { namespace model { namespace tenant {
+
+const tenant_profile_modelConstants g_tenant_profile_model_constants;
+
+tenant_profile_modelConstants::tenant_profile_modelConstants() {
+}
+
+}}}} // namespace
+

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_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.h
new file mode 100644
index 0000000..02a121e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.h
@@ -0,0 +1,41 @@
+/**
+ * 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_CONSTANTS_H
+#define tenant_profile_model_CONSTANTS_H
+
+#include "tenant_profile_model_types.h"
+
+namespace apache { namespace airavata { namespace model { namespace tenant {
+
+class tenant_profile_modelConstants {
+ public:
+  tenant_profile_modelConstants();
+
+};
+
+extern const tenant_profile_modelConstants g_tenant_profile_model_constants;
+
+}}}} // 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/tenant_profile_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.cpp
new file mode 100644
index 0000000..284f0d4
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.cpp
@@ -0,0 +1,541 @@
+/**
+ * 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
+ */
+#include "tenant_profile_model_types.h"
+
+#include <algorithm>
+#include <ostream>
+
+#include <thrift/TToString.h>
+
+namespace apache { namespace airavata { namespace model { namespace tenant {
+
+int _kTenantApprovalStatusValues[] = {
+  TenantApprovalStatus::REQUESTED,
+  TenantApprovalStatus::APPROVED,
+  TenantApprovalStatus::ACTIVE,
+  TenantApprovalStatus::DEACTIVATED,
+  TenantApprovalStatus::CANCELLED,
+  TenantApprovalStatus::DENIED,
+  TenantApprovalStatus::CREATED
+};
+const char* _kTenantApprovalStatusNames[] = {
+  "REQUESTED",
+  "APPROVED",
+  "ACTIVE",
+  "DEACTIVATED",
+  "CANCELLED",
+  "DENIED",
+  "CREATED"
+};
+const std::map<int, const char*> _TenantApprovalStatus_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(7, _kTenantApprovalStatusValues, _kTenantApprovalStatusNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+
+Tenant::~Tenant() throw() {
+}
+
+
+void Tenant::__set_tenantId(const std::string& val) {
+  this->tenantId = val;
+}
+
+void Tenant::__set_tenantApprovalStatus(const TenantApprovalStatus::type val) {
+  this->tenantApprovalStatus = val;
+}
+
+void Tenant::__set_tenantName(const std::string& val) {
+  this->tenantName = val;
+__isset.tenantName = true;
+}
+
+void Tenant::__set_domain(const std::string& val) {
+  this->domain = val;
+__isset.domain = true;
+}
+
+void Tenant::__set_emailAddress(const std::string& val) {
+  this->emailAddress = val;
+__isset.emailAddress = true;
+}
+
+void Tenant::__set_tenantAcronym(const std::string& val) {
+  this->tenantAcronym = val;
+__isset.tenantAcronym = true;
+}
+
+void Tenant::__set_tenantURL(const std::string& val) {
+  this->tenantURL = val;
+__isset.tenantURL = true;
+}
+
+void Tenant::__set_tenantPublicAbstract(const std::string& val) {
+  this->tenantPublicAbstract = val;
+__isset.tenantPublicAbstract = true;
+}
+
+void Tenant::__set_reviewProposalDescription(const std::string& val) {
+  this->reviewProposalDescription = val;
+__isset.reviewProposalDescription = true;
+}
+
+void Tenant::__set_tenantAdminFirstName(const std::string& val) {
+  this->tenantAdminFirstName = val;
+__isset.tenantAdminFirstName = true;
+}
+
+void Tenant::__set_tenantAdminLastName(const std::string& val) {
+  this->tenantAdminLastName = val;
+__isset.tenantAdminLastName = true;
+}
+
+void Tenant::__set_tenantAdminEmail(const std::string& val) {
+  this->tenantAdminEmail = val;
+__isset.tenantAdminEmail = true;
+}
+
+void Tenant::__set_identityServerUserName(const std::string& val) {
+  this->identityServerUserName = val;
+__isset.identityServerUserName = true;
+}
+
+void Tenant::__set_identityServerPasswordToken(const std::string& val) {
+  this->identityServerPasswordToken = val;
+__isset.identityServerPasswordToken = true;
+}
+
+void Tenant::__set_declinedReason(const std::string& val) {
+  this->declinedReason = val;
+__isset.declinedReason = true;
+}
+
+void Tenant::__set_oauthClientId(const std::string& val) {
+  this->oauthClientId = val;
+__isset.oauthClientId = true;
+}
+
+void Tenant::__set_oauthClientSecret(const std::string& val) {
+  this->oauthClientSecret = val;
+__isset.oauthClientSecret = true;
+}
+
+void Tenant::__set_requestCreationTime(const int64_t val) {
+  this->requestCreationTime = val;
+__isset.requestCreationTime = true;
+}
+
+void Tenant::__set_requesterUsername(const std::string& val) {
+  this->requesterUsername = val;
+__isset.requesterUsername = true;
+}
+
+uint32_t Tenant::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_tenantId = false;
+  bool isset_tenantApprovalStatus = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantId);
+          isset_tenantId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast0;
+          xfer += iprot->readI32(ecast0);
+          this->tenantApprovalStatus = (TenantApprovalStatus::type)ecast0;
+          isset_tenantApprovalStatus = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantName);
+          this->__isset.tenantName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->domain);
+          this->__isset.domain = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->emailAddress);
+          this->__isset.emailAddress = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantAcronym);
+          this->__isset.tenantAcronym = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantURL);
+          this->__isset.tenantURL = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantPublicAbstract);
+          this->__isset.tenantPublicAbstract = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 9:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->reviewProposalDescription);
+          this->__isset.reviewProposalDescription = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantAdminFirstName);
+          this->__isset.tenantAdminFirstName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 11:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantAdminLastName);
+          this->__isset.tenantAdminLastName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 12:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantAdminEmail);
+          this->__isset.tenantAdminEmail = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 13:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->identityServerUserName);
+          this->__isset.identityServerUserName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 14:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->identityServerPasswordToken);
+          this->__isset.identityServerPasswordToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 15:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->declinedReason);
+          this->__isset.declinedReason = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 16:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->oauthClientId);
+          this->__isset.oauthClientId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 17:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->oauthClientSecret);
+          this->__isset.oauthClientSecret = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 18:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->requestCreationTime);
+          this->__isset.requestCreationTime = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 19:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->requesterUsername);
+          this->__isset.requesterUsername = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_tenantId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_tenantApprovalStatus)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Tenant::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Tenant");
+
+  xfer += oprot->writeFieldBegin("tenantId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->tenantId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("tenantApprovalStatus", ::apache::thrift::protocol::T_I32, 2);
+  xfer += oprot->writeI32((int32_t)this->tenantApprovalStatus);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.tenantName) {
+    xfer += oprot->writeFieldBegin("tenantName", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->tenantName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.domain) {
+    xfer += oprot->writeFieldBegin("domain", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->domain);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.emailAddress) {
+    xfer += oprot->writeFieldBegin("emailAddress", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->emailAddress);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantAcronym) {
+    xfer += oprot->writeFieldBegin("tenantAcronym", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeString(this->tenantAcronym);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantURL) {
+    xfer += oprot->writeFieldBegin("tenantURL", ::apache::thrift::protocol::T_STRING, 7);
+    xfer += oprot->writeString(this->tenantURL);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantPublicAbstract) {
+    xfer += oprot->writeFieldBegin("tenantPublicAbstract", ::apache::thrift::protocol::T_STRING, 8);
+    xfer += oprot->writeString(this->tenantPublicAbstract);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.reviewProposalDescription) {
+    xfer += oprot->writeFieldBegin("reviewProposalDescription", ::apache::thrift::protocol::T_STRING, 9);
+    xfer += oprot->writeString(this->reviewProposalDescription);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantAdminFirstName) {
+    xfer += oprot->writeFieldBegin("tenantAdminFirstName", ::apache::thrift::protocol::T_STRING, 10);
+    xfer += oprot->writeString(this->tenantAdminFirstName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantAdminLastName) {
+    xfer += oprot->writeFieldBegin("tenantAdminLastName", ::apache::thrift::protocol::T_STRING, 11);
+    xfer += oprot->writeString(this->tenantAdminLastName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantAdminEmail) {
+    xfer += oprot->writeFieldBegin("tenantAdminEmail", ::apache::thrift::protocol::T_STRING, 12);
+    xfer += oprot->writeString(this->tenantAdminEmail);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.identityServerUserName) {
+    xfer += oprot->writeFieldBegin("identityServerUserName", ::apache::thrift::protocol::T_STRING, 13);
+    xfer += oprot->writeString(this->identityServerUserName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.identityServerPasswordToken) {
+    xfer += oprot->writeFieldBegin("identityServerPasswordToken", ::apache::thrift::protocol::T_STRING, 14);
+    xfer += oprot->writeString(this->identityServerPasswordToken);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.declinedReason) {
+    xfer += oprot->writeFieldBegin("declinedReason", ::apache::thrift::protocol::T_STRING, 15);
+    xfer += oprot->writeString(this->declinedReason);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.oauthClientId) {
+    xfer += oprot->writeFieldBegin("oauthClientId", ::apache::thrift::protocol::T_STRING, 16);
+    xfer += oprot->writeString(this->oauthClientId);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.oauthClientSecret) {
+    xfer += oprot->writeFieldBegin("oauthClientSecret", ::apache::thrift::protocol::T_STRING, 17);
+    xfer += oprot->writeString(this->oauthClientSecret);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.requestCreationTime) {
+    xfer += oprot->writeFieldBegin("requestCreationTime", ::apache::thrift::protocol::T_I64, 18);
+    xfer += oprot->writeI64(this->requestCreationTime);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.requesterUsername) {
+    xfer += oprot->writeFieldBegin("requesterUsername", ::apache::thrift::protocol::T_STRING, 19);
+    xfer += oprot->writeString(this->requesterUsername);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(Tenant &a, Tenant &b) {
+  using ::std::swap;
+  swap(a.tenantId, b.tenantId);
+  swap(a.tenantApprovalStatus, b.tenantApprovalStatus);
+  swap(a.tenantName, b.tenantName);
+  swap(a.domain, b.domain);
+  swap(a.emailAddress, b.emailAddress);
+  swap(a.tenantAcronym, b.tenantAcronym);
+  swap(a.tenantURL, b.tenantURL);
+  swap(a.tenantPublicAbstract, b.tenantPublicAbstract);
+  swap(a.reviewProposalDescription, b.reviewProposalDescription);
+  swap(a.tenantAdminFirstName, b.tenantAdminFirstName);
+  swap(a.tenantAdminLastName, b.tenantAdminLastName);
+  swap(a.tenantAdminEmail, b.tenantAdminEmail);
+  swap(a.identityServerUserName, b.identityServerUserName);
+  swap(a.identityServerPasswordToken, b.identityServerPasswordToken);
+  swap(a.declinedReason, b.declinedReason);
+  swap(a.oauthClientId, b.oauthClientId);
+  swap(a.oauthClientSecret, b.oauthClientSecret);
+  swap(a.requestCreationTime, b.requestCreationTime);
+  swap(a.requesterUsername, b.requesterUsername);
+  swap(a.__isset, b.__isset);
+}
+
+Tenant::Tenant(const Tenant& other1) {
+  tenantId = other1.tenantId;
+  tenantApprovalStatus = other1.tenantApprovalStatus;
+  tenantName = other1.tenantName;
+  domain = other1.domain;
+  emailAddress = other1.emailAddress;
+  tenantAcronym = other1.tenantAcronym;
+  tenantURL = other1.tenantURL;
+  tenantPublicAbstract = other1.tenantPublicAbstract;
+  reviewProposalDescription = other1.reviewProposalDescription;
+  tenantAdminFirstName = other1.tenantAdminFirstName;
+  tenantAdminLastName = other1.tenantAdminLastName;
+  tenantAdminEmail = other1.tenantAdminEmail;
+  identityServerUserName = other1.identityServerUserName;
+  identityServerPasswordToken = other1.identityServerPasswordToken;
+  declinedReason = other1.declinedReason;
+  oauthClientId = other1.oauthClientId;
+  oauthClientSecret = other1.oauthClientSecret;
+  requestCreationTime = other1.requestCreationTime;
+  requesterUsername = other1.requesterUsername;
+  __isset = other1.__isset;
+}
+Tenant& Tenant::operator=(const Tenant& other2) {
+  tenantId = other2.tenantId;
+  tenantApprovalStatus = other2.tenantApprovalStatus;
+  tenantName = other2.tenantName;
+  domain = other2.domain;
+  emailAddress = other2.emailAddress;
+  tenantAcronym = other2.tenantAcronym;
+  tenantURL = other2.tenantURL;
+  tenantPublicAbstract = other2.tenantPublicAbstract;
+  reviewProposalDescription = other2.reviewProposalDescription;
+  tenantAdminFirstName = other2.tenantAdminFirstName;
+  tenantAdminLastName = other2.tenantAdminLastName;
+  tenantAdminEmail = other2.tenantAdminEmail;
+  identityServerUserName = other2.identityServerUserName;
+  identityServerPasswordToken = other2.identityServerPasswordToken;
+  declinedReason = other2.declinedReason;
+  oauthClientId = other2.oauthClientId;
+  oauthClientSecret = other2.oauthClientSecret;
+  requestCreationTime = other2.requestCreationTime;
+  requesterUsername = other2.requesterUsername;
+  __isset = other2.__isset;
+  return *this;
+}
+void Tenant::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "Tenant(";
+  out << "tenantId=" << to_string(tenantId);
+  out << ", " << "tenantApprovalStatus=" << to_string(tenantApprovalStatus);
+  out << ", " << "tenantName="; (__isset.tenantName ? (out << to_string(tenantName)) : (out << "<null>"));
+  out << ", " << "domain="; (__isset.domain ? (out << to_string(domain)) : (out << "<null>"));
+  out << ", " << "emailAddress="; (__isset.emailAddress ? (out << to_string(emailAddress)) : (out << "<null>"));
+  out << ", " << "tenantAcronym="; (__isset.tenantAcronym ? (out << to_string(tenantAcronym)) : (out << "<null>"));
+  out << ", " << "tenantURL="; (__isset.tenantURL ? (out << to_string(tenantURL)) : (out << "<null>"));
+  out << ", " << "tenantPublicAbstract="; (__isset.tenantPublicAbstract ? (out << to_string(tenantPublicAbstract)) : (out << "<null>"));
+  out << ", " << "reviewProposalDescription="; (__isset.reviewProposalDescription ? (out << to_string(reviewProposalDescription)) : (out << "<null>"));
+  out << ", " << "tenantAdminFirstName="; (__isset.tenantAdminFirstName ? (out << to_string(tenantAdminFirstName)) : (out << "<null>"));
+  out << ", " << "tenantAdminLastName="; (__isset.tenantAdminLastName ? (out << to_string(tenantAdminLastName)) : (out << "<null>"));
+  out << ", " << "tenantAdminEmail="; (__isset.tenantAdminEmail ? (out << to_string(tenantAdminEmail)) : (out << "<null>"));
+  out << ", " << "identityServerUserName="; (__isset.identityServerUserName ? (out << to_string(identityServerUserName)) : (out << "<null>"));
+  out << ", " << "identityServerPasswordToken="; (__isset.identityServerPasswordToken ? (out << to_string(identityServerPasswordToken)) : (out << "<null>"));
+  out << ", " << "declinedReason="; (__isset.declinedReason ? (out << to_string(declinedReason)) : (out << "<null>"));
+  out << ", " << "oauthClientId="; (__isset.oauthClientId ? (out << to_string(oauthClientId)) : (out << "<null>"));
+  out << ", " << "oauthClientSecret="; (__isset.oauthClientSecret ? (out << to_string(oauthClientSecret)) : (out << "<null>"));
+  out << ", " << "requestCreationTime="; (__isset.requestCreationTime ? (out << to_string(requestCreationTime)) : (out << "<null>"));
+  out << ", " << "requesterUsername="; (__isset.requesterUsername ? (out << to_string(requesterUsername)) : (out << "<null>"));
+  out << ")";
+}
+
+}}}} // namespace


[03/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/tenant/Tenant.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/tenant/Tenant.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/tenant/Tenant.java
new file mode 100644
index 0000000..77dd186
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/tenant/Tenant.java
@@ -0,0 +1,2322 @@
+/**
+ * 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
+ */
+package org.apache.airavata.model.tenant;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class Tenant implements org.apache.thrift.TBase<Tenant, Tenant._Fields>, java.io.Serializable, Cloneable, Comparable<Tenant> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Tenant");
+
+  private static final org.apache.thrift.protocol.TField TENANT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("tenantId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField TENANT_APPROVAL_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("tenantApprovalStatus", org.apache.thrift.protocol.TType.I32, (short)2);
+  private static final org.apache.thrift.protocol.TField TENANT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tenantName", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField DOMAIN_FIELD_DESC = new org.apache.thrift.protocol.TField("domain", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField EMAIL_ADDRESS_FIELD_DESC = new org.apache.thrift.protocol.TField("emailAddress", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField TENANT_ACRONYM_FIELD_DESC = new org.apache.thrift.protocol.TField("tenantAcronym", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField TENANT_URL_FIELD_DESC = new org.apache.thrift.protocol.TField("tenantURL", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField TENANT_PUBLIC_ABSTRACT_FIELD_DESC = new org.apache.thrift.protocol.TField("tenantPublicAbstract", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField REVIEW_PROPOSAL_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("reviewProposalDescription", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField TENANT_ADMIN_FIRST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tenantAdminFirstName", org.apache.thrift.protocol.TType.STRING, (short)10);
+  private static final org.apache.thrift.protocol.TField TENANT_ADMIN_LAST_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tenantAdminLastName", org.apache.thrift.protocol.TType.STRING, (short)11);
+  private static final org.apache.thrift.protocol.TField TENANT_ADMIN_EMAIL_FIELD_DESC = new org.apache.thrift.protocol.TField("tenantAdminEmail", org.apache.thrift.protocol.TType.STRING, (short)12);
+  private static final org.apache.thrift.protocol.TField IDENTITY_SERVER_USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("identityServerUserName", org.apache.thrift.protocol.TType.STRING, (short)13);
+  private static final org.apache.thrift.protocol.TField IDENTITY_SERVER_PASSWORD_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("identityServerPasswordToken", org.apache.thrift.protocol.TType.STRING, (short)14);
+  private static final org.apache.thrift.protocol.TField DECLINED_REASON_FIELD_DESC = new org.apache.thrift.protocol.TField("declinedReason", org.apache.thrift.protocol.TType.STRING, (short)15);
+  private static final org.apache.thrift.protocol.TField OAUTH_CLIENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("oauthClientId", org.apache.thrift.protocol.TType.STRING, (short)16);
+  private static final org.apache.thrift.protocol.TField OAUTH_CLIENT_SECRET_FIELD_DESC = new org.apache.thrift.protocol.TField("oauthClientSecret", org.apache.thrift.protocol.TType.STRING, (short)17);
+  private static final org.apache.thrift.protocol.TField REQUEST_CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("requestCreationTime", org.apache.thrift.protocol.TType.I64, (short)18);
+  private static final org.apache.thrift.protocol.TField REQUESTER_USERNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("requesterUsername", org.apache.thrift.protocol.TType.STRING, (short)19);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TenantStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TenantTupleSchemeFactory());
+  }
+
+  private String tenantId; // required
+  private TenantApprovalStatus tenantApprovalStatus; // required
+  private String tenantName; // optional
+  private String domain; // optional
+  private String emailAddress; // optional
+  private String tenantAcronym; // optional
+  private String tenantURL; // optional
+  private String tenantPublicAbstract; // optional
+  private String reviewProposalDescription; // optional
+  private String tenantAdminFirstName; // optional
+  private String tenantAdminLastName; // optional
+  private String tenantAdminEmail; // optional
+  private String identityServerUserName; // optional
+  private String identityServerPasswordToken; // optional
+  private String declinedReason; // optional
+  private String oauthClientId; // optional
+  private String oauthClientSecret; // optional
+  private long requestCreationTime; // optional
+  private String requesterUsername; // 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 {
+    TENANT_ID((short)1, "tenantId"),
+    /**
+     * 
+     * @see TenantApprovalStatus
+     */
+    TENANT_APPROVAL_STATUS((short)2, "tenantApprovalStatus"),
+    TENANT_NAME((short)3, "tenantName"),
+    DOMAIN((short)4, "domain"),
+    EMAIL_ADDRESS((short)5, "emailAddress"),
+    TENANT_ACRONYM((short)6, "tenantAcronym"),
+    TENANT_URL((short)7, "tenantURL"),
+    TENANT_PUBLIC_ABSTRACT((short)8, "tenantPublicAbstract"),
+    REVIEW_PROPOSAL_DESCRIPTION((short)9, "reviewProposalDescription"),
+    TENANT_ADMIN_FIRST_NAME((short)10, "tenantAdminFirstName"),
+    TENANT_ADMIN_LAST_NAME((short)11, "tenantAdminLastName"),
+    TENANT_ADMIN_EMAIL((short)12, "tenantAdminEmail"),
+    IDENTITY_SERVER_USER_NAME((short)13, "identityServerUserName"),
+    IDENTITY_SERVER_PASSWORD_TOKEN((short)14, "identityServerPasswordToken"),
+    DECLINED_REASON((short)15, "declinedReason"),
+    OAUTH_CLIENT_ID((short)16, "oauthClientId"),
+    OAUTH_CLIENT_SECRET((short)17, "oauthClientSecret"),
+    REQUEST_CREATION_TIME((short)18, "requestCreationTime"),
+    REQUESTER_USERNAME((short)19, "requesterUsername");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : 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: // TENANT_ID
+          return TENANT_ID;
+        case 2: // TENANT_APPROVAL_STATUS
+          return TENANT_APPROVAL_STATUS;
+        case 3: // TENANT_NAME
+          return TENANT_NAME;
+        case 4: // DOMAIN
+          return DOMAIN;
+        case 5: // EMAIL_ADDRESS
+          return EMAIL_ADDRESS;
+        case 6: // TENANT_ACRONYM
+          return TENANT_ACRONYM;
+        case 7: // TENANT_URL
+          return TENANT_URL;
+        case 8: // TENANT_PUBLIC_ABSTRACT
+          return TENANT_PUBLIC_ABSTRACT;
+        case 9: // REVIEW_PROPOSAL_DESCRIPTION
+          return REVIEW_PROPOSAL_DESCRIPTION;
+        case 10: // TENANT_ADMIN_FIRST_NAME
+          return TENANT_ADMIN_FIRST_NAME;
+        case 11: // TENANT_ADMIN_LAST_NAME
+          return TENANT_ADMIN_LAST_NAME;
+        case 12: // TENANT_ADMIN_EMAIL
+          return TENANT_ADMIN_EMAIL;
+        case 13: // IDENTITY_SERVER_USER_NAME
+          return IDENTITY_SERVER_USER_NAME;
+        case 14: // IDENTITY_SERVER_PASSWORD_TOKEN
+          return IDENTITY_SERVER_PASSWORD_TOKEN;
+        case 15: // DECLINED_REASON
+          return DECLINED_REASON;
+        case 16: // OAUTH_CLIENT_ID
+          return OAUTH_CLIENT_ID;
+        case 17: // OAUTH_CLIENT_SECRET
+          return OAUTH_CLIENT_SECRET;
+        case 18: // REQUEST_CREATION_TIME
+          return REQUEST_CREATION_TIME;
+        case 19: // REQUESTER_USERNAME
+          return REQUESTER_USERNAME;
+        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 int __REQUESTCREATIONTIME_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.TENANT_NAME,_Fields.DOMAIN,_Fields.EMAIL_ADDRESS,_Fields.TENANT_ACRONYM,_Fields.TENANT_URL,_Fields.TENANT_PUBLIC_ABSTRACT,_Fields.REVIEW_PROPOSAL_DESCRIPTION,_Fields.TENANT_ADMIN_FIRST_NAME,_Fields.TENANT_ADMIN_LAST_NAME,_Fields.TENANT_ADMIN_EMAIL,_Fields.IDENTITY_SERVER_USER_NAME,_Fields.IDENTITY_SERVER_PASSWORD_TOKEN,_Fields.DECLINED_REASON,_Fields.OAUTH_CLIENT_ID,_Fields.OAUTH_CLIENT_SECRET,_Fields.REQUEST_CREATION_TIME,_Fields.REQUESTER_USERNAME};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.TENANT_ID, new org.apache.thrift.meta_data.FieldMetaData("tenantId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TENANT_APPROVAL_STATUS, new org.apache.thrift.meta_data.FieldMetaData("tenantApprovalStatus", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TenantApprovalStatus.class)));
+    tmpMap.put(_Fields.TENANT_NAME, new org.apache.thrift.meta_data.FieldMetaData("tenantName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DOMAIN, new org.apache.thrift.meta_data.FieldMetaData("domain", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EMAIL_ADDRESS, new org.apache.thrift.meta_data.FieldMetaData("emailAddress", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TENANT_ACRONYM, new org.apache.thrift.meta_data.FieldMetaData("tenantAcronym", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TENANT_URL, new org.apache.thrift.meta_data.FieldMetaData("tenantURL", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TENANT_PUBLIC_ABSTRACT, new org.apache.thrift.meta_data.FieldMetaData("tenantPublicAbstract", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REVIEW_PROPOSAL_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("reviewProposalDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TENANT_ADMIN_FIRST_NAME, new org.apache.thrift.meta_data.FieldMetaData("tenantAdminFirstName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TENANT_ADMIN_LAST_NAME, new org.apache.thrift.meta_data.FieldMetaData("tenantAdminLastName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TENANT_ADMIN_EMAIL, new org.apache.thrift.meta_data.FieldMetaData("tenantAdminEmail", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.IDENTITY_SERVER_USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("identityServerUserName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.IDENTITY_SERVER_PASSWORD_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("identityServerPasswordToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DECLINED_REASON, new org.apache.thrift.meta_data.FieldMetaData("declinedReason", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OAUTH_CLIENT_ID, new org.apache.thrift.meta_data.FieldMetaData("oauthClientId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OAUTH_CLIENT_SECRET, new org.apache.thrift.meta_data.FieldMetaData("oauthClientSecret", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.REQUEST_CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("requestCreationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.REQUESTER_USERNAME, new org.apache.thrift.meta_data.FieldMetaData("requesterUsername", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Tenant.class, metaDataMap);
+  }
+
+  public Tenant() {
+  }
+
+  public Tenant(
+    String tenantId,
+    TenantApprovalStatus tenantApprovalStatus)
+  {
+    this();
+    this.tenantId = tenantId;
+    this.tenantApprovalStatus = tenantApprovalStatus;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Tenant(Tenant other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetTenantId()) {
+      this.tenantId = other.tenantId;
+    }
+    if (other.isSetTenantApprovalStatus()) {
+      this.tenantApprovalStatus = other.tenantApprovalStatus;
+    }
+    if (other.isSetTenantName()) {
+      this.tenantName = other.tenantName;
+    }
+    if (other.isSetDomain()) {
+      this.domain = other.domain;
+    }
+    if (other.isSetEmailAddress()) {
+      this.emailAddress = other.emailAddress;
+    }
+    if (other.isSetTenantAcronym()) {
+      this.tenantAcronym = other.tenantAcronym;
+    }
+    if (other.isSetTenantURL()) {
+      this.tenantURL = other.tenantURL;
+    }
+    if (other.isSetTenantPublicAbstract()) {
+      this.tenantPublicAbstract = other.tenantPublicAbstract;
+    }
+    if (other.isSetReviewProposalDescription()) {
+      this.reviewProposalDescription = other.reviewProposalDescription;
+    }
+    if (other.isSetTenantAdminFirstName()) {
+      this.tenantAdminFirstName = other.tenantAdminFirstName;
+    }
+    if (other.isSetTenantAdminLastName()) {
+      this.tenantAdminLastName = other.tenantAdminLastName;
+    }
+    if (other.isSetTenantAdminEmail()) {
+      this.tenantAdminEmail = other.tenantAdminEmail;
+    }
+    if (other.isSetIdentityServerUserName()) {
+      this.identityServerUserName = other.identityServerUserName;
+    }
+    if (other.isSetIdentityServerPasswordToken()) {
+      this.identityServerPasswordToken = other.identityServerPasswordToken;
+    }
+    if (other.isSetDeclinedReason()) {
+      this.declinedReason = other.declinedReason;
+    }
+    if (other.isSetOauthClientId()) {
+      this.oauthClientId = other.oauthClientId;
+    }
+    if (other.isSetOauthClientSecret()) {
+      this.oauthClientSecret = other.oauthClientSecret;
+    }
+    this.requestCreationTime = other.requestCreationTime;
+    if (other.isSetRequesterUsername()) {
+      this.requesterUsername = other.requesterUsername;
+    }
+  }
+
+  public Tenant deepCopy() {
+    return new Tenant(this);
+  }
+
+  @Override
+  public void clear() {
+    this.tenantId = null;
+    this.tenantApprovalStatus = null;
+    this.tenantName = null;
+    this.domain = null;
+    this.emailAddress = null;
+    this.tenantAcronym = null;
+    this.tenantURL = null;
+    this.tenantPublicAbstract = null;
+    this.reviewProposalDescription = null;
+    this.tenantAdminFirstName = null;
+    this.tenantAdminLastName = null;
+    this.tenantAdminEmail = null;
+    this.identityServerUserName = null;
+    this.identityServerPasswordToken = null;
+    this.declinedReason = null;
+    this.oauthClientId = null;
+    this.oauthClientSecret = null;
+    setRequestCreationTimeIsSet(false);
+    this.requestCreationTime = 0;
+    this.requesterUsername = null;
+  }
+
+  public String getTenantId() {
+    return this.tenantId;
+  }
+
+  public void setTenantId(String tenantId) {
+    this.tenantId = tenantId;
+  }
+
+  public void unsetTenantId() {
+    this.tenantId = null;
+  }
+
+  /** Returns true if field tenantId is set (has been assigned a value) and false otherwise */
+  public boolean isSetTenantId() {
+    return this.tenantId != null;
+  }
+
+  public void setTenantIdIsSet(boolean value) {
+    if (!value) {
+      this.tenantId = null;
+    }
+  }
+
+  /**
+   * 
+   * @see TenantApprovalStatus
+   */
+  public TenantApprovalStatus getTenantApprovalStatus() {
+    return this.tenantApprovalStatus;
+  }
+
+  /**
+   * 
+   * @see TenantApprovalStatus
+   */
+  public void setTenantApprovalStatus(TenantApprovalStatus tenantApprovalStatus) {
+    this.tenantApprovalStatus = tenantApprovalStatus;
+  }
+
+  public void unsetTenantApprovalStatus() {
+    this.tenantApprovalStatus = null;
+  }
+
+  /** Returns true if field tenantApprovalStatus is set (has been assigned a value) and false otherwise */
+  public boolean isSetTenantApprovalStatus() {
+    return this.tenantApprovalStatus != null;
+  }
+
+  public void setTenantApprovalStatusIsSet(boolean value) {
+    if (!value) {
+      this.tenantApprovalStatus = null;
+    }
+  }
+
+  public String getTenantName() {
+    return this.tenantName;
+  }
+
+  public void setTenantName(String tenantName) {
+    this.tenantName = tenantName;
+  }
+
+  public void unsetTenantName() {
+    this.tenantName = null;
+  }
+
+  /** Returns true if field tenantName is set (has been assigned a value) and false otherwise */
+  public boolean isSetTenantName() {
+    return this.tenantName != null;
+  }
+
+  public void setTenantNameIsSet(boolean value) {
+    if (!value) {
+      this.tenantName = null;
+    }
+  }
+
+  public String getDomain() {
+    return this.domain;
+  }
+
+  public void setDomain(String domain) {
+    this.domain = domain;
+  }
+
+  public void unsetDomain() {
+    this.domain = null;
+  }
+
+  /** Returns true if field domain is set (has been assigned a value) and false otherwise */
+  public boolean isSetDomain() {
+    return this.domain != null;
+  }
+
+  public void setDomainIsSet(boolean value) {
+    if (!value) {
+      this.domain = null;
+    }
+  }
+
+  public String getEmailAddress() {
+    return this.emailAddress;
+  }
+
+  public void setEmailAddress(String emailAddress) {
+    this.emailAddress = emailAddress;
+  }
+
+  public void unsetEmailAddress() {
+    this.emailAddress = null;
+  }
+
+  /** Returns true if field emailAddress is set (has been assigned a value) and false otherwise */
+  public boolean isSetEmailAddress() {
+    return this.emailAddress != null;
+  }
+
+  public void setEmailAddressIsSet(boolean value) {
+    if (!value) {
+      this.emailAddress = null;
+    }
+  }
+
+  public String getTenantAcronym() {
+    return this.tenantAcronym;
+  }
+
+  public void setTenantAcronym(String tenantAcronym) {
+    this.tenantAcronym = tenantAcronym;
+  }
+
+  public void unsetTenantAcronym() {
+    this.tenantAcronym = null;
+  }
+
+  /** Returns true if field tenantAcronym is set (has been assigned a value) and false otherwise */
+  public boolean isSetTenantAcronym() {
+    return this.tenantAcronym != null;
+  }
+
+  public void setTenantAcronymIsSet(boolean value) {
+    if (!value) {
+      this.tenantAcronym = null;
+    }
+  }
+
+  public String getTenantURL() {
+    return this.tenantURL;
+  }
+
+  public void setTenantURL(String tenantURL) {
+    this.tenantURL = tenantURL;
+  }
+
+  public void unsetTenantURL() {
+    this.tenantURL = null;
+  }
+
+  /** Returns true if field tenantURL is set (has been assigned a value) and false otherwise */
+  public boolean isSetTenantURL() {
+    return this.tenantURL != null;
+  }
+
+  public void setTenantURLIsSet(boolean value) {
+    if (!value) {
+      this.tenantURL = null;
+    }
+  }
+
+  public String getTenantPublicAbstract() {
+    return this.tenantPublicAbstract;
+  }
+
+  public void setTenantPublicAbstract(String tenantPublicAbstract) {
+    this.tenantPublicAbstract = tenantPublicAbstract;
+  }
+
+  public void unsetTenantPublicAbstract() {
+    this.tenantPublicAbstract = null;
+  }
+
+  /** Returns true if field tenantPublicAbstract is set (has been assigned a value) and false otherwise */
+  public boolean isSetTenantPublicAbstract() {
+    return this.tenantPublicAbstract != null;
+  }
+
+  public void setTenantPublicAbstractIsSet(boolean value) {
+    if (!value) {
+      this.tenantPublicAbstract = null;
+    }
+  }
+
+  public String getReviewProposalDescription() {
+    return this.reviewProposalDescription;
+  }
+
+  public void setReviewProposalDescription(String reviewProposalDescription) {
+    this.reviewProposalDescription = reviewProposalDescription;
+  }
+
+  public void unsetReviewProposalDescription() {
+    this.reviewProposalDescription = null;
+  }
+
+  /** Returns true if field reviewProposalDescription is set (has been assigned a value) and false otherwise */
+  public boolean isSetReviewProposalDescription() {
+    return this.reviewProposalDescription != null;
+  }
+
+  public void setReviewProposalDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.reviewProposalDescription = null;
+    }
+  }
+
+  public String getTenantAdminFirstName() {
+    return this.tenantAdminFirstName;
+  }
+
+  public void setTenantAdminFirstName(String tenantAdminFirstName) {
+    this.tenantAdminFirstName = tenantAdminFirstName;
+  }
+
+  public void unsetTenantAdminFirstName() {
+    this.tenantAdminFirstName = null;
+  }
+
+  /** Returns true if field tenantAdminFirstName is set (has been assigned a value) and false otherwise */
+  public boolean isSetTenantAdminFirstName() {
+    return this.tenantAdminFirstName != null;
+  }
+
+  public void setTenantAdminFirstNameIsSet(boolean value) {
+    if (!value) {
+      this.tenantAdminFirstName = null;
+    }
+  }
+
+  public String getTenantAdminLastName() {
+    return this.tenantAdminLastName;
+  }
+
+  public void setTenantAdminLastName(String tenantAdminLastName) {
+    this.tenantAdminLastName = tenantAdminLastName;
+  }
+
+  public void unsetTenantAdminLastName() {
+    this.tenantAdminLastName = null;
+  }
+
+  /** Returns true if field tenantAdminLastName is set (has been assigned a value) and false otherwise */
+  public boolean isSetTenantAdminLastName() {
+    return this.tenantAdminLastName != null;
+  }
+
+  public void setTenantAdminLastNameIsSet(boolean value) {
+    if (!value) {
+      this.tenantAdminLastName = null;
+    }
+  }
+
+  public String getTenantAdminEmail() {
+    return this.tenantAdminEmail;
+  }
+
+  public void setTenantAdminEmail(String tenantAdminEmail) {
+    this.tenantAdminEmail = tenantAdminEmail;
+  }
+
+  public void unsetTenantAdminEmail() {
+    this.tenantAdminEmail = null;
+  }
+
+  /** Returns true if field tenantAdminEmail is set (has been assigned a value) and false otherwise */
+  public boolean isSetTenantAdminEmail() {
+    return this.tenantAdminEmail != null;
+  }
+
+  public void setTenantAdminEmailIsSet(boolean value) {
+    if (!value) {
+      this.tenantAdminEmail = null;
+    }
+  }
+
+  public String getIdentityServerUserName() {
+    return this.identityServerUserName;
+  }
+
+  public void setIdentityServerUserName(String identityServerUserName) {
+    this.identityServerUserName = identityServerUserName;
+  }
+
+  public void unsetIdentityServerUserName() {
+    this.identityServerUserName = null;
+  }
+
+  /** Returns true if field identityServerUserName is set (has been assigned a value) and false otherwise */
+  public boolean isSetIdentityServerUserName() {
+    return this.identityServerUserName != null;
+  }
+
+  public void setIdentityServerUserNameIsSet(boolean value) {
+    if (!value) {
+      this.identityServerUserName = null;
+    }
+  }
+
+  public String getIdentityServerPasswordToken() {
+    return this.identityServerPasswordToken;
+  }
+
+  public void setIdentityServerPasswordToken(String identityServerPasswordToken) {
+    this.identityServerPasswordToken = identityServerPasswordToken;
+  }
+
+  public void unsetIdentityServerPasswordToken() {
+    this.identityServerPasswordToken = null;
+  }
+
+  /** Returns true if field identityServerPasswordToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetIdentityServerPasswordToken() {
+    return this.identityServerPasswordToken != null;
+  }
+
+  public void setIdentityServerPasswordTokenIsSet(boolean value) {
+    if (!value) {
+      this.identityServerPasswordToken = null;
+    }
+  }
+
+  public String getDeclinedReason() {
+    return this.declinedReason;
+  }
+
+  public void setDeclinedReason(String declinedReason) {
+    this.declinedReason = declinedReason;
+  }
+
+  public void unsetDeclinedReason() {
+    this.declinedReason = null;
+  }
+
+  /** Returns true if field declinedReason is set (has been assigned a value) and false otherwise */
+  public boolean isSetDeclinedReason() {
+    return this.declinedReason != null;
+  }
+
+  public void setDeclinedReasonIsSet(boolean value) {
+    if (!value) {
+      this.declinedReason = null;
+    }
+  }
+
+  public String getOauthClientId() {
+    return this.oauthClientId;
+  }
+
+  public void setOauthClientId(String oauthClientId) {
+    this.oauthClientId = oauthClientId;
+  }
+
+  public void unsetOauthClientId() {
+    this.oauthClientId = null;
+  }
+
+  /** Returns true if field oauthClientId is set (has been assigned a value) and false otherwise */
+  public boolean isSetOauthClientId() {
+    return this.oauthClientId != null;
+  }
+
+  public void setOauthClientIdIsSet(boolean value) {
+    if (!value) {
+      this.oauthClientId = null;
+    }
+  }
+
+  public String getOauthClientSecret() {
+    return this.oauthClientSecret;
+  }
+
+  public void setOauthClientSecret(String oauthClientSecret) {
+    this.oauthClientSecret = oauthClientSecret;
+  }
+
+  public void unsetOauthClientSecret() {
+    this.oauthClientSecret = null;
+  }
+
+  /** Returns true if field oauthClientSecret is set (has been assigned a value) and false otherwise */
+  public boolean isSetOauthClientSecret() {
+    return this.oauthClientSecret != null;
+  }
+
+  public void setOauthClientSecretIsSet(boolean value) {
+    if (!value) {
+      this.oauthClientSecret = null;
+    }
+  }
+
+  public long getRequestCreationTime() {
+    return this.requestCreationTime;
+  }
+
+  public void setRequestCreationTime(long requestCreationTime) {
+    this.requestCreationTime = requestCreationTime;
+    setRequestCreationTimeIsSet(true);
+  }
+
+  public void unsetRequestCreationTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __REQUESTCREATIONTIME_ISSET_ID);
+  }
+
+  /** Returns true if field requestCreationTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetRequestCreationTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __REQUESTCREATIONTIME_ISSET_ID);
+  }
+
+  public void setRequestCreationTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __REQUESTCREATIONTIME_ISSET_ID, value);
+  }
+
+  public String getRequesterUsername() {
+    return this.requesterUsername;
+  }
+
+  public void setRequesterUsername(String requesterUsername) {
+    this.requesterUsername = requesterUsername;
+  }
+
+  public void unsetRequesterUsername() {
+    this.requesterUsername = null;
+  }
+
+  /** Returns true if field requesterUsername is set (has been assigned a value) and false otherwise */
+  public boolean isSetRequesterUsername() {
+    return this.requesterUsername != null;
+  }
+
+  public void setRequesterUsernameIsSet(boolean value) {
+    if (!value) {
+      this.requesterUsername = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TENANT_ID:
+      if (value == null) {
+        unsetTenantId();
+      } else {
+        setTenantId((String)value);
+      }
+      break;
+
+    case TENANT_APPROVAL_STATUS:
+      if (value == null) {
+        unsetTenantApprovalStatus();
+      } else {
+        setTenantApprovalStatus((TenantApprovalStatus)value);
+      }
+      break;
+
+    case TENANT_NAME:
+      if (value == null) {
+        unsetTenantName();
+      } else {
+        setTenantName((String)value);
+      }
+      break;
+
+    case DOMAIN:
+      if (value == null) {
+        unsetDomain();
+      } else {
+        setDomain((String)value);
+      }
+      break;
+
+    case EMAIL_ADDRESS:
+      if (value == null) {
+        unsetEmailAddress();
+      } else {
+        setEmailAddress((String)value);
+      }
+      break;
+
+    case TENANT_ACRONYM:
+      if (value == null) {
+        unsetTenantAcronym();
+      } else {
+        setTenantAcronym((String)value);
+      }
+      break;
+
+    case TENANT_URL:
+      if (value == null) {
+        unsetTenantURL();
+      } else {
+        setTenantURL((String)value);
+      }
+      break;
+
+    case TENANT_PUBLIC_ABSTRACT:
+      if (value == null) {
+        unsetTenantPublicAbstract();
+      } else {
+        setTenantPublicAbstract((String)value);
+      }
+      break;
+
+    case REVIEW_PROPOSAL_DESCRIPTION:
+      if (value == null) {
+        unsetReviewProposalDescription();
+      } else {
+        setReviewProposalDescription((String)value);
+      }
+      break;
+
+    case TENANT_ADMIN_FIRST_NAME:
+      if (value == null) {
+        unsetTenantAdminFirstName();
+      } else {
+        setTenantAdminFirstName((String)value);
+      }
+      break;
+
+    case TENANT_ADMIN_LAST_NAME:
+      if (value == null) {
+        unsetTenantAdminLastName();
+      } else {
+        setTenantAdminLastName((String)value);
+      }
+      break;
+
+    case TENANT_ADMIN_EMAIL:
+      if (value == null) {
+        unsetTenantAdminEmail();
+      } else {
+        setTenantAdminEmail((String)value);
+      }
+      break;
+
+    case IDENTITY_SERVER_USER_NAME:
+      if (value == null) {
+        unsetIdentityServerUserName();
+      } else {
+        setIdentityServerUserName((String)value);
+      }
+      break;
+
+    case IDENTITY_SERVER_PASSWORD_TOKEN:
+      if (value == null) {
+        unsetIdentityServerPasswordToken();
+      } else {
+        setIdentityServerPasswordToken((String)value);
+      }
+      break;
+
+    case DECLINED_REASON:
+      if (value == null) {
+        unsetDeclinedReason();
+      } else {
+        setDeclinedReason((String)value);
+      }
+      break;
+
+    case OAUTH_CLIENT_ID:
+      if (value == null) {
+        unsetOauthClientId();
+      } else {
+        setOauthClientId((String)value);
+      }
+      break;
+
+    case OAUTH_CLIENT_SECRET:
+      if (value == null) {
+        unsetOauthClientSecret();
+      } else {
+        setOauthClientSecret((String)value);
+      }
+      break;
+
+    case REQUEST_CREATION_TIME:
+      if (value == null) {
+        unsetRequestCreationTime();
+      } else {
+        setRequestCreationTime((Long)value);
+      }
+      break;
+
+    case REQUESTER_USERNAME:
+      if (value == null) {
+        unsetRequesterUsername();
+      } else {
+        setRequesterUsername((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TENANT_ID:
+      return getTenantId();
+
+    case TENANT_APPROVAL_STATUS:
+      return getTenantApprovalStatus();
+
+    case TENANT_NAME:
+      return getTenantName();
+
+    case DOMAIN:
+      return getDomain();
+
+    case EMAIL_ADDRESS:
+      return getEmailAddress();
+
+    case TENANT_ACRONYM:
+      return getTenantAcronym();
+
+    case TENANT_URL:
+      return getTenantURL();
+
+    case TENANT_PUBLIC_ABSTRACT:
+      return getTenantPublicAbstract();
+
+    case REVIEW_PROPOSAL_DESCRIPTION:
+      return getReviewProposalDescription();
+
+    case TENANT_ADMIN_FIRST_NAME:
+      return getTenantAdminFirstName();
+
+    case TENANT_ADMIN_LAST_NAME:
+      return getTenantAdminLastName();
+
+    case TENANT_ADMIN_EMAIL:
+      return getTenantAdminEmail();
+
+    case IDENTITY_SERVER_USER_NAME:
+      return getIdentityServerUserName();
+
+    case IDENTITY_SERVER_PASSWORD_TOKEN:
+      return getIdentityServerPasswordToken();
+
+    case DECLINED_REASON:
+      return getDeclinedReason();
+
+    case OAUTH_CLIENT_ID:
+      return getOauthClientId();
+
+    case OAUTH_CLIENT_SECRET:
+      return getOauthClientSecret();
+
+    case REQUEST_CREATION_TIME:
+      return getRequestCreationTime();
+
+    case REQUESTER_USERNAME:
+      return getRequesterUsername();
+
+    }
+    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 TENANT_ID:
+      return isSetTenantId();
+    case TENANT_APPROVAL_STATUS:
+      return isSetTenantApprovalStatus();
+    case TENANT_NAME:
+      return isSetTenantName();
+    case DOMAIN:
+      return isSetDomain();
+    case EMAIL_ADDRESS:
+      return isSetEmailAddress();
+    case TENANT_ACRONYM:
+      return isSetTenantAcronym();
+    case TENANT_URL:
+      return isSetTenantURL();
+    case TENANT_PUBLIC_ABSTRACT:
+      return isSetTenantPublicAbstract();
+    case REVIEW_PROPOSAL_DESCRIPTION:
+      return isSetReviewProposalDescription();
+    case TENANT_ADMIN_FIRST_NAME:
+      return isSetTenantAdminFirstName();
+    case TENANT_ADMIN_LAST_NAME:
+      return isSetTenantAdminLastName();
+    case TENANT_ADMIN_EMAIL:
+      return isSetTenantAdminEmail();
+    case IDENTITY_SERVER_USER_NAME:
+      return isSetIdentityServerUserName();
+    case IDENTITY_SERVER_PASSWORD_TOKEN:
+      return isSetIdentityServerPasswordToken();
+    case DECLINED_REASON:
+      return isSetDeclinedReason();
+    case OAUTH_CLIENT_ID:
+      return isSetOauthClientId();
+    case OAUTH_CLIENT_SECRET:
+      return isSetOauthClientSecret();
+    case REQUEST_CREATION_TIME:
+      return isSetRequestCreationTime();
+    case REQUESTER_USERNAME:
+      return isSetRequesterUsername();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Tenant)
+      return this.equals((Tenant)that);
+    return false;
+  }
+
+  public boolean equals(Tenant that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_tenantId = true && this.isSetTenantId();
+    boolean that_present_tenantId = true && that.isSetTenantId();
+    if (this_present_tenantId || that_present_tenantId) {
+      if (!(this_present_tenantId && that_present_tenantId))
+        return false;
+      if (!this.tenantId.equals(that.tenantId))
+        return false;
+    }
+
+    boolean this_present_tenantApprovalStatus = true && this.isSetTenantApprovalStatus();
+    boolean that_present_tenantApprovalStatus = true && that.isSetTenantApprovalStatus();
+    if (this_present_tenantApprovalStatus || that_present_tenantApprovalStatus) {
+      if (!(this_present_tenantApprovalStatus && that_present_tenantApprovalStatus))
+        return false;
+      if (!this.tenantApprovalStatus.equals(that.tenantApprovalStatus))
+        return false;
+    }
+
+    boolean this_present_tenantName = true && this.isSetTenantName();
+    boolean that_present_tenantName = true && that.isSetTenantName();
+    if (this_present_tenantName || that_present_tenantName) {
+      if (!(this_present_tenantName && that_present_tenantName))
+        return false;
+      if (!this.tenantName.equals(that.tenantName))
+        return false;
+    }
+
+    boolean this_present_domain = true && this.isSetDomain();
+    boolean that_present_domain = true && that.isSetDomain();
+    if (this_present_domain || that_present_domain) {
+      if (!(this_present_domain && that_present_domain))
+        return false;
+      if (!this.domain.equals(that.domain))
+        return false;
+    }
+
+    boolean this_present_emailAddress = true && this.isSetEmailAddress();
+    boolean that_present_emailAddress = true && that.isSetEmailAddress();
+    if (this_present_emailAddress || that_present_emailAddress) {
+      if (!(this_present_emailAddress && that_present_emailAddress))
+        return false;
+      if (!this.emailAddress.equals(that.emailAddress))
+        return false;
+    }
+
+    boolean this_present_tenantAcronym = true && this.isSetTenantAcronym();
+    boolean that_present_tenantAcronym = true && that.isSetTenantAcronym();
+    if (this_present_tenantAcronym || that_present_tenantAcronym) {
+      if (!(this_present_tenantAcronym && that_present_tenantAcronym))
+        return false;
+      if (!this.tenantAcronym.equals(that.tenantAcronym))
+        return false;
+    }
+
+    boolean this_present_tenantURL = true && this.isSetTenantURL();
+    boolean that_present_tenantURL = true && that.isSetTenantURL();
+    if (this_present_tenantURL || that_present_tenantURL) {
+      if (!(this_present_tenantURL && that_present_tenantURL))
+        return false;
+      if (!this.tenantURL.equals(that.tenantURL))
+        return false;
+    }
+
+    boolean this_present_tenantPublicAbstract = true && this.isSetTenantPublicAbstract();
+    boolean that_present_tenantPublicAbstract = true && that.isSetTenantPublicAbstract();
+    if (this_present_tenantPublicAbstract || that_present_tenantPublicAbstract) {
+      if (!(this_present_tenantPublicAbstract && that_present_tenantPublicAbstract))
+        return false;
+      if (!this.tenantPublicAbstract.equals(that.tenantPublicAbstract))
+        return false;
+    }
+
+    boolean this_present_reviewProposalDescription = true && this.isSetReviewProposalDescription();
+    boolean that_present_reviewProposalDescription = true && that.isSetReviewProposalDescription();
+    if (this_present_reviewProposalDescription || that_present_reviewProposalDescription) {
+      if (!(this_present_reviewProposalDescription && that_present_reviewProposalDescription))
+        return false;
+      if (!this.reviewProposalDescription.equals(that.reviewProposalDescription))
+        return false;
+    }
+
+    boolean this_present_tenantAdminFirstName = true && this.isSetTenantAdminFirstName();
+    boolean that_present_tenantAdminFirstName = true && that.isSetTenantAdminFirstName();
+    if (this_present_tenantAdminFirstName || that_present_tenantAdminFirstName) {
+      if (!(this_present_tenantAdminFirstName && that_present_tenantAdminFirstName))
+        return false;
+      if (!this.tenantAdminFirstName.equals(that.tenantAdminFirstName))
+        return false;
+    }
+
+    boolean this_present_tenantAdminLastName = true && this.isSetTenantAdminLastName();
+    boolean that_present_tenantAdminLastName = true && that.isSetTenantAdminLastName();
+    if (this_present_tenantAdminLastName || that_present_tenantAdminLastName) {
+      if (!(this_present_tenantAdminLastName && that_present_tenantAdminLastName))
+        return false;
+      if (!this.tenantAdminLastName.equals(that.tenantAdminLastName))
+        return false;
+    }
+
+    boolean this_present_tenantAdminEmail = true && this.isSetTenantAdminEmail();
+    boolean that_present_tenantAdminEmail = true && that.isSetTenantAdminEmail();
+    if (this_present_tenantAdminEmail || that_present_tenantAdminEmail) {
+      if (!(this_present_tenantAdminEmail && that_present_tenantAdminEmail))
+        return false;
+      if (!this.tenantAdminEmail.equals(that.tenantAdminEmail))
+        return false;
+    }
+
+    boolean this_present_identityServerUserName = true && this.isSetIdentityServerUserName();
+    boolean that_present_identityServerUserName = true && that.isSetIdentityServerUserName();
+    if (this_present_identityServerUserName || that_present_identityServerUserName) {
+      if (!(this_present_identityServerUserName && that_present_identityServerUserName))
+        return false;
+      if (!this.identityServerUserName.equals(that.identityServerUserName))
+        return false;
+    }
+
+    boolean this_present_identityServerPasswordToken = true && this.isSetIdentityServerPasswordToken();
+    boolean that_present_identityServerPasswordToken = true && that.isSetIdentityServerPasswordToken();
+    if (this_present_identityServerPasswordToken || that_present_identityServerPasswordToken) {
+      if (!(this_present_identityServerPasswordToken && that_present_identityServerPasswordToken))
+        return false;
+      if (!this.identityServerPasswordToken.equals(that.identityServerPasswordToken))
+        return false;
+    }
+
+    boolean this_present_declinedReason = true && this.isSetDeclinedReason();
+    boolean that_present_declinedReason = true && that.isSetDeclinedReason();
+    if (this_present_declinedReason || that_present_declinedReason) {
+      if (!(this_present_declinedReason && that_present_declinedReason))
+        return false;
+      if (!this.declinedReason.equals(that.declinedReason))
+        return false;
+    }
+
+    boolean this_present_oauthClientId = true && this.isSetOauthClientId();
+    boolean that_present_oauthClientId = true && that.isSetOauthClientId();
+    if (this_present_oauthClientId || that_present_oauthClientId) {
+      if (!(this_present_oauthClientId && that_present_oauthClientId))
+        return false;
+      if (!this.oauthClientId.equals(that.oauthClientId))
+        return false;
+    }
+
+    boolean this_present_oauthClientSecret = true && this.isSetOauthClientSecret();
+    boolean that_present_oauthClientSecret = true && that.isSetOauthClientSecret();
+    if (this_present_oauthClientSecret || that_present_oauthClientSecret) {
+      if (!(this_present_oauthClientSecret && that_present_oauthClientSecret))
+        return false;
+      if (!this.oauthClientSecret.equals(that.oauthClientSecret))
+        return false;
+    }
+
+    boolean this_present_requestCreationTime = true && this.isSetRequestCreationTime();
+    boolean that_present_requestCreationTime = true && that.isSetRequestCreationTime();
+    if (this_present_requestCreationTime || that_present_requestCreationTime) {
+      if (!(this_present_requestCreationTime && that_present_requestCreationTime))
+        return false;
+      if (this.requestCreationTime != that.requestCreationTime)
+        return false;
+    }
+
+    boolean this_present_requesterUsername = true && this.isSetRequesterUsername();
+    boolean that_present_requesterUsername = true && that.isSetRequesterUsername();
+    if (this_present_requesterUsername || that_present_requesterUsername) {
+      if (!(this_present_requesterUsername && that_present_requesterUsername))
+        return false;
+      if (!this.requesterUsername.equals(that.requesterUsername))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_tenantId = true && (isSetTenantId());
+    list.add(present_tenantId);
+    if (present_tenantId)
+      list.add(tenantId);
+
+    boolean present_tenantApprovalStatus = true && (isSetTenantApprovalStatus());
+    list.add(present_tenantApprovalStatus);
+    if (present_tenantApprovalStatus)
+      list.add(tenantApprovalStatus.getValue());
+
+    boolean present_tenantName = true && (isSetTenantName());
+    list.add(present_tenantName);
+    if (present_tenantName)
+      list.add(tenantName);
+
+    boolean present_domain = true && (isSetDomain());
+    list.add(present_domain);
+    if (present_domain)
+      list.add(domain);
+
+    boolean present_emailAddress = true && (isSetEmailAddress());
+    list.add(present_emailAddress);
+    if (present_emailAddress)
+      list.add(emailAddress);
+
+    boolean present_tenantAcronym = true && (isSetTenantAcronym());
+    list.add(present_tenantAcronym);
+    if (present_tenantAcronym)
+      list.add(tenantAcronym);
+
+    boolean present_tenantURL = true && (isSetTenantURL());
+    list.add(present_tenantURL);
+    if (present_tenantURL)
+      list.add(tenantURL);
+
+    boolean present_tenantPublicAbstract = true && (isSetTenantPublicAbstract());
+    list.add(present_tenantPublicAbstract);
+    if (present_tenantPublicAbstract)
+      list.add(tenantPublicAbstract);
+
+    boolean present_reviewProposalDescription = true && (isSetReviewProposalDescription());
+    list.add(present_reviewProposalDescription);
+    if (present_reviewProposalDescription)
+      list.add(reviewProposalDescription);
+
+    boolean present_tenantAdminFirstName = true && (isSetTenantAdminFirstName());
+    list.add(present_tenantAdminFirstName);
+    if (present_tenantAdminFirstName)
+      list.add(tenantAdminFirstName);
+
+    boolean present_tenantAdminLastName = true && (isSetTenantAdminLastName());
+    list.add(present_tenantAdminLastName);
+    if (present_tenantAdminLastName)
+      list.add(tenantAdminLastName);
+
+    boolean present_tenantAdminEmail = true && (isSetTenantAdminEmail());
+    list.add(present_tenantAdminEmail);
+    if (present_tenantAdminEmail)
+      list.add(tenantAdminEmail);
+
+    boolean present_identityServerUserName = true && (isSetIdentityServerUserName());
+    list.add(present_identityServerUserName);
+    if (present_identityServerUserName)
+      list.add(identityServerUserName);
+
+    boolean present_identityServerPasswordToken = true && (isSetIdentityServerPasswordToken());
+    list.add(present_identityServerPasswordToken);
+    if (present_identityServerPasswordToken)
+      list.add(identityServerPasswordToken);
+
+    boolean present_declinedReason = true && (isSetDeclinedReason());
+    list.add(present_declinedReason);
+    if (present_declinedReason)
+      list.add(declinedReason);
+
+    boolean present_oauthClientId = true && (isSetOauthClientId());
+    list.add(present_oauthClientId);
+    if (present_oauthClientId)
+      list.add(oauthClientId);
+
+    boolean present_oauthClientSecret = true && (isSetOauthClientSecret());
+    list.add(present_oauthClientSecret);
+    if (present_oauthClientSecret)
+      list.add(oauthClientSecret);
+
+    boolean present_requestCreationTime = true && (isSetRequestCreationTime());
+    list.add(present_requestCreationTime);
+    if (present_requestCreationTime)
+      list.add(requestCreationTime);
+
+    boolean present_requesterUsername = true && (isSetRequesterUsername());
+    list.add(present_requesterUsername);
+    if (present_requesterUsername)
+      list.add(requesterUsername);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(Tenant other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetTenantId()).compareTo(other.isSetTenantId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTenantId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tenantId, other.tenantId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTenantApprovalStatus()).compareTo(other.isSetTenantApprovalStatus());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTenantApprovalStatus()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tenantApprovalStatus, other.tenantApprovalStatus);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTenantName()).compareTo(other.isSetTenantName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTenantName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tenantName, other.tenantName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDomain()).compareTo(other.isSetDomain());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDomain()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.domain, other.domain);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetEmailAddress()).compareTo(other.isSetEmailAddress());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEmailAddress()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.emailAddress, other.emailAddress);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTenantAcronym()).compareTo(other.isSetTenantAcronym());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTenantAcronym()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tenantAcronym, other.tenantAcronym);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTenantURL()).compareTo(other.isSetTenantURL());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTenantURL()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tenantURL, other.tenantURL);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTenantPublicAbstract()).compareTo(other.isSetTenantPublicAbstract());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTenantPublicAbstract()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tenantPublicAbstract, other.tenantPublicAbstract);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReviewProposalDescription()).compareTo(other.isSetReviewProposalDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReviewProposalDescription()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reviewProposalDescription, other.reviewProposalDescription);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTenantAdminFirstName()).compareTo(other.isSetTenantAdminFirstName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTenantAdminFirstName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tenantAdminFirstName, other.tenantAdminFirstName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTenantAdminLastName()).compareTo(other.isSetTenantAdminLastName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTenantAdminLastName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tenantAdminLastName, other.tenantAdminLastName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetTenantAdminEmail()).compareTo(other.isSetTenantAdminEmail());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTenantAdminEmail()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tenantAdminEmail, other.tenantAdminEmail);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetIdentityServerUserName()).compareTo(other.isSetIdentityServerUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIdentityServerUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.identityServerUserName, other.identityServerUserName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetIdentityServerPasswordToken()).compareTo(other.isSetIdentityServerPasswordToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIdentityServerPasswordToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.identityServerPasswordToken, other.identityServerPasswordToken);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDeclinedReason()).compareTo(other.isSetDeclinedReason());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDeclinedReason()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.declinedReason, other.declinedReason);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOauthClientId()).compareTo(other.isSetOauthClientId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOauthClientId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.oauthClientId, other.oauthClientId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOauthClientSecret()).compareTo(other.isSetOauthClientSecret());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOauthClientSecret()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.oauthClientSecret, other.oauthClientSecret);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetRequestCreationTime()).compareTo(other.isSetRequestCreationTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRequestCreationTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.requestCreationTime, other.requestCreationTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetRequesterUsername()).compareTo(other.isSetRequesterUsername());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetRequesterUsername()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.requesterUsername, other.requesterUsername);
+      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 {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("Tenant(");
+    boolean first = true;
+
+    sb.append("tenantId:");
+    if (this.tenantId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.tenantId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("tenantApprovalStatus:");
+    if (this.tenantApprovalStatus == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.tenantApprovalStatus);
+    }
+    first = false;
+    if (isSetTenantName()) {
+      if (!first) sb.append(", ");
+      sb.append("tenantName:");
+      if (this.tenantName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.tenantName);
+      }
+      first = false;
+    }
+    if (isSetDomain()) {
+      if (!first) sb.append(", ");
+      sb.append("domain:");
+      if (this.domain == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.domain);
+      }
+      first = false;
+    }
+    if (isSetEmailAddress()) {
+      if (!first) sb.append(", ");
+      sb.append("emailAddress:");
+      if (this.emailAddress == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.emailAddress);
+      }
+      first = false;
+    }
+    if (isSetTenantAcronym()) {
+      if (!first) sb.append(", ");
+      sb.append("tenantAcronym:");
+      if (this.tenantAcronym == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.tenantAcronym);
+      }
+      first = false;
+    }
+    if (isSetTenantURL()) {
+      if (!first) sb.append(", ");
+      sb.append("tenantURL:");
+      if (this.tenantURL == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.tenantURL);
+      }
+      first = false;
+    }
+    if (isSetTenantPublicAbstract()) {
+      if (!first) sb.append(", ");
+      sb.append("tenantPublicAbstract:");
+      if (this.tenantPublicAbstract == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.tenantPublicAbstract);
+      }
+      first = false;
+    }
+    if (isSetReviewProposalDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("reviewProposalDescription:");
+      if (this.reviewProposalDescription == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.reviewProposalDescription);
+      }
+      first = false;
+    }
+    if (isSetTenantAdminFirstName()) {
+      if (!first) sb.append(", ");
+      sb.append("tenantAdminFirstName:");
+      if (this.tenantAdminFirstName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.tenantAdminFirstName);
+      }
+      first = false;
+    }
+    if (isSetTenantAdminLastName()) {
+      if (!first) sb.append(", ");
+      sb.append("tenantAdminLastName:");
+      if (this.tenantAdminLastName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.tenantAdminLastName);
+      }
+      first = false;
+    }
+    if (isSetTenantAdminEmail()) {
+      if (!first) sb.append(", ");
+      sb.append("tenantAdminEmail:");
+      if (this.tenantAdminEmail == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.tenantAdminEmail);
+      }
+      first = false;
+    }
+    if (isSetIdentityServerUserName()) {
+      if (!first) sb.append(", ");
+      sb.append("identityServerUserName:");
+      if (this.identityServerUserName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.identityServerUserName);
+      }
+      first = false;
+    }
+    if (isSetIdentityServerPasswordToken()) {
+      if (!first) sb.append(", ");
+      sb.append("identityServerPasswordToken:");
+      if (this.identityServerPasswordToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.identityServerPasswordToken);
+      }
+      first = false;
+    }
+    if (isSetDeclinedReason()) {
+      if (!first) sb.append(", ");
+      sb.append("declinedReason:");
+      if (this.declinedReason == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.declinedReason);
+      }
+      first = false;
+    }
+    if (isSetOauthClientId()) {
+      if (!first) sb.append(", ");
+      sb.append("oauthClientId:");
+      if (this.oauthClientId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.oauthClientId);
+      }
+      first = false;
+    }
+    if (isSetOauthClientSecret()) {
+      if (!first) sb.append(", ");
+      sb.append("oauthClientSecret:");
+      if (this.oauthClientSecret == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.oauthClientSecret);
+      }
+      first = false;
+    }
+    if (isSetRequestCreationTime()) {
+      if (!first) sb.append(", ");
+      sb.append("requestCreationTime:");
+      sb.append(this.requestCreationTime);
+      first = false;
+    }
+    if (isSetRequesterUsername()) {
+      if (!first) sb.append(", ");
+      sb.append("requesterUsername:");
+      if (this.requesterUsername == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.requesterUsername);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetTenantId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'tenantId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetTenantApprovalStatus()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'tenantApprovalStatus' 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 {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      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 TenantStandardSchemeFactory implements SchemeFactory {
+    public TenantStandardScheme getScheme() {
+      return new TenantStandardScheme();
+    }
+  }
+
+  private static class TenantStandardScheme extends StandardScheme<Tenant> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Tenant 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: // TENANT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tenantId = iprot.readString();
+              struct.setTenantIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // TENANT_APPROVAL_STATUS
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.tenantApprovalStatus = org.apache.airavata.model.tenant.TenantApprovalStatus.findByValue(iprot.readI32());
+              struct.setTenantApprovalStatusIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // TENANT_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tenantName = iprot.readString();
+              struct.setTenantNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // DOMAIN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.domain = iprot.readString();
+              struct.setDomainIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // EMAIL_ADDRESS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.emailAddress = iprot.readString();
+              struct.setEmailAddressIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // TENANT_ACRONYM
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tenantAcronym = iprot.readString();
+              struct.setTenantAcronymIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // TENANT_URL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tenantURL = iprot.readString();
+              struct.setTenantURLIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // TENANT_PUBLIC_ABSTRACT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tenantPublicAbstract = iprot.readString();
+              struct.setTenantPublicAbstractIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // REVIEW_PROPOSAL_DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.reviewProposalDescription = iprot.readString();
+              struct.setReviewProposalDescriptionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // TENANT_ADMIN_FIRST_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tenantAdminFirstName = iprot.readString();
+              struct.setTenantAdminFirstNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // TENANT_ADMIN_LAST_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tenantAdminLastName = iprot.readString();
+              struct.setTenantAdminLastNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // TENANT_ADMIN_EMAIL
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tenantAdminEmail = iprot.readString();
+              struct.setTenantAdminEmailIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 13: // IDENTITY_SERVER_USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.identityServerUserName = iprot.readString();
+              struct.setIdentityServerUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 14: // IDENTITY_SERVER_PASSWORD_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.identityServerPasswordToken = iprot.readString();
+              struct.setIdentityServerPasswordTokenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 15: // DECLINED_REASON
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.declinedReason = iprot.readString();
+              struct.setDeclinedReasonIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 16: // OAUTH_CLIENT_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.oauthClientId = iprot.readString();
+              struct.setOauthClientIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 17: // OAUTH_CLIENT_SECRET
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.oauthClientSecret = iprot.readString();
+              struct.setOauthClientSecretIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 18: // REQUEST_CREATION_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.requestCreationTime = iprot.readI64();
+              struct.setRequestCreationTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 19: // REQUESTER_USERNAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.requesterUsername = iprot.readString();
+              struct.setRequesterUsernameIsSet(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, Tenant struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.tenantId != null) {
+        oprot.writeFieldBegin(TENANT_ID_FIELD_DESC);
+        oprot.writeString(struct.tenantId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.tenantApprovalStatus != null) {
+        oprot.writeFieldBegin(TENANT_APPROVAL_STATUS_FIELD_DESC);
+        oprot.writeI32(struct.tenantApprovalStatus.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.tenantName != null) {
+        if (struct.isSetTenantName()) {
+          oprot.writeFieldBegin(TENANT_NAME_FIELD_DESC);
+          oprot.writeString(struct.tenantName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.domain != null) {
+        if (struct.isSetDomain()) {
+          oprot.writeFieldBegin(DOMAIN_FIELD_DESC);
+          oprot.writeString(struct.domain);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.emailAddress != null) {
+        if (struct.isSetEmailAddress()) {
+          oprot.writeFieldBegin(EMAIL_ADDRESS_FIELD_DESC);
+          oprot.writeString(struct.emailAddress);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.tenantAcronym != null) {
+        if (struct.isSetTenantAcronym()) {
+          oprot.writeFieldBegin(TENANT_ACRONYM_FIELD_DESC);
+          oprot.writeString(struct.tenantAcronym);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.tenantURL != null) {
+        if (struct.isSetTenantURL()) {
+          oprot.writeFieldBegin(TENANT_URL_FIELD_DESC);
+          oprot.writeString(struct.tenantURL);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.tenantPublicAbstract != null) {
+        if (struct.isSetTenantPublicAbstract()) {
+          oprot.writeFieldBegin(TENANT_PUBLIC_ABSTRACT_FIELD_DESC);
+          oprot.writeString(struct.tenantPublicAbstract);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.reviewProposalDescription != null) {
+        if (struct.isSetReviewProposalDescription()) {
+          oprot.writeFieldBegin(REVIEW_PROPOSAL_DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.reviewProposalDescription);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.tenantAdminFirstName != null) {
+        if (struct.isSetTenantAdminFirstName()) {
+          oprot.writeFieldBegin(TENANT_ADMIN_FIRST_NAME_FIELD_DESC);
+          oprot.writeString(struct.tenantAdminFirstName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.tenantAdminLastName != null) {
+        if (struct.isSetTenantAdminLastName()) {
+          oprot.writeFieldBegin(TENANT_ADMIN_LAST_NAME_FIELD_DESC);
+          oprot.writeString(struct.tenantAdminLastName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.tenantAdminEmail != null) {
+        if (struct.isSetTenantAdminEmail()) {
+          oprot.writeFieldBegin(TENANT_ADMIN_EMAIL_FIELD_DESC);
+          oprot.writeString(struct.tenantAdminEmail);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.identityServerUserName != null) {
+        if (struct.isSetIdentityServerUserName()) {
+          oprot.writeFieldBegin(IDENTITY_SERVER_USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.identityServerUserName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.identityServerPasswordToken != null) {
+        if (struct.isSetIdentityServerPasswordToken()) {
+          oprot.writeFieldBegin(IDENTITY_SERVER_PASSWORD_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.identityServerPasswordToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.declinedReason != null) {
+        if (struct.isSetDeclinedReason()) {
+          oprot.writeFieldBegin(DECLINED_REASON_FIELD_DESC);
+          oprot.writeString(struct.declinedReason);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.oauthClientId != null) {
+        if (struct.isSetOauthClientId()) {
+          oprot.writeFieldBegin(OAUTH_CLIENT_ID_FIELD_DESC);
+          oprot.writeString(struct.oauthClientId);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.oauthClientSecret != null) {
+        if (struct.isSetOauthClientSecret()) {
+          oprot.writeFieldBegin(OAUTH_CLIENT_SECRET_FIELD_DESC);
+          oprot.writeString(struct.oauthClientSecret);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetRequestCreationTime()) {
+        oprot.writeFieldBegin(REQUEST_CREATION_TIME_FIELD_DESC);
+        oprot.writeI64(struct.requestCreationTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.requesterUsername != null) {
+        if (struct.isSetRequesterUsername()) {
+          oprot.writeFieldBegin(REQUESTER_USERNAME_FIELD_DESC);
+          oprot.writeString(struct.requesterUsername);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TenantTupleSchemeFactory implements SchemeFactory {
+    public TenantTupleScheme getScheme() {
+      return new TenantTupleScheme();
+    }
+  }
+
+  private static class TenantTupleScheme extends TupleScheme<Tenant> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Tenant struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.tenantId);
+      oprot.writeI32(struct.tenantApprovalStatus.getValue());
+      BitSet optionals = new BitSet();
+      if (struct.isSetTenantName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetDomain()) {
+        optionals.set(1);
+      }
+      if (struct.isSetEmailAddress()) {
+        optionals.set(2);
+      }
+      if (struct.isSetTenantAcronym()) {
+        optionals.set(3);
+      }
+      if (struct.isSetTenantURL()) {
+        optionals.set(4);
+      }
+      if (struct.isSetTenantPublicAbstract()) {
+        optionals.set(5);
+      }
+      if (struct.isSetReviewProposalDescription()) {
+        optionals.set(6);
+      }
+      if (struct.isSetTenantAdminFirstName()) {
+        optionals.set(7);
+      }
+      if (struct.isSetTenantAdminLastName()) {
+        optionals.set(8);
+      }
+      if (struct.isSetTenantAdminEmail()) {
+        optionals.set(9);
+      }
+      if (struct.isSetIdentityServerUserName()) {
+        optionals.set(10);
+      }
+      if (struct.isSetIdentityServerPasswordToken()) {
+        optionals.set(11);
+      }
+      if (struct.isSetDeclinedReason()) {
+        optionals.set(12);
+      }
+      if (struct.isSetOauthClientId()) {
+        optionals.set(13);
+      }
+      if (struct.isSetOauthClientSecret()) {
+        optionals.set(14);
+      }
+      if (struct.isSetRequestCreationTime()) {
+        optionals.set(15);
+      }
+      if (struct.isSetRequesterUsername()) {
+        optionals.set(16);
+      }
+      oprot.writeBitSet(optionals, 17);
+      if (struct.isSetTenantName()) {
+        oprot.writeString(struct.tenantName);
+      }
+      if (struct.isSetDomain()) {
+        oprot.writeString(struct.domain);
+      }
+      if (struct.isSetEmailAddress()) {
+        oprot.writeString(struct.emailAddress);
+      }
+      if (struct.isSetTenantAcronym()) {
+        oprot.writeString(struct.tenantAcronym);
+      }
+      if (struct.isSetTenantURL()) {
+        oprot.writeString(struct.tenantURL);
+      }
+      if (struct.isSetTenantPublicAbstract()) {
+        oprot.writeString(struct.tenantPublicAbstract);
+      }
+      if (struct.isSetReviewProposalDescription()) {
+        oprot.writeString(struct.reviewProposalDescription);
+      }
+      if (struct.isSetTenantAdminFirstName()) {
+        oprot.writeString(struct.tenantAdminFirstName);
+      }
+      if (struct.isSetTenantAdminLastName()) {
+        oprot.writeString(struct.tenantAdminLastName);
+      }
+      if (struct.isSetTenantAdminEmail()) {
+        oprot.writeString(struct.tenantAdminEmail);
+      }
+      if (struct.isSetIdentityServerUserName()) {
+        oprot.writeString(struct.identityServerUserName);
+      }
+      if (struct.isSetIdentityServerPasswordToken()) {
+        oprot.writeString(struct.identityServerPasswordToken);
+      }
+      if (struct.isSetDeclinedReason()) {
+        oprot.writeString(struct.declinedReason);
+      }
+      if (struct.isSetOauthClientId()) {
+        oprot.writeString(struct.oauthClientId);
+      }
+      if (struct.isSetOauthClientSecret()) {
+        oprot.writeString(struct.oauthClientSecret);
+      }
+      if (struct.isSetRequestCreationTime()) {
+        oprot.writeI64(struct.requestCreationTime);
+      }
+      if (struct.isSetRequesterUsername()) {
+        oprot.writeString(struct.requesterUsername);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Tenant struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.tenantId = iprot.readString();
+      struct.setTenantIdIsSet(true);
+      struct.tenantApprovalStatus = org.apache.airavata.model.tenant.TenantApprovalStatus.findByValue(iprot.readI32());
+      struct.setTenantApprovalStatusIsSet(true);
+      BitSet incoming = iprot.readBitSet(17);
+      if (incoming.get(0)) {
+        struct.tenantName = iprot.readString();
+        struct.setTenantNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.domain = iprot.readString();
+        struct.setDomainIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.emailAddress = iprot.readString();
+        struct.setEmailAddressIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.tenantAcronym = iprot.readString();
+        struct.setTenantAcronymIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.tenantURL = iprot.readString();
+        struct.setTenantURLIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.tenantPublicAbstract = iprot.readString();
+        struct.setTenantPublicAbstractIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.reviewProposalDescription = iprot.readString();
+        struct.setReviewProposalDescriptionIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.tenantAdminFirstName = iprot.readString();
+        struct.setTenantAdminFirstNameIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.tenantAdminLastName = iprot.readString();
+        struct.setTenantAdminLastNameIsSet(true);
+      }
+      if (incoming.get(9)) {
+        struct.tenantAdminEmail = iprot.readString();
+        struct.setTenantAdminEmailIsSet(true);
+      }
+      if (incoming.get(10)) {
+        struct.identityServerUserName = iprot.readString();
+        struct.setIdentityServerUserNameIsSet(true);
+      }
+      if (incoming.get(11)) {
+        struct.identityServerPasswordToken = iprot.readString();
+        struct.setIdentityServerPasswordTokenIsSet(true);
+      }
+      if (incoming.get(12)) {
+        struct.declinedReason = iprot.readString();
+        struct.setDeclinedReasonIsSet(true);
+      }
+      if (incoming.get(13)) {
+        struct.oauthClientId = iprot.readString();
+        struct.setOauthClientIdIsSet(true);
+      }
+      if (incoming.get(14)) {
+        struct.oauthClientSecret = iprot.readString();
+        struct.setOauthClientSecretIsSet(true);
+      }
+      if (incoming.get(15)) {
+        struct.requestCreationTime = iprot.readI64();
+        struct.setRequestCreationTimeIsSet(true);
+      }
+      if (incoming.get(16)) {
+        struct.requesterUsername = iprot.readString();
+        struct.setRequesterUsernameIsSet(true);
+      }
+    }
+  }
+
+}
+


[08/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/error/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/error/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/error/ttypes.py
index 522cc18..ba5b056 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/error/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/error/ttypes.py
@@ -495,6 +495,82 @@ class AuthorizationException(TException):
   def __ne__(self, other):
     return not (self == other)
 
+class DuplicateEntryException(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
+
+
+  Attributes:
+   - message
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'message', None, None, ), # 1
+  )
+
+  def __init__(self, message=None,):
+    self.message = message
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.message = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('DuplicateEntryException')
+    if self.message is not None:
+      oprot.writeFieldBegin('message', TType.STRING, 1)
+      oprot.writeString(self.message)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.message is None:
+      raise TProtocol.TProtocolException(message='Required field message is unset!')
+    return
+
+
+  def __str__(self):
+    return repr(self)
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.message)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
 class AiravataClientException(TException):
   """
   This exception is thrown by Airavata Services when a call fails as a result of

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
index 422eae8..e829011 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
@@ -27,6 +27,7 @@ import apache.airavata.model.data.movement.ttypes
 import apache.airavata.model.workflow.ttypes
 import apache.airavata.model.data.replica.ttypes
 import apache.airavata.model.group.ttypes
+import apache.airavata.model.user.ttypes
 
 
 from thrift.transport import TTransport

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/ttypes.py
index e40994d..22adc42 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/data/replica/ttypes.py
@@ -65,52 +65,52 @@ class DataProductType:
   }
 
 
-class DataProductModel:
+class DataReplicaLocationModel:
   """
   Attributes:
+   - replicaId
    - productUri
-   - gatewayId
-   - parentProductUri
-   - productName
-   - productDescription
-   - ownerName
-   - dataProductType
-   - productSize
+   - replicaName
+   - replicaDescription
    - creationTime
    - lastModifiedTime
-   - productMetadata
-   - replicaLocations
+   - validUntilTime
+   - replicaLocationCategory
+   - replicaPersistentType
+   - storageResourceId
+   - filePath
+   - replicaMetadata
   """
 
   thrift_spec = (
     None, # 0
-    (1, TType.STRING, 'productUri', None, None, ), # 1
-    (2, TType.STRING, 'gatewayId', None, None, ), # 2
-    (3, TType.STRING, 'parentProductUri', None, None, ), # 3
-    (4, TType.STRING, 'productName', None, None, ), # 4
-    (5, TType.STRING, 'productDescription', None, None, ), # 5
-    (6, TType.STRING, 'ownerName', None, None, ), # 6
-    (7, TType.I32, 'dataProductType', None, None, ), # 7
-    (8, TType.I32, 'productSize', None, None, ), # 8
-    (9, TType.I64, 'creationTime', None, None, ), # 9
-    (10, TType.I64, 'lastModifiedTime', None, None, ), # 10
-    (11, TType.MAP, 'productMetadata', (TType.STRING,None,TType.STRING,None), None, ), # 11
-    (12, TType.LIST, 'replicaLocations', (TType.STRUCT,(DataReplicaLocationModel, DataReplicaLocationModel.thrift_spec)), None, ), # 12
+    (1, TType.STRING, 'replicaId', None, None, ), # 1
+    (2, TType.STRING, 'productUri', None, None, ), # 2
+    (3, TType.STRING, 'replicaName', None, None, ), # 3
+    (4, TType.STRING, 'replicaDescription', None, None, ), # 4
+    (5, TType.I64, 'creationTime', None, None, ), # 5
+    (6, TType.I64, 'lastModifiedTime', None, None, ), # 6
+    (7, TType.I64, 'validUntilTime', None, None, ), # 7
+    (8, TType.I32, 'replicaLocationCategory', None, None, ), # 8
+    (9, TType.I32, 'replicaPersistentType', None, None, ), # 9
+    (10, TType.STRING, 'storageResourceId', None, None, ), # 10
+    (11, TType.STRING, 'filePath', None, None, ), # 11
+    (12, TType.MAP, 'replicaMetadata', (TType.STRING,None,TType.STRING,None), None, ), # 12
   )
 
-  def __init__(self, productUri=None, gatewayId=None, parentProductUri=None, productName=None, productDescription=None, ownerName=None, dataProductType=None, productSize=None, creationTime=None, lastModifiedTime=None, productMetadata=None, replicaLocations=None,):
+  def __init__(self, replicaId=None, productUri=None, replicaName=None, replicaDescription=None, creationTime=None, lastModifiedTime=None, validUntilTime=None, replicaLocationCategory=None, replicaPersistentType=None, storageResourceId=None, filePath=None, replicaMetadata=None,):
+    self.replicaId = replicaId
     self.productUri = productUri
-    self.gatewayId = gatewayId
-    self.parentProductUri = parentProductUri
-    self.productName = productName
-    self.productDescription = productDescription
-    self.ownerName = ownerName
-    self.dataProductType = dataProductType
-    self.productSize = productSize
+    self.replicaName = replicaName
+    self.replicaDescription = replicaDescription
     self.creationTime = creationTime
     self.lastModifiedTime = lastModifiedTime
-    self.productMetadata = productMetadata
-    self.replicaLocations = replicaLocations
+    self.validUntilTime = validUntilTime
+    self.replicaLocationCategory = replicaLocationCategory
+    self.replicaPersistentType = replicaPersistentType
+    self.storageResourceId = storageResourceId
+    self.filePath = filePath
+    self.replicaMetadata = replicaMetadata
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -123,76 +123,70 @@ class DataProductModel:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.productUri = iprot.readString()
+          self.replicaId = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.gatewayId = iprot.readString()
+          self.productUri = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.parentProductUri = iprot.readString()
+          self.replicaName = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.productName = iprot.readString()
+          self.replicaDescription = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 5:
-        if ftype == TType.STRING:
-          self.productDescription = iprot.readString()
+        if ftype == TType.I64:
+          self.creationTime = iprot.readI64()
         else:
           iprot.skip(ftype)
       elif fid == 6:
-        if ftype == TType.STRING:
-          self.ownerName = iprot.readString()
+        if ftype == TType.I64:
+          self.lastModifiedTime = iprot.readI64()
         else:
           iprot.skip(ftype)
       elif fid == 7:
-        if ftype == TType.I32:
-          self.dataProductType = iprot.readI32()
+        if ftype == TType.I64:
+          self.validUntilTime = iprot.readI64()
         else:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.I32:
-          self.productSize = iprot.readI32()
+          self.replicaLocationCategory = iprot.readI32()
         else:
           iprot.skip(ftype)
       elif fid == 9:
-        if ftype == TType.I64:
-          self.creationTime = iprot.readI64()
+        if ftype == TType.I32:
+          self.replicaPersistentType = iprot.readI32()
         else:
           iprot.skip(ftype)
       elif fid == 10:
-        if ftype == TType.I64:
-          self.lastModifiedTime = iprot.readI64()
+        if ftype == TType.STRING:
+          self.storageResourceId = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 11:
+        if ftype == TType.STRING:
+          self.filePath = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 12:
         if ftype == TType.MAP:
-          self.productMetadata = {}
+          self.replicaMetadata = {}
           (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
           for _i4 in xrange(_size0):
             _key5 = iprot.readString()
             _val6 = iprot.readString()
-            self.productMetadata[_key5] = _val6
+            self.replicaMetadata[_key5] = _val6
           iprot.readMapEnd()
         else:
           iprot.skip(ftype)
-      elif fid == 12:
-        if ftype == TType.LIST:
-          self.replicaLocations = []
-          (_etype10, _size7) = iprot.readListBegin()
-          for _i11 in xrange(_size7):
-            _elem12 = DataReplicaLocationModel()
-            _elem12.read(iprot)
-            self.replicaLocations.append(_elem12)
-          iprot.readListEnd()
-        else:
-          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -202,62 +196,59 @@ class DataProductModel:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('DataProductModel')
+    oprot.writeStructBegin('DataReplicaLocationModel')
+    if self.replicaId is not None:
+      oprot.writeFieldBegin('replicaId', TType.STRING, 1)
+      oprot.writeString(self.replicaId)
+      oprot.writeFieldEnd()
     if self.productUri is not None:
-      oprot.writeFieldBegin('productUri', TType.STRING, 1)
+      oprot.writeFieldBegin('productUri', TType.STRING, 2)
       oprot.writeString(self.productUri)
       oprot.writeFieldEnd()
-    if self.gatewayId is not None:
-      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
-      oprot.writeString(self.gatewayId)
+    if self.replicaName is not None:
+      oprot.writeFieldBegin('replicaName', TType.STRING, 3)
+      oprot.writeString(self.replicaName)
       oprot.writeFieldEnd()
-    if self.parentProductUri is not None:
-      oprot.writeFieldBegin('parentProductUri', TType.STRING, 3)
-      oprot.writeString(self.parentProductUri)
+    if self.replicaDescription is not None:
+      oprot.writeFieldBegin('replicaDescription', TType.STRING, 4)
+      oprot.writeString(self.replicaDescription)
       oprot.writeFieldEnd()
-    if self.productName is not None:
-      oprot.writeFieldBegin('productName', TType.STRING, 4)
-      oprot.writeString(self.productName)
+    if self.creationTime is not None:
+      oprot.writeFieldBegin('creationTime', TType.I64, 5)
+      oprot.writeI64(self.creationTime)
       oprot.writeFieldEnd()
-    if self.productDescription is not None:
-      oprot.writeFieldBegin('productDescription', TType.STRING, 5)
-      oprot.writeString(self.productDescription)
+    if self.lastModifiedTime is not None:
+      oprot.writeFieldBegin('lastModifiedTime', TType.I64, 6)
+      oprot.writeI64(self.lastModifiedTime)
       oprot.writeFieldEnd()
-    if self.ownerName is not None:
-      oprot.writeFieldBegin('ownerName', TType.STRING, 6)
-      oprot.writeString(self.ownerName)
+    if self.validUntilTime is not None:
+      oprot.writeFieldBegin('validUntilTime', TType.I64, 7)
+      oprot.writeI64(self.validUntilTime)
       oprot.writeFieldEnd()
-    if self.dataProductType is not None:
-      oprot.writeFieldBegin('dataProductType', TType.I32, 7)
-      oprot.writeI32(self.dataProductType)
+    if self.replicaLocationCategory is not None:
+      oprot.writeFieldBegin('replicaLocationCategory', TType.I32, 8)
+      oprot.writeI32(self.replicaLocationCategory)
       oprot.writeFieldEnd()
-    if self.productSize is not None:
-      oprot.writeFieldBegin('productSize', TType.I32, 8)
-      oprot.writeI32(self.productSize)
+    if self.replicaPersistentType is not None:
+      oprot.writeFieldBegin('replicaPersistentType', TType.I32, 9)
+      oprot.writeI32(self.replicaPersistentType)
       oprot.writeFieldEnd()
-    if self.creationTime is not None:
-      oprot.writeFieldBegin('creationTime', TType.I64, 9)
-      oprot.writeI64(self.creationTime)
+    if self.storageResourceId is not None:
+      oprot.writeFieldBegin('storageResourceId', TType.STRING, 10)
+      oprot.writeString(self.storageResourceId)
       oprot.writeFieldEnd()
-    if self.lastModifiedTime is not None:
-      oprot.writeFieldBegin('lastModifiedTime', TType.I64, 10)
-      oprot.writeI64(self.lastModifiedTime)
+    if self.filePath is not None:
+      oprot.writeFieldBegin('filePath', TType.STRING, 11)
+      oprot.writeString(self.filePath)
       oprot.writeFieldEnd()
-    if self.productMetadata is not None:
-      oprot.writeFieldBegin('productMetadata', TType.MAP, 11)
-      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.productMetadata))
-      for kiter13,viter14 in self.productMetadata.items():
-        oprot.writeString(kiter13)
-        oprot.writeString(viter14)
+    if self.replicaMetadata is not None:
+      oprot.writeFieldBegin('replicaMetadata', TType.MAP, 12)
+      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.replicaMetadata))
+      for kiter7,viter8 in self.replicaMetadata.items():
+        oprot.writeString(kiter7)
+        oprot.writeString(viter8)
       oprot.writeMapEnd()
       oprot.writeFieldEnd()
-    if self.replicaLocations is not None:
-      oprot.writeFieldBegin('replicaLocations', TType.LIST, 12)
-      oprot.writeListBegin(TType.STRUCT, len(self.replicaLocations))
-      for iter15 in self.replicaLocations:
-        iter15.write(oprot)
-      oprot.writeListEnd()
-      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -267,18 +258,18 @@ class DataProductModel:
 
   def __hash__(self):
     value = 17
+    value = (value * 31) ^ hash(self.replicaId)
     value = (value * 31) ^ hash(self.productUri)
-    value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.parentProductUri)
-    value = (value * 31) ^ hash(self.productName)
-    value = (value * 31) ^ hash(self.productDescription)
-    value = (value * 31) ^ hash(self.ownerName)
-    value = (value * 31) ^ hash(self.dataProductType)
-    value = (value * 31) ^ hash(self.productSize)
+    value = (value * 31) ^ hash(self.replicaName)
+    value = (value * 31) ^ hash(self.replicaDescription)
     value = (value * 31) ^ hash(self.creationTime)
     value = (value * 31) ^ hash(self.lastModifiedTime)
-    value = (value * 31) ^ hash(self.productMetadata)
-    value = (value * 31) ^ hash(self.replicaLocations)
+    value = (value * 31) ^ hash(self.validUntilTime)
+    value = (value * 31) ^ hash(self.replicaLocationCategory)
+    value = (value * 31) ^ hash(self.replicaPersistentType)
+    value = (value * 31) ^ hash(self.storageResourceId)
+    value = (value * 31) ^ hash(self.filePath)
+    value = (value * 31) ^ hash(self.replicaMetadata)
     return value
 
   def __repr__(self):
@@ -292,52 +283,52 @@ class DataProductModel:
   def __ne__(self, other):
     return not (self == other)
 
-class DataReplicaLocationModel:
+class DataProductModel:
   """
   Attributes:
-   - replicaId
    - productUri
-   - replicaName
-   - replicaDescription
+   - gatewayId
+   - parentProductUri
+   - productName
+   - productDescription
+   - ownerName
+   - dataProductType
+   - productSize
    - creationTime
    - lastModifiedTime
-   - validUntilTime
-   - replicaLocationCategory
-   - replicaPersistentType
-   - storageResourceId
-   - filePath
-   - replicaMetadata
+   - productMetadata
+   - replicaLocations
   """
 
   thrift_spec = (
     None, # 0
-    (1, TType.STRING, 'replicaId', None, None, ), # 1
-    (2, TType.STRING, 'productUri', None, None, ), # 2
-    (3, TType.STRING, 'replicaName', None, None, ), # 3
-    (4, TType.STRING, 'replicaDescription', None, None, ), # 4
-    (5, TType.I64, 'creationTime', None, None, ), # 5
-    (6, TType.I64, 'lastModifiedTime', None, None, ), # 6
-    (7, TType.I64, 'validUntilTime', None, None, ), # 7
-    (8, TType.I32, 'replicaLocationCategory', None, None, ), # 8
-    (9, TType.I32, 'replicaPersistentType', None, None, ), # 9
-    (10, TType.STRING, 'storageResourceId', None, None, ), # 10
-    (11, TType.STRING, 'filePath', None, None, ), # 11
-    (12, TType.MAP, 'replicaMetadata', (TType.STRING,None,TType.STRING,None), None, ), # 12
+    (1, TType.STRING, 'productUri', None, None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRING, 'parentProductUri', None, None, ), # 3
+    (4, TType.STRING, 'productName', None, None, ), # 4
+    (5, TType.STRING, 'productDescription', None, None, ), # 5
+    (6, TType.STRING, 'ownerName', None, None, ), # 6
+    (7, TType.I32, 'dataProductType', None, None, ), # 7
+    (8, TType.I32, 'productSize', None, None, ), # 8
+    (9, TType.I64, 'creationTime', None, None, ), # 9
+    (10, TType.I64, 'lastModifiedTime', None, None, ), # 10
+    (11, TType.MAP, 'productMetadata', (TType.STRING,None,TType.STRING,None), None, ), # 11
+    (12, TType.LIST, 'replicaLocations', (TType.STRUCT,(DataReplicaLocationModel, DataReplicaLocationModel.thrift_spec)), None, ), # 12
   )
 
-  def __init__(self, replicaId=None, productUri=None, replicaName=None, replicaDescription=None, creationTime=None, lastModifiedTime=None, validUntilTime=None, replicaLocationCategory=None, replicaPersistentType=None, storageResourceId=None, filePath=None, replicaMetadata=None,):
-    self.replicaId = replicaId
+  def __init__(self, productUri=None, gatewayId=None, parentProductUri=None, productName=None, productDescription=None, ownerName=None, dataProductType=None, productSize=None, creationTime=None, lastModifiedTime=None, productMetadata=None, replicaLocations=None,):
     self.productUri = productUri
-    self.replicaName = replicaName
-    self.replicaDescription = replicaDescription
+    self.gatewayId = gatewayId
+    self.parentProductUri = parentProductUri
+    self.productName = productName
+    self.productDescription = productDescription
+    self.ownerName = ownerName
+    self.dataProductType = dataProductType
+    self.productSize = productSize
     self.creationTime = creationTime
     self.lastModifiedTime = lastModifiedTime
-    self.validUntilTime = validUntilTime
-    self.replicaLocationCategory = replicaLocationCategory
-    self.replicaPersistentType = replicaPersistentType
-    self.storageResourceId = storageResourceId
-    self.filePath = filePath
-    self.replicaMetadata = replicaMetadata
+    self.productMetadata = productMetadata
+    self.replicaLocations = replicaLocations
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -350,68 +341,74 @@ class DataReplicaLocationModel:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.replicaId = iprot.readString()
+          self.productUri = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.productUri = iprot.readString()
+          self.gatewayId = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.replicaName = iprot.readString()
+          self.parentProductUri = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.replicaDescription = iprot.readString()
+          self.productName = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 5:
-        if ftype == TType.I64:
-          self.creationTime = iprot.readI64()
+        if ftype == TType.STRING:
+          self.productDescription = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 6:
-        if ftype == TType.I64:
-          self.lastModifiedTime = iprot.readI64()
+        if ftype == TType.STRING:
+          self.ownerName = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 7:
-        if ftype == TType.I64:
-          self.validUntilTime = iprot.readI64()
+        if ftype == TType.I32:
+          self.dataProductType = iprot.readI32()
         else:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.I32:
-          self.replicaLocationCategory = iprot.readI32()
+          self.productSize = iprot.readI32()
         else:
           iprot.skip(ftype)
       elif fid == 9:
-        if ftype == TType.I32:
-          self.replicaPersistentType = iprot.readI32()
+        if ftype == TType.I64:
+          self.creationTime = iprot.readI64()
         else:
           iprot.skip(ftype)
       elif fid == 10:
-        if ftype == TType.STRING:
-          self.storageResourceId = iprot.readString()
+        if ftype == TType.I64:
+          self.lastModifiedTime = iprot.readI64()
         else:
           iprot.skip(ftype)
       elif fid == 11:
-        if ftype == TType.STRING:
-          self.filePath = iprot.readString()
+        if ftype == TType.MAP:
+          self.productMetadata = {}
+          (_ktype10, _vtype11, _size9 ) = iprot.readMapBegin()
+          for _i13 in xrange(_size9):
+            _key14 = iprot.readString()
+            _val15 = iprot.readString()
+            self.productMetadata[_key14] = _val15
+          iprot.readMapEnd()
         else:
           iprot.skip(ftype)
       elif fid == 12:
-        if ftype == TType.MAP:
-          self.replicaMetadata = {}
-          (_ktype17, _vtype18, _size16 ) = iprot.readMapBegin()
+        if ftype == TType.LIST:
+          self.replicaLocations = []
+          (_etype19, _size16) = iprot.readListBegin()
           for _i20 in xrange(_size16):
-            _key21 = iprot.readString()
-            _val22 = iprot.readString()
-            self.replicaMetadata[_key21] = _val22
-          iprot.readMapEnd()
+            _elem21 = DataReplicaLocationModel()
+            _elem21.read(iprot)
+            self.replicaLocations.append(_elem21)
+          iprot.readListEnd()
         else:
           iprot.skip(ftype)
       else:
@@ -423,59 +420,62 @@ class DataReplicaLocationModel:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('DataReplicaLocationModel')
-    if self.replicaId is not None:
-      oprot.writeFieldBegin('replicaId', TType.STRING, 1)
-      oprot.writeString(self.replicaId)
-      oprot.writeFieldEnd()
+    oprot.writeStructBegin('DataProductModel')
     if self.productUri is not None:
-      oprot.writeFieldBegin('productUri', TType.STRING, 2)
+      oprot.writeFieldBegin('productUri', TType.STRING, 1)
       oprot.writeString(self.productUri)
       oprot.writeFieldEnd()
-    if self.replicaName is not None:
-      oprot.writeFieldBegin('replicaName', TType.STRING, 3)
-      oprot.writeString(self.replicaName)
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
       oprot.writeFieldEnd()
-    if self.replicaDescription is not None:
-      oprot.writeFieldBegin('replicaDescription', TType.STRING, 4)
-      oprot.writeString(self.replicaDescription)
+    if self.parentProductUri is not None:
+      oprot.writeFieldBegin('parentProductUri', TType.STRING, 3)
+      oprot.writeString(self.parentProductUri)
       oprot.writeFieldEnd()
-    if self.creationTime is not None:
-      oprot.writeFieldBegin('creationTime', TType.I64, 5)
-      oprot.writeI64(self.creationTime)
+    if self.productName is not None:
+      oprot.writeFieldBegin('productName', TType.STRING, 4)
+      oprot.writeString(self.productName)
       oprot.writeFieldEnd()
-    if self.lastModifiedTime is not None:
-      oprot.writeFieldBegin('lastModifiedTime', TType.I64, 6)
-      oprot.writeI64(self.lastModifiedTime)
+    if self.productDescription is not None:
+      oprot.writeFieldBegin('productDescription', TType.STRING, 5)
+      oprot.writeString(self.productDescription)
       oprot.writeFieldEnd()
-    if self.validUntilTime is not None:
-      oprot.writeFieldBegin('validUntilTime', TType.I64, 7)
-      oprot.writeI64(self.validUntilTime)
+    if self.ownerName is not None:
+      oprot.writeFieldBegin('ownerName', TType.STRING, 6)
+      oprot.writeString(self.ownerName)
       oprot.writeFieldEnd()
-    if self.replicaLocationCategory is not None:
-      oprot.writeFieldBegin('replicaLocationCategory', TType.I32, 8)
-      oprot.writeI32(self.replicaLocationCategory)
+    if self.dataProductType is not None:
+      oprot.writeFieldBegin('dataProductType', TType.I32, 7)
+      oprot.writeI32(self.dataProductType)
       oprot.writeFieldEnd()
-    if self.replicaPersistentType is not None:
-      oprot.writeFieldBegin('replicaPersistentType', TType.I32, 9)
-      oprot.writeI32(self.replicaPersistentType)
+    if self.productSize is not None:
+      oprot.writeFieldBegin('productSize', TType.I32, 8)
+      oprot.writeI32(self.productSize)
       oprot.writeFieldEnd()
-    if self.storageResourceId is not None:
-      oprot.writeFieldBegin('storageResourceId', TType.STRING, 10)
-      oprot.writeString(self.storageResourceId)
+    if self.creationTime is not None:
+      oprot.writeFieldBegin('creationTime', TType.I64, 9)
+      oprot.writeI64(self.creationTime)
       oprot.writeFieldEnd()
-    if self.filePath is not None:
-      oprot.writeFieldBegin('filePath', TType.STRING, 11)
-      oprot.writeString(self.filePath)
+    if self.lastModifiedTime is not None:
+      oprot.writeFieldBegin('lastModifiedTime', TType.I64, 10)
+      oprot.writeI64(self.lastModifiedTime)
       oprot.writeFieldEnd()
-    if self.replicaMetadata is not None:
-      oprot.writeFieldBegin('replicaMetadata', TType.MAP, 12)
-      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.replicaMetadata))
-      for kiter23,viter24 in self.replicaMetadata.items():
-        oprot.writeString(kiter23)
-        oprot.writeString(viter24)
+    if self.productMetadata is not None:
+      oprot.writeFieldBegin('productMetadata', TType.MAP, 11)
+      oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.productMetadata))
+      for kiter22,viter23 in self.productMetadata.items():
+        oprot.writeString(kiter22)
+        oprot.writeString(viter23)
       oprot.writeMapEnd()
       oprot.writeFieldEnd()
+    if self.replicaLocations is not None:
+      oprot.writeFieldBegin('replicaLocations', TType.LIST, 12)
+      oprot.writeListBegin(TType.STRUCT, len(self.replicaLocations))
+      for iter24 in self.replicaLocations:
+        iter24.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -485,18 +485,18 @@ class DataReplicaLocationModel:
 
   def __hash__(self):
     value = 17
-    value = (value * 31) ^ hash(self.replicaId)
     value = (value * 31) ^ hash(self.productUri)
-    value = (value * 31) ^ hash(self.replicaName)
-    value = (value * 31) ^ hash(self.replicaDescription)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.parentProductUri)
+    value = (value * 31) ^ hash(self.productName)
+    value = (value * 31) ^ hash(self.productDescription)
+    value = (value * 31) ^ hash(self.ownerName)
+    value = (value * 31) ^ hash(self.dataProductType)
+    value = (value * 31) ^ hash(self.productSize)
     value = (value * 31) ^ hash(self.creationTime)
     value = (value * 31) ^ hash(self.lastModifiedTime)
-    value = (value * 31) ^ hash(self.validUntilTime)
-    value = (value * 31) ^ hash(self.replicaLocationCategory)
-    value = (value * 31) ^ hash(self.replicaPersistentType)
-    value = (value * 31) ^ hash(self.storageResourceId)
-    value = (value * 31) ^ hash(self.filePath)
-    value = (value * 31) ^ hash(self.replicaMetadata)
+    value = (value * 31) ^ hash(self.productMetadata)
+    value = (value * 31) ^ hash(self.replicaLocations)
     return value
 
   def __repr__(self):

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+from ttypes import *
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/ttypes.py
new file mode 100644
index 0000000..996f5bb
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/dbevent/ttypes.py
@@ -0,0 +1,494 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+class CrudType:
+  CREATE = 0
+  READ = 1
+  UPDATE = 2
+  DELETE = 3
+
+  _VALUES_TO_NAMES = {
+    0: "CREATE",
+    1: "READ",
+    2: "UPDATE",
+    3: "DELETE",
+  }
+
+  _NAMES_TO_VALUES = {
+    "CREATE": 0,
+    "READ": 1,
+    "UPDATE": 2,
+    "DELETE": 3,
+  }
+
+class EntityType:
+  USER_PROFILE = 0
+  TENANT = 1
+  GROUP = 2
+  PROJECT = 3
+  EXPERIMENT = 4
+  APPLICATION = 5
+  SHARING = 6
+  REGISTRY = 7
+
+  _VALUES_TO_NAMES = {
+    0: "USER_PROFILE",
+    1: "TENANT",
+    2: "GROUP",
+    3: "PROJECT",
+    4: "EXPERIMENT",
+    5: "APPLICATION",
+    6: "SHARING",
+    7: "REGISTRY",
+  }
+
+  _NAMES_TO_VALUES = {
+    "USER_PROFILE": 0,
+    "TENANT": 1,
+    "GROUP": 2,
+    "PROJECT": 3,
+    "EXPERIMENT": 4,
+    "APPLICATION": 5,
+    "SHARING": 6,
+    "REGISTRY": 7,
+  }
+
+class DBEventType:
+  PUBLISHER = 0
+  SUBSCRIBER = 1
+
+  _VALUES_TO_NAMES = {
+    0: "PUBLISHER",
+    1: "SUBSCRIBER",
+  }
+
+  _NAMES_TO_VALUES = {
+    "PUBLISHER": 0,
+    "SUBSCRIBER": 1,
+  }
+
+
+class DBEventPublisherContext:
+  """
+  Attributes:
+   - crudType
+   - entityType
+   - entityDataModel
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.I32, 'crudType', None, None, ), # 1
+    (2, TType.I32, 'entityType', None, None, ), # 2
+    (3, TType.STRING, 'entityDataModel', None, None, ), # 3
+  )
+
+  def __init__(self, crudType=None, entityType=None, entityDataModel=None,):
+    self.crudType = crudType
+    self.entityType = entityType
+    self.entityDataModel = entityDataModel
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.I32:
+          self.crudType = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.I32:
+          self.entityType = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.entityDataModel = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('DBEventPublisherContext')
+    if self.crudType is not None:
+      oprot.writeFieldBegin('crudType', TType.I32, 1)
+      oprot.writeI32(self.crudType)
+      oprot.writeFieldEnd()
+    if self.entityType is not None:
+      oprot.writeFieldBegin('entityType', TType.I32, 2)
+      oprot.writeI32(self.entityType)
+      oprot.writeFieldEnd()
+    if self.entityDataModel is not None:
+      oprot.writeFieldBegin('entityDataModel', TType.STRING, 3)
+      oprot.writeString(self.entityDataModel)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.crudType is None:
+      raise TProtocol.TProtocolException(message='Required field crudType is unset!')
+    if self.entityType is None:
+      raise TProtocol.TProtocolException(message='Required field entityType is unset!')
+    if self.entityDataModel is None:
+      raise TProtocol.TProtocolException(message='Required field entityDataModel is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.crudType)
+    value = (value * 31) ^ hash(self.entityType)
+    value = (value * 31) ^ hash(self.entityDataModel)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class DBEventPublisher:
+  """
+  Attributes:
+   - publisherContext
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'publisherContext', (DBEventPublisherContext, DBEventPublisherContext.thrift_spec), None, ), # 1
+  )
+
+  def __init__(self, publisherContext=None,):
+    self.publisherContext = publisherContext
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.publisherContext = DBEventPublisherContext()
+          self.publisherContext.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('DBEventPublisher')
+    if self.publisherContext is not None:
+      oprot.writeFieldBegin('publisherContext', TType.STRUCT, 1)
+      self.publisherContext.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.publisherContext is None:
+      raise TProtocol.TProtocolException(message='Required field publisherContext is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.publisherContext)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class DBEventSubscriber:
+  """
+  Attributes:
+   - subscriberService
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'subscriberService', None, None, ), # 1
+  )
+
+  def __init__(self, subscriberService=None,):
+    self.subscriberService = subscriberService
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.subscriberService = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('DBEventSubscriber')
+    if self.subscriberService is not None:
+      oprot.writeFieldBegin('subscriberService', TType.STRING, 1)
+      oprot.writeString(self.subscriberService)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.subscriberService is None:
+      raise TProtocol.TProtocolException(message='Required field subscriberService is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.subscriberService)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class DBEventMessageContext:
+  """
+  Attributes:
+   - publisher
+   - subscriber
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'publisher', (DBEventPublisher, DBEventPublisher.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'subscriber', (DBEventSubscriber, DBEventSubscriber.thrift_spec), None, ), # 2
+  )
+
+  def __init__(self, publisher=None, subscriber=None,):
+    self.publisher = publisher
+    self.subscriber = subscriber
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.publisher = DBEventPublisher()
+          self.publisher.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.subscriber = DBEventSubscriber()
+          self.subscriber.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('DBEventMessageContext')
+    if self.publisher is not None:
+      oprot.writeFieldBegin('publisher', TType.STRUCT, 1)
+      self.publisher.write(oprot)
+      oprot.writeFieldEnd()
+    if self.subscriber is not None:
+      oprot.writeFieldBegin('subscriber', TType.STRUCT, 2)
+      self.subscriber.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.publisher)
+    value = (value * 31) ^ hash(self.subscriber)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class DBEventMessage:
+  """
+  Attributes:
+   - dbEventType
+   - messageContext
+   - publisherService
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.I32, 'dbEventType', None, None, ), # 1
+    (2, TType.STRUCT, 'messageContext', (DBEventMessageContext, DBEventMessageContext.thrift_spec), None, ), # 2
+    (3, TType.STRING, 'publisherService', None, None, ), # 3
+  )
+
+  def __init__(self, dbEventType=None, messageContext=None, publisherService=None,):
+    self.dbEventType = dbEventType
+    self.messageContext = messageContext
+    self.publisherService = publisherService
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.I32:
+          self.dbEventType = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.messageContext = DBEventMessageContext()
+          self.messageContext.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.publisherService = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('DBEventMessage')
+    if self.dbEventType is not None:
+      oprot.writeFieldBegin('dbEventType', TType.I32, 1)
+      oprot.writeI32(self.dbEventType)
+      oprot.writeFieldEnd()
+    if self.messageContext is not None:
+      oprot.writeFieldBegin('messageContext', TType.STRUCT, 2)
+      self.messageContext.write(oprot)
+      oprot.writeFieldEnd()
+    if self.publisherService is not None:
+      oprot.writeFieldBegin('publisherService', TType.STRING, 3)
+      oprot.writeString(self.publisherService)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.dbEventType is None:
+      raise TProtocol.TProtocolException(message='Required field dbEventType is unset!')
+    if self.messageContext is None:
+      raise TProtocol.TProtocolException(message='Required field messageContext is unset!')
+    if self.publisherService is None:
+      raise TProtocol.TProtocolException(message='Required field publisherService is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.dbEventType)
+    value = (value * 31) ^ hash(self.messageContext)
+    value = (value * 31) ^ hash(self.publisherService)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
index 818841d..42e9da4 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
@@ -49,6 +49,7 @@ class MessageType:
   LAUNCHPROCESS = 5
   TERMINATEPROCESS = 6
   PROCESSOUTPUT = 7
+  DB_EVENT = 8
 
   _VALUES_TO_NAMES = {
     0: "EXPERIMENT",
@@ -59,6 +60,7 @@ class MessageType:
     5: "LAUNCHPROCESS",
     6: "TERMINATEPROCESS",
     7: "PROCESSOUTPUT",
+    8: "DB_EVENT",
   }
 
   _NAMES_TO_VALUES = {
@@ -70,6 +72,7 @@ class MessageType:
     "LAUNCHPROCESS": 5,
     "TERMINATEPROCESS": 6,
     "PROCESSOUTPUT": 7,
+    "DB_EVENT": 8,
   }
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/__init__.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/__init__.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/__init__.py
new file mode 100644
index 0000000..adefd8e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ttypes', 'constants']

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/constants.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/constants.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/constants.py
new file mode 100644
index 0000000..4a6492b
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/constants.py
@@ -0,0 +1,11 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+from ttypes import *
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/ttypes.py
new file mode 100644
index 0000000..f13ce58
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/tenant/ttypes.py
@@ -0,0 +1,352 @@
+#
+# Autogenerated by Thrift Compiler (0.9.3)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+#  options string: py
+#
+
+from thrift.Thrift import TType, TMessageType, TException, TApplicationException
+import apache.airavata.model.commons.ttypes
+
+
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol, TProtocol
+try:
+  from thrift.protocol import fastbinary
+except:
+  fastbinary = None
+
+
+class TenantApprovalStatus:
+  REQUESTED = 0
+  APPROVED = 1
+  ACTIVE = 2
+  DEACTIVATED = 3
+  CANCELLED = 4
+  DENIED = 5
+  CREATED = 6
+
+  _VALUES_TO_NAMES = {
+    0: "REQUESTED",
+    1: "APPROVED",
+    2: "ACTIVE",
+    3: "DEACTIVATED",
+    4: "CANCELLED",
+    5: "DENIED",
+    6: "CREATED",
+  }
+
+  _NAMES_TO_VALUES = {
+    "REQUESTED": 0,
+    "APPROVED": 1,
+    "ACTIVE": 2,
+    "DEACTIVATED": 3,
+    "CANCELLED": 4,
+    "DENIED": 5,
+    "CREATED": 6,
+  }
+
+
+class Tenant:
+  """
+  Attributes:
+   - tenantId
+   - tenantApprovalStatus
+   - tenantName
+   - domain
+   - emailAddress
+   - tenantAcronym
+   - tenantURL
+   - tenantPublicAbstract
+   - reviewProposalDescription
+   - tenantAdminFirstName
+   - tenantAdminLastName
+   - tenantAdminEmail
+   - identityServerUserName
+   - identityServerPasswordToken
+   - declinedReason
+   - oauthClientId
+   - oauthClientSecret
+   - requestCreationTime
+   - requesterUsername
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'tenantId', None, None, ), # 1
+    (2, TType.I32, 'tenantApprovalStatus', None, None, ), # 2
+    (3, TType.STRING, 'tenantName', None, None, ), # 3
+    (4, TType.STRING, 'domain', None, None, ), # 4
+    (5, TType.STRING, 'emailAddress', None, None, ), # 5
+    (6, TType.STRING, 'tenantAcronym', None, None, ), # 6
+    (7, TType.STRING, 'tenantURL', None, None, ), # 7
+    (8, TType.STRING, 'tenantPublicAbstract', None, None, ), # 8
+    (9, TType.STRING, 'reviewProposalDescription', None, None, ), # 9
+    (10, TType.STRING, 'tenantAdminFirstName', None, None, ), # 10
+    (11, TType.STRING, 'tenantAdminLastName', None, None, ), # 11
+    (12, TType.STRING, 'tenantAdminEmail', None, None, ), # 12
+    (13, TType.STRING, 'identityServerUserName', None, None, ), # 13
+    (14, TType.STRING, 'identityServerPasswordToken', None, None, ), # 14
+    (15, TType.STRING, 'declinedReason', None, None, ), # 15
+    (16, TType.STRING, 'oauthClientId', None, None, ), # 16
+    (17, TType.STRING, 'oauthClientSecret', None, None, ), # 17
+    (18, TType.I64, 'requestCreationTime', None, None, ), # 18
+    (19, TType.STRING, 'requesterUsername', None, None, ), # 19
+  )
+
+  def __init__(self, tenantId=None, tenantApprovalStatus=None, tenantName=None, domain=None, emailAddress=None, tenantAcronym=None, tenantURL=None, tenantPublicAbstract=None, reviewProposalDescription=None, tenantAdminFirstName=None, tenantAdminLastName=None, tenantAdminEmail=None, identityServerUserName=None, identityServerPasswordToken=None, declinedReason=None, oauthClientId=None, oauthClientSecret=None, requestCreationTime=None, requesterUsername=None,):
+    self.tenantId = tenantId
+    self.tenantApprovalStatus = tenantApprovalStatus
+    self.tenantName = tenantName
+    self.domain = domain
+    self.emailAddress = emailAddress
+    self.tenantAcronym = tenantAcronym
+    self.tenantURL = tenantURL
+    self.tenantPublicAbstract = tenantPublicAbstract
+    self.reviewProposalDescription = reviewProposalDescription
+    self.tenantAdminFirstName = tenantAdminFirstName
+    self.tenantAdminLastName = tenantAdminLastName
+    self.tenantAdminEmail = tenantAdminEmail
+    self.identityServerUserName = identityServerUserName
+    self.identityServerPasswordToken = identityServerPasswordToken
+    self.declinedReason = declinedReason
+    self.oauthClientId = oauthClientId
+    self.oauthClientSecret = oauthClientSecret
+    self.requestCreationTime = requestCreationTime
+    self.requesterUsername = requesterUsername
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.tenantId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.I32:
+          self.tenantApprovalStatus = iprot.readI32()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.tenantName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.domain = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.STRING:
+          self.emailAddress = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 6:
+        if ftype == TType.STRING:
+          self.tenantAcronym = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 7:
+        if ftype == TType.STRING:
+          self.tenantURL = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 8:
+        if ftype == TType.STRING:
+          self.tenantPublicAbstract = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.STRING:
+          self.reviewProposalDescription = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 10:
+        if ftype == TType.STRING:
+          self.tenantAdminFirstName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 11:
+        if ftype == TType.STRING:
+          self.tenantAdminLastName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 12:
+        if ftype == TType.STRING:
+          self.tenantAdminEmail = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 13:
+        if ftype == TType.STRING:
+          self.identityServerUserName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 14:
+        if ftype == TType.STRING:
+          self.identityServerPasswordToken = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 15:
+        if ftype == TType.STRING:
+          self.declinedReason = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 16:
+        if ftype == TType.STRING:
+          self.oauthClientId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 17:
+        if ftype == TType.STRING:
+          self.oauthClientSecret = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 18:
+        if ftype == TType.I64:
+          self.requestCreationTime = iprot.readI64()
+        else:
+          iprot.skip(ftype)
+      elif fid == 19:
+        if ftype == TType.STRING:
+          self.requesterUsername = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('Tenant')
+    if self.tenantId is not None:
+      oprot.writeFieldBegin('tenantId', TType.STRING, 1)
+      oprot.writeString(self.tenantId)
+      oprot.writeFieldEnd()
+    if self.tenantApprovalStatus is not None:
+      oprot.writeFieldBegin('tenantApprovalStatus', TType.I32, 2)
+      oprot.writeI32(self.tenantApprovalStatus)
+      oprot.writeFieldEnd()
+    if self.tenantName is not None:
+      oprot.writeFieldBegin('tenantName', TType.STRING, 3)
+      oprot.writeString(self.tenantName)
+      oprot.writeFieldEnd()
+    if self.domain is not None:
+      oprot.writeFieldBegin('domain', TType.STRING, 4)
+      oprot.writeString(self.domain)
+      oprot.writeFieldEnd()
+    if self.emailAddress is not None:
+      oprot.writeFieldBegin('emailAddress', TType.STRING, 5)
+      oprot.writeString(self.emailAddress)
+      oprot.writeFieldEnd()
+    if self.tenantAcronym is not None:
+      oprot.writeFieldBegin('tenantAcronym', TType.STRING, 6)
+      oprot.writeString(self.tenantAcronym)
+      oprot.writeFieldEnd()
+    if self.tenantURL is not None:
+      oprot.writeFieldBegin('tenantURL', TType.STRING, 7)
+      oprot.writeString(self.tenantURL)
+      oprot.writeFieldEnd()
+    if self.tenantPublicAbstract is not None:
+      oprot.writeFieldBegin('tenantPublicAbstract', TType.STRING, 8)
+      oprot.writeString(self.tenantPublicAbstract)
+      oprot.writeFieldEnd()
+    if self.reviewProposalDescription is not None:
+      oprot.writeFieldBegin('reviewProposalDescription', TType.STRING, 9)
+      oprot.writeString(self.reviewProposalDescription)
+      oprot.writeFieldEnd()
+    if self.tenantAdminFirstName is not None:
+      oprot.writeFieldBegin('tenantAdminFirstName', TType.STRING, 10)
+      oprot.writeString(self.tenantAdminFirstName)
+      oprot.writeFieldEnd()
+    if self.tenantAdminLastName is not None:
+      oprot.writeFieldBegin('tenantAdminLastName', TType.STRING, 11)
+      oprot.writeString(self.tenantAdminLastName)
+      oprot.writeFieldEnd()
+    if self.tenantAdminEmail is not None:
+      oprot.writeFieldBegin('tenantAdminEmail', TType.STRING, 12)
+      oprot.writeString(self.tenantAdminEmail)
+      oprot.writeFieldEnd()
+    if self.identityServerUserName is not None:
+      oprot.writeFieldBegin('identityServerUserName', TType.STRING, 13)
+      oprot.writeString(self.identityServerUserName)
+      oprot.writeFieldEnd()
+    if self.identityServerPasswordToken is not None:
+      oprot.writeFieldBegin('identityServerPasswordToken', TType.STRING, 14)
+      oprot.writeString(self.identityServerPasswordToken)
+      oprot.writeFieldEnd()
+    if self.declinedReason is not None:
+      oprot.writeFieldBegin('declinedReason', TType.STRING, 15)
+      oprot.writeString(self.declinedReason)
+      oprot.writeFieldEnd()
+    if self.oauthClientId is not None:
+      oprot.writeFieldBegin('oauthClientId', TType.STRING, 16)
+      oprot.writeString(self.oauthClientId)
+      oprot.writeFieldEnd()
+    if self.oauthClientSecret is not None:
+      oprot.writeFieldBegin('oauthClientSecret', TType.STRING, 17)
+      oprot.writeString(self.oauthClientSecret)
+      oprot.writeFieldEnd()
+    if self.requestCreationTime is not None:
+      oprot.writeFieldBegin('requestCreationTime', TType.I64, 18)
+      oprot.writeI64(self.requestCreationTime)
+      oprot.writeFieldEnd()
+    if self.requesterUsername is not None:
+      oprot.writeFieldBegin('requesterUsername', TType.STRING, 19)
+      oprot.writeString(self.requesterUsername)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.tenantId is None:
+      raise TProtocol.TProtocolException(message='Required field tenantId is unset!')
+    if self.tenantApprovalStatus is None:
+      raise TProtocol.TProtocolException(message='Required field tenantApprovalStatus is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.tenantId)
+    value = (value * 31) ^ hash(self.tenantApprovalStatus)
+    value = (value * 31) ^ hash(self.tenantName)
+    value = (value * 31) ^ hash(self.domain)
+    value = (value * 31) ^ hash(self.emailAddress)
+    value = (value * 31) ^ hash(self.tenantAcronym)
+    value = (value * 31) ^ hash(self.tenantURL)
+    value = (value * 31) ^ hash(self.tenantPublicAbstract)
+    value = (value * 31) ^ hash(self.reviewProposalDescription)
+    value = (value * 31) ^ hash(self.tenantAdminFirstName)
+    value = (value * 31) ^ hash(self.tenantAdminLastName)
+    value = (value * 31) ^ hash(self.tenantAdminEmail)
+    value = (value * 31) ^ hash(self.identityServerUserName)
+    value = (value * 31) ^ hash(self.identityServerPasswordToken)
+    value = (value * 31) ^ hash(self.declinedReason)
+    value = (value * 31) ^ hash(self.oauthClientId)
+    value = (value * 31) ^ hash(self.oauthClientSecret)
+    value = (value * 31) ^ hash(self.requestCreationTime)
+    value = (value * 31) ^ hash(self.requesterUsername)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
index 72618cf..efe717c 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
@@ -12,6 +12,7 @@ import apache.airavata.model.workspace.ttypes
 import apache.airavata.api.error.ttypes
 import apache.airavata.model.messaging.event.ttypes
 import apache.airavata.model.security.ttypes
+import apache.airavata.model.dbevent.ttypes
 import apache.airavata.model.experiment.ttypes
 import apache.airavata.model.job.ttypes
 import apache.airavata.model.task.ttypes
@@ -22,6 +23,7 @@ import apache.airavata.model.data.movement.ttypes
 import apache.airavata.model.data.replica.ttypes
 import apache.airavata.model.user.ttypes
 import apache.airavata.model.group.ttypes
+import apache.airavata.model.tenant.ttypes
 import credential_store_data_models.ttypes
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/user/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/user/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/user/ttypes.py
index 7e960e7..4dc61ae 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/user/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/user/ttypes.py
@@ -174,6 +174,7 @@ class NSFDemographics:
 
 
   Attributes:
+   - airavataInternalUserId
    - gender
    - usCitizenship
    - ethnicities
@@ -183,14 +184,16 @@ class NSFDemographics:
 
   thrift_spec = (
     None, # 0
-    (1, TType.STRING, 'gender', None, None, ), # 1
-    (2, TType.I32, 'usCitizenship', None, None, ), # 2
-    (3, TType.LIST, 'ethnicities', (TType.I32,None), None, ), # 3
-    (4, TType.LIST, 'races', (TType.I32,None), None, ), # 4
-    (5, TType.LIST, 'disabilities', (TType.I32,None), None, ), # 5
+    (1, TType.STRING, 'airavataInternalUserId', None, "DO_NOT_SET_AT_CLIENTS", ), # 1
+    (2, TType.STRING, 'gender', None, None, ), # 2
+    (3, TType.I32, 'usCitizenship', None, None, ), # 3
+    (4, TType.LIST, 'ethnicities', (TType.I32,None), None, ), # 4
+    (5, TType.LIST, 'races', (TType.I32,None), None, ), # 5
+    (6, TType.LIST, 'disabilities', (TType.I32,None), None, ), # 6
   )
 
-  def __init__(self, gender=None, usCitizenship=None, ethnicities=None, races=None, disabilities=None,):
+  def __init__(self, airavataInternalUserId=thrift_spec[1][4], gender=None, usCitizenship=None, ethnicities=None, races=None, disabilities=None,):
+    self.airavataInternalUserId = airavataInternalUserId
     self.gender = gender
     self.usCitizenship = usCitizenship
     self.ethnicities = ethnicities
@@ -208,15 +211,20 @@ class NSFDemographics:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.gender = iprot.readString()
+          self.airavataInternalUserId = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 2:
+        if ftype == TType.STRING:
+          self.gender = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
         if ftype == TType.I32:
           self.usCitizenship = iprot.readI32()
         else:
           iprot.skip(ftype)
-      elif fid == 3:
+      elif fid == 4:
         if ftype == TType.LIST:
           self.ethnicities = []
           (_etype3, _size0) = iprot.readListBegin()
@@ -226,7 +234,7 @@ class NSFDemographics:
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
-      elif fid == 4:
+      elif fid == 5:
         if ftype == TType.LIST:
           self.races = []
           (_etype9, _size6) = iprot.readListBegin()
@@ -236,7 +244,7 @@ class NSFDemographics:
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
-      elif fid == 5:
+      elif fid == 6:
         if ftype == TType.LIST:
           self.disabilities = []
           (_etype15, _size12) = iprot.readListBegin()
@@ -256,30 +264,34 @@ class NSFDemographics:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
     oprot.writeStructBegin('NSFDemographics')
+    if self.airavataInternalUserId is not None:
+      oprot.writeFieldBegin('airavataInternalUserId', TType.STRING, 1)
+      oprot.writeString(self.airavataInternalUserId)
+      oprot.writeFieldEnd()
     if self.gender is not None:
-      oprot.writeFieldBegin('gender', TType.STRING, 1)
+      oprot.writeFieldBegin('gender', TType.STRING, 2)
       oprot.writeString(self.gender)
       oprot.writeFieldEnd()
     if self.usCitizenship is not None:
-      oprot.writeFieldBegin('usCitizenship', TType.I32, 2)
+      oprot.writeFieldBegin('usCitizenship', TType.I32, 3)
       oprot.writeI32(self.usCitizenship)
       oprot.writeFieldEnd()
     if self.ethnicities is not None:
-      oprot.writeFieldBegin('ethnicities', TType.LIST, 3)
+      oprot.writeFieldBegin('ethnicities', TType.LIST, 4)
       oprot.writeListBegin(TType.I32, len(self.ethnicities))
       for iter18 in self.ethnicities:
         oprot.writeI32(iter18)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.races is not None:
-      oprot.writeFieldBegin('races', TType.LIST, 4)
+      oprot.writeFieldBegin('races', TType.LIST, 5)
       oprot.writeListBegin(TType.I32, len(self.races))
       for iter19 in self.races:
         oprot.writeI32(iter19)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.disabilities is not None:
-      oprot.writeFieldBegin('disabilities', TType.LIST, 5)
+      oprot.writeFieldBegin('disabilities', TType.LIST, 6)
       oprot.writeListBegin(TType.I32, len(self.disabilities))
       for iter20 in self.disabilities:
         oprot.writeI32(iter20)
@@ -289,11 +301,14 @@ class NSFDemographics:
     oprot.writeStructEnd()
 
   def validate(self):
+    if self.airavataInternalUserId is None:
+      raise TProtocol.TProtocolException(message='Required field airavataInternalUserId is unset!')
     return
 
 
   def __hash__(self):
     value = 17
+    value = (value * 31) ^ hash(self.airavataInternalUserId)
     value = (value * 31) ^ hash(self.gender)
     value = (value * 31) ^ hash(self.usCitizenship)
     value = (value * 31) ^ hash(self.ethnicities)
@@ -334,6 +349,12 @@ class UserProfile:
   *  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
   *
@@ -371,6 +392,11 @@ class UserProfile:
    - userId
    - gatewayId
    - emails
+   - firstName
+   - lastName
+   - middleName
+   - namePrefix
+   - nameSuffix
    - userName
    - orcidId
    - phones
@@ -396,30 +422,40 @@ class UserProfile:
     (3, TType.STRING, 'userId', None, None, ), # 3
     (4, TType.STRING, 'gatewayId', None, None, ), # 4
     (5, TType.LIST, 'emails', (TType.STRING,None), None, ), # 5
-    (6, TType.STRING, 'userName', None, None, ), # 6
-    (7, TType.STRING, 'orcidId', None, None, ), # 7
-    (8, TType.LIST, 'phones', (TType.STRING,None), None, ), # 8
-    (9, TType.STRING, 'country', None, None, ), # 9
-    (10, TType.LIST, 'nationality', (TType.STRING,None), None, ), # 10
-    (11, TType.STRING, 'homeOrganization', None, None, ), # 11
-    (12, TType.STRING, 'orginationAffiliation', None, None, ), # 12
-    (13, TType.STRING, 'creationTime', None, None, ), # 13
-    (14, TType.STRING, 'lastAccessTime', None, None, ), # 14
-    (15, TType.STRING, 'validUntil', None, None, ), # 15
-    (16, TType.I32, 'State', None, None, ), # 16
-    (17, TType.STRING, 'comments', None, None, ), # 17
-    (18, TType.LIST, 'labeledURI', (TType.STRING,None), None, ), # 18
-    (19, TType.STRING, 'gpgKey', None, None, ), # 19
-    (20, TType.STRING, 'timeZone', None, None, ), # 20
-    (21, TType.STRUCT, 'nsfDemographics', (NSFDemographics, NSFDemographics.thrift_spec), None, ), # 21
+    (6, TType.STRING, 'firstName', None, None, ), # 6
+    (7, TType.STRING, 'lastName', None, None, ), # 7
+    (8, TType.STRING, 'middleName', None, None, ), # 8
+    (9, TType.STRING, 'namePrefix', None, None, ), # 9
+    (10, TType.STRING, 'nameSuffix', None, None, ), # 10
+    (11, TType.STRING, 'userName', None, None, ), # 11
+    (12, TType.STRING, 'orcidId', None, None, ), # 12
+    (13, TType.LIST, 'phones', (TType.STRING,None), None, ), # 13
+    (14, TType.STRING, 'country', None, None, ), # 14
+    (15, TType.LIST, 'nationality', (TType.STRING,None), None, ), # 15
+    (16, TType.STRING, 'homeOrganization', None, None, ), # 16
+    (17, TType.STRING, 'orginationAffiliation', None, None, ), # 17
+    (18, TType.I64, 'creationTime', None, None, ), # 18
+    (19, TType.I64, 'lastAccessTime', None, None, ), # 19
+    (20, TType.I64, 'validUntil', None, None, ), # 20
+    (21, TType.I32, 'State', None, None, ), # 21
+    (22, TType.STRING, 'comments', None, None, ), # 22
+    (23, TType.LIST, 'labeledURI', (TType.STRING,None), None, ), # 23
+    (24, TType.STRING, 'gpgKey', None, None, ), # 24
+    (25, TType.STRING, 'timeZone', None, None, ), # 25
+    (26, TType.STRUCT, 'nsfDemographics', (NSFDemographics, NSFDemographics.thrift_spec), None, ), # 26
   )
 
-  def __init__(self, userModelVersion=thrift_spec[1][4], airavataInternalUserId=thrift_spec[2][4], userId=None, gatewayId=None, emails=None, userName=None, orcidId=None, phones=None, country=None, nationality=None, homeOrganization=None, orginationAffiliation=None, creationTime=None, lastAccessTime=None, validUntil=None, State=None, comments=None, labeledURI=None, gpgKey=None, timeZone=None, nsfDemographics=None,):
+  def __init__(self, userModelVersion=thrift_spec[1][4], airavataInternalUserId=thrift_spec[2][4], userId=None, gatewayId=None, emails=None, firstName=None, lastName=None, middleName=None, namePrefix=None, nameSuffix=None, userName=None, orcidId=None, phones=None, country=None, nationality=None, homeOrganization=None, orginationAffiliation=None, creationTime=None, lastAccessTime=None, validUntil=None, State=None, comments=None, labeledURI=None, gpgKey=None, timeZone=None, nsfDemographics=None,):
     self.userModelVersion = userModelVersion
     self.airavataInternalUserId = airavataInternalUserId
     self.userId = userId
     self.gatewayId = gatewayId
     self.emails = emails
+    self.firstName = firstName
+    self.lastName = lastName
+    self.middleName = middleName
+    self.namePrefix = namePrefix
+    self.nameSuffix = nameSuffix
     self.userName = userName
     self.orcidId = orcidId
     self.phones = phones
@@ -478,15 +514,40 @@ class UserProfile:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.STRING:
-          self.userName = iprot.readString()
+          self.firstName = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.STRING:
-          self.orcidId = iprot.readString()
+          self.lastName = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 8:
+        if ftype == TType.STRING:
+          self.middleName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 9:
+        if ftype == TType.STRING:
+          self.namePrefix = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 10:
+        if ftype == TType.STRING:
+          self.nameSuffix = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 11:
+        if ftype == TType.STRING:
+          self.userName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 12:
+        if ftype == TType.STRING:
+          self.orcidId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 13:
         if ftype == TType.LIST:
           self.phones = []
           (_etype30, _size27) = iprot.readListBegin()
@@ -496,12 +557,12 @@ class UserProfile:
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
-      elif fid == 9:
+      elif fid == 14:
         if ftype == TType.STRING:
           self.country = iprot.readString()
         else:
           iprot.skip(ftype)
-      elif fid == 10:
+      elif fid == 15:
         if ftype == TType.LIST:
           self.nationality = []
           (_etype36, _size33) = iprot.readListBegin()
@@ -511,42 +572,42 @@ class UserProfile:
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
-      elif fid == 11:
+      elif fid == 16:
         if ftype == TType.STRING:
           self.homeOrganization = iprot.readString()
         else:
           iprot.skip(ftype)
-      elif fid == 12:
+      elif fid == 17:
         if ftype == TType.STRING:
           self.orginationAffiliation = iprot.readString()
         else:
           iprot.skip(ftype)
-      elif fid == 13:
-        if ftype == TType.STRING:
-          self.creationTime = iprot.readString()
+      elif fid == 18:
+        if ftype == TType.I64:
+          self.creationTime = iprot.readI64()
         else:
           iprot.skip(ftype)
-      elif fid == 14:
-        if ftype == TType.STRING:
-          self.lastAccessTime = iprot.readString()
+      elif fid == 19:
+        if ftype == TType.I64:
+          self.lastAccessTime = iprot.readI64()
         else:
           iprot.skip(ftype)
-      elif fid == 15:
-        if ftype == TType.STRING:
-          self.validUntil = iprot.readString()
+      elif fid == 20:
+        if ftype == TType.I64:
+          self.validUntil = iprot.readI64()
         else:
           iprot.skip(ftype)
-      elif fid == 16:
+      elif fid == 21:
         if ftype == TType.I32:
           self.State = iprot.readI32()
         else:
           iprot.skip(ftype)
-      elif fid == 17:
+      elif fid == 22:
         if ftype == TType.STRING:
           self.comments = iprot.readString()
         else:
           iprot.skip(ftype)
-      elif fid == 18:
+      elif fid == 23:
         if ftype == TType.LIST:
           self.labeledURI = []
           (_etype42, _size39) = iprot.readListBegin()
@@ -556,17 +617,17 @@ class UserProfile:
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
-      elif fid == 19:
+      elif fid == 24:
         if ftype == TType.STRING:
           self.gpgKey = iprot.readString()
         else:
           iprot.skip(ftype)
-      elif fid == 20:
+      elif fid == 25:
         if ftype == TType.STRING:
           self.timeZone = iprot.readString()
         else:
           iprot.skip(ftype)
-      elif fid == 21:
+      elif fid == 26:
         if ftype == TType.STRUCT:
           self.nsfDemographics = NSFDemographics()
           self.nsfDemographics.read(iprot)
@@ -605,77 +666,97 @@ class UserProfile:
         oprot.writeString(iter45)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
+    if self.firstName is not None:
+      oprot.writeFieldBegin('firstName', TType.STRING, 6)
+      oprot.writeString(self.firstName)
+      oprot.writeFieldEnd()
+    if self.lastName is not None:
+      oprot.writeFieldBegin('lastName', TType.STRING, 7)
+      oprot.writeString(self.lastName)
+      oprot.writeFieldEnd()
+    if self.middleName is not None:
+      oprot.writeFieldBegin('middleName', TType.STRING, 8)
+      oprot.writeString(self.middleName)
+      oprot.writeFieldEnd()
+    if self.namePrefix is not None:
+      oprot.writeFieldBegin('namePrefix', TType.STRING, 9)
+      oprot.writeString(self.namePrefix)
+      oprot.writeFieldEnd()
+    if self.nameSuffix is not None:
+      oprot.writeFieldBegin('nameSuffix', TType.STRING, 10)
+      oprot.writeString(self.nameSuffix)
+      oprot.writeFieldEnd()
     if self.userName is not None:
-      oprot.writeFieldBegin('userName', TType.STRING, 6)
+      oprot.writeFieldBegin('userName', TType.STRING, 11)
       oprot.writeString(self.userName)
       oprot.writeFieldEnd()
     if self.orcidId is not None:
-      oprot.writeFieldBegin('orcidId', TType.STRING, 7)
+      oprot.writeFieldBegin('orcidId', TType.STRING, 12)
       oprot.writeString(self.orcidId)
       oprot.writeFieldEnd()
     if self.phones is not None:
-      oprot.writeFieldBegin('phones', TType.LIST, 8)
+      oprot.writeFieldBegin('phones', TType.LIST, 13)
       oprot.writeListBegin(TType.STRING, len(self.phones))
       for iter46 in self.phones:
         oprot.writeString(iter46)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.country is not None:
-      oprot.writeFieldBegin('country', TType.STRING, 9)
+      oprot.writeFieldBegin('country', TType.STRING, 14)
       oprot.writeString(self.country)
       oprot.writeFieldEnd()
     if self.nationality is not None:
-      oprot.writeFieldBegin('nationality', TType.LIST, 10)
+      oprot.writeFieldBegin('nationality', TType.LIST, 15)
       oprot.writeListBegin(TType.STRING, len(self.nationality))
       for iter47 in self.nationality:
         oprot.writeString(iter47)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.homeOrganization is not None:
-      oprot.writeFieldBegin('homeOrganization', TType.STRING, 11)
+      oprot.writeFieldBegin('homeOrganization', TType.STRING, 16)
       oprot.writeString(self.homeOrganization)
       oprot.writeFieldEnd()
     if self.orginationAffiliation is not None:
-      oprot.writeFieldBegin('orginationAffiliation', TType.STRING, 12)
+      oprot.writeFieldBegin('orginationAffiliation', TType.STRING, 17)
       oprot.writeString(self.orginationAffiliation)
       oprot.writeFieldEnd()
     if self.creationTime is not None:
-      oprot.writeFieldBegin('creationTime', TType.STRING, 13)
-      oprot.writeString(self.creationTime)
+      oprot.writeFieldBegin('creationTime', TType.I64, 18)
+      oprot.writeI64(self.creationTime)
       oprot.writeFieldEnd()
     if self.lastAccessTime is not None:
-      oprot.writeFieldBegin('lastAccessTime', TType.STRING, 14)
-      oprot.writeString(self.lastAccessTime)
+      oprot.writeFieldBegin('lastAccessTime', TType.I64, 19)
+      oprot.writeI64(self.lastAccessTime)
       oprot.writeFieldEnd()
     if self.validUntil is not None:
-      oprot.writeFieldBegin('validUntil', TType.STRING, 15)
-      oprot.writeString(self.validUntil)
+      oprot.writeFieldBegin('validUntil', TType.I64, 20)
+      oprot.writeI64(self.validUntil)
       oprot.writeFieldEnd()
     if self.State is not None:
-      oprot.writeFieldBegin('State', TType.I32, 16)
+      oprot.writeFieldBegin('State', TType.I32, 21)
       oprot.writeI32(self.State)
       oprot.writeFieldEnd()
     if self.comments is not None:
-      oprot.writeFieldBegin('comments', TType.STRING, 17)
+      oprot.writeFieldBegin('comments', TType.STRING, 22)
       oprot.writeString(self.comments)
       oprot.writeFieldEnd()
     if self.labeledURI is not None:
-      oprot.writeFieldBegin('labeledURI', TType.LIST, 18)
+      oprot.writeFieldBegin('labeledURI', TType.LIST, 23)
       oprot.writeListBegin(TType.STRING, len(self.labeledURI))
       for iter48 in self.labeledURI:
         oprot.writeString(iter48)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.gpgKey is not None:
-      oprot.writeFieldBegin('gpgKey', TType.STRING, 19)
+      oprot.writeFieldBegin('gpgKey', TType.STRING, 24)
       oprot.writeString(self.gpgKey)
       oprot.writeFieldEnd()
     if self.timeZone is not None:
-      oprot.writeFieldBegin('timeZone', TType.STRING, 20)
+      oprot.writeFieldBegin('timeZone', TType.STRING, 25)
       oprot.writeString(self.timeZone)
       oprot.writeFieldEnd()
     if self.nsfDemographics is not None:
-      oprot.writeFieldBegin('nsfDemographics', TType.STRUCT, 21)
+      oprot.writeFieldBegin('nsfDemographics', TType.STRUCT, 26)
       self.nsfDemographics.write(oprot)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -692,6 +773,10 @@ class UserProfile:
       raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
     if self.emails is None:
       raise TProtocol.TProtocolException(message='Required field emails is unset!')
+    if self.firstName is None:
+      raise TProtocol.TProtocolException(message='Required field firstName is unset!')
+    if self.lastName is None:
+      raise TProtocol.TProtocolException(message='Required field lastName is unset!')
     if self.creationTime is None:
       raise TProtocol.TProtocolException(message='Required field creationTime is unset!')
     if self.lastAccessTime is None:
@@ -710,6 +795,11 @@ class UserProfile:
     value = (value * 31) ^ hash(self.userId)
     value = (value * 31) ^ hash(self.gatewayId)
     value = (value * 31) ^ hash(self.emails)
+    value = (value * 31) ^ hash(self.firstName)
+    value = (value * 31) ^ hash(self.lastName)
+    value = (value * 31) ^ hash(self.middleName)
+    value = (value * 31) ^ hash(self.namePrefix)
+    value = (value * 31) ^ hash(self.nameSuffix)
     value = (value * 31) ^ hash(self.userName)
     value = (value * 31) ^ hash(self.orcidId)
     value = (value * 31) ^ hash(self.phones)


[17/17] airavata git commit: Merge branch 'develop' of https://git-wip-us.apache.org/repos/asf/airavata into develop

Posted by go...@apache.org.
Merge branch 'develop' of https://git-wip-us.apache.org/repos/asf/airavata into develop


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/9fab6277
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/9fab6277
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/9fab6277

Branch: refs/heads/develop
Commit: 9fab6277660e6e6a889e734f487449a757237825
Parents: ddb95c1 57dc767
Author: Gourav Shenoy <go...@apache.org>
Authored: Tue May 2 15:58:37 2017 -0400
Committer: Gourav Shenoy <go...@apache.org>
Committed: Tue May 2 15:58:37 2017 -0400

----------------------------------------------------------------------
 .../testing-0.17/group_vars/all/vars.yml        |  1 +
 .../templates/airavata-server.properties.j2     | 26 +++++++++++++++++++-
 dev-tools/ansible/roles/database/vars/main.yml  |  2 ++
 .../main/resources/airavata-server.properties   |  2 ++
 .../org/apache/airavata/server/ServerMain.java  |  2 +-
 5 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



[15/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index de65cd0..9e1f1da 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -52869,19 +52869,2455 @@ uint32_t Airavata_getAllGroupsUserBelongs_presult::read(::apache::thrift::protoc
   return xfer;
 }
 
+
+Airavata_addUserProfile_args::~Airavata_addUserProfile_args() throw() {
+}
+
+
+uint32_t Airavata_addUserProfile_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_authzToken = false;
+  bool isset_userProfile = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->userProfile.read(iprot);
+          isset_userProfile = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_userProfile)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_addUserProfile_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_addUserProfile_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userProfile", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->userProfile.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_addUserProfile_pargs::~Airavata_addUserProfile_pargs() throw() {
+}
+
+
+uint32_t Airavata_addUserProfile_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_addUserProfile_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userProfile", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->userProfile)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_addUserProfile_result::~Airavata_addUserProfile_result() throw() {
+}
+
+
+uint32_t Airavata_addUserProfile_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_addUserProfile_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_addUserProfile_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
+    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_addUserProfile_presult::~Airavata_addUserProfile_presult() throw() {
+}
+
+
+uint32_t Airavata_addUserProfile_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+Airavata_updateUserProfile_args::~Airavata_updateUserProfile_args() throw() {
+}
+
+
+uint32_t Airavata_updateUserProfile_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_authzToken = false;
+  bool isset_userProfile = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->userProfile.read(iprot);
+          isset_userProfile = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_userProfile)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_updateUserProfile_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_updateUserProfile_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userProfile", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->userProfile.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_updateUserProfile_pargs::~Airavata_updateUserProfile_pargs() throw() {
+}
+
+
+uint32_t Airavata_updateUserProfile_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_updateUserProfile_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userProfile", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->userProfile)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_updateUserProfile_result::~Airavata_updateUserProfile_result() throw() {
+}
+
+
+uint32_t Airavata_updateUserProfile_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_updateUserProfile_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_updateUserProfile_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_updateUserProfile_presult::~Airavata_updateUserProfile_presult() throw() {
+}
+
+
+uint32_t Airavata_updateUserProfile_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+Airavata_getUserProfileById_args::~Airavata_getUserProfileById_args() throw() {
+}
+
+
+uint32_t Airavata_getUserProfileById_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_authzToken = false;
+  bool isset_userId = false;
+  bool isset_gatewayId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_userId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_gatewayId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_getUserProfileById_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_getUserProfileById_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->gatewayId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getUserProfileById_pargs::~Airavata_getUserProfileById_pargs() throw() {
+}
+
+
+uint32_t Airavata_getUserProfileById_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_getUserProfileById_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->gatewayId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getUserProfileById_result::~Airavata_getUserProfileById_result() throw() {
+}
+
+
+uint32_t Airavata_getUserProfileById_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getUserProfileById_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getUserProfileById_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getUserProfileById_presult::~Airavata_getUserProfileById_presult() throw() {
+}
+
+
+uint32_t Airavata_getUserProfileById_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+Airavata_deleteUserProfile_args::~Airavata_deleteUserProfile_args() throw() {
+}
+
+
+uint32_t Airavata_deleteUserProfile_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_authzToken = false;
+  bool isset_userId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_userId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_deleteUserProfile_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_deleteUserProfile_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_deleteUserProfile_pargs::~Airavata_deleteUserProfile_pargs() throw() {
+}
+
+
+uint32_t Airavata_deleteUserProfile_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_deleteUserProfile_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_deleteUserProfile_result::~Airavata_deleteUserProfile_result() throw() {
+}
+
+
+uint32_t Airavata_deleteUserProfile_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_deleteUserProfile_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_deleteUserProfile_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_deleteUserProfile_presult::~Airavata_deleteUserProfile_presult() throw() {
+}
+
+
+uint32_t Airavata_deleteUserProfile_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+Airavata_getAllUserProfilesInGateway_args::~Airavata_getAllUserProfilesInGateway_args() throw() {
+}
+
+
+uint32_t Airavata_getAllUserProfilesInGateway_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_authzToken = false;
+  bool isset_gatewayId = false;
+  bool isset_offset = false;
+  bool isset_limit = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->offset);
+          isset_offset = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->limit);
+          isset_limit = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_gatewayId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_offset)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_limit)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_getAllUserProfilesInGateway_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_getAllUserProfilesInGateway_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->gatewayId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("offset", ::apache::thrift::protocol::T_I32, 3);
+  xfer += oprot->writeI32(this->offset);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("limit", ::apache::thrift::protocol::T_I32, 4);
+  xfer += oprot->writeI32(this->limit);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getAllUserProfilesInGateway_pargs::~Airavata_getAllUserProfilesInGateway_pargs() throw() {
+}
+
+
+uint32_t Airavata_getAllUserProfilesInGateway_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_getAllUserProfilesInGateway_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->gatewayId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("offset", ::apache::thrift::protocol::T_I32, 3);
+  xfer += oprot->writeI32((*(this->offset)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("limit", ::apache::thrift::protocol::T_I32, 4);
+  xfer += oprot->writeI32((*(this->limit)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getAllUserProfilesInGateway_result::~Airavata_getAllUserProfilesInGateway_result() throw() {
+}
+
+
+uint32_t Airavata_getAllUserProfilesInGateway_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size505;
+            ::apache::thrift::protocol::TType _etype508;
+            xfer += iprot->readListBegin(_etype508, _size505);
+            this->success.resize(_size505);
+            uint32_t _i509;
+            for (_i509 = 0; _i509 < _size505; ++_i509)
+            {
+              xfer += this->success[_i509].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getAllUserProfilesInGateway_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getAllUserProfilesInGateway_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector< ::apache::airavata::model::user::UserProfile> ::const_iterator _iter510;
+      for (_iter510 = this->success.begin(); _iter510 != this->success.end(); ++_iter510)
+      {
+        xfer += (*_iter510).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getAllUserProfilesInGateway_presult::~Airavata_getAllUserProfilesInGateway_presult() throw() {
+}
+
+
+uint32_t Airavata_getAllUserProfilesInGateway_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size511;
+            ::apache::thrift::protocol::TType _etype514;
+            xfer += iprot->readListBegin(_etype514, _size511);
+            (*(this->success)).resize(_size511);
+            uint32_t _i515;
+            for (_i515 = 0; _i515 < _size511; ++_i515)
+            {
+              xfer += (*(this->success))[_i515].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+Airavata_getUserProfileByName_args::~Airavata_getUserProfileByName_args() throw() {
+}
+
+
+uint32_t Airavata_getUserProfileByName_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_authzToken = false;
+  bool isset_userName = false;
+  bool isset_gatewayId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userName);
+          isset_userName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_userName)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_gatewayId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_getUserProfileByName_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_getUserProfileByName_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userName);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->gatewayId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getUserProfileByName_pargs::~Airavata_getUserProfileByName_pargs() throw() {
+}
+
+
+uint32_t Airavata_getUserProfileByName_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_getUserProfileByName_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userName)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->gatewayId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getUserProfileByName_result::~Airavata_getUserProfileByName_result() throw() {
+}
+
+
+uint32_t Airavata_getUserProfileByName_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getUserProfileByName_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getUserProfileByName_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getUserProfileByName_presult::~Airavata_getUserProfileByName_presult() throw() {
+}
+
+
+uint32_t Airavata_getUserProfileByName_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+Airavata_doesUserProfileExist_args::~Airavata_doesUserProfileExist_args() throw() {
+}
+
+
+uint32_t Airavata_doesUserProfileExist_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_authzToken = false;
+  bool isset_userName = false;
+  bool isset_gatewayId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userName);
+          isset_userName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_userName)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_gatewayId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_doesUserProfileExist_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_doesUserProfileExist_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userName);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->gatewayId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_doesUserProfileExist_pargs::~Airavata_doesUserProfileExist_pargs() throw() {
+}
+
+
+uint32_t Airavata_doesUserProfileExist_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_doesUserProfileExist_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userName)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->gatewayId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_doesUserProfileExist_result::~Airavata_doesUserProfileExist_result() throw() {
+}
+
+
+uint32_t Airavata_doesUserProfileExist_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_doesUserProfileExist_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_doesUserProfileExist_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_doesUserProfileExist_presult::~Airavata_doesUserProfileExist_presult() throw() {
+}
+
+
+uint32_t Airavata_doesUserProfileExist_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
 void AiravataClient::getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken)
 {
-  send_getAPIVersion(authzToken);
-  recv_getAPIVersion(_return);
+  send_getAPIVersion(authzToken);
+  recv_getAPIVersion(_return);
+}
+
+void AiravataClient::send_getAPIVersion(const  ::apache::airavata::model::security::AuthzToken& authzToken)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("getAPIVersion", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_getAPIVersion_pargs args;
+  args.authzToken = &authzToken;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_getAPIVersion(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("getAPIVersion") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_getAPIVersion_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAPIVersion failed: unknown result");
+}
+
+bool AiravataClient::isUserExists(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName)
+{
+  send_isUserExists(authzToken, gatewayId, userName);
+  return recv_isUserExists();
+}
+
+void AiravataClient::send_isUserExists(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("isUserExists", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_isUserExists_pargs args;
+  args.authzToken = &authzToken;
+  args.gatewayId = &gatewayId;
+  args.userName = &userName;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+bool AiravataClient::recv_isUserExists()
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("isUserExists") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  bool _return;
+  Airavata_isUserExists_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    return _return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "isUserExists failed: unknown result");
+}
+
+void AiravataClient::addGateway(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway)
+{
+  send_addGateway(authzToken, gateway);
+  recv_addGateway(_return);
+}
+
+void AiravataClient::send_addGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("addGateway", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_addGateway_pargs args;
+  args.authzToken = &authzToken;
+  args.gateway = &gateway;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_addGateway(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("addGateway") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_addGateway_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addGateway failed: unknown result");
+}
+
+void AiravataClient::getAllUsersInGateway(std::vector<std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
+{
+  send_getAllUsersInGateway(authzToken, gatewayId);
+  recv_getAllUsersInGateway(_return);
+}
+
+void AiravataClient::send_getAllUsersInGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("getAllUsersInGateway", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_getAllUsersInGateway_pargs args;
+  args.authzToken = &authzToken;
+  args.gatewayId = &gatewayId;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_getAllUsersInGateway(std::vector<std::string> & _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("getAllUsersInGateway") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_getAllUsersInGateway_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllUsersInGateway failed: unknown result");
+}
+
+bool AiravataClient::updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway)
+{
+  send_updateGateway(authzToken, gatewayId, updatedGateway);
+  return recv_updateGateway();
 }
 
-void AiravataClient::send_getAPIVersion(const  ::apache::airavata::model::security::AuthzToken& authzToken)
+void AiravataClient::send_updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getAPIVersion", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("updateGateway", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getAPIVersion_pargs args;
+  Airavata_updateGateway_pargs args;
   args.authzToken = &authzToken;
+  args.gatewayId = &gatewayId;
+  args.updatedGateway = &updatedGateway;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -52889,7 +55325,7 @@ void AiravataClient::send_getAPIVersion(const  ::apache::airavata::model::securi
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getAPIVersion(std::string& _return)
+bool AiravataClient::recv_updateGateway()
 {
 
   int32_t rseqid = 0;
@@ -52909,12 +55345,83 @@ void AiravataClient::recv_getAPIVersion(std::string& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getAPIVersion") != 0) {
+  if (fname.compare("updateGateway") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getAPIVersion_presult result;
+  bool _return;
+  Airavata_updateGateway_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    return _return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "updateGateway failed: unknown result");
+}
+
+void AiravataClient::getGateway( ::apache::airavata::model::workspace::Gateway& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
+{
+  send_getGateway(authzToken, gatewayId);
+  recv_getGateway(_return);
+}
+
+void AiravataClient::send_getGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("getGateway", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_getGateway_pargs args;
+  args.authzToken = &authzToken;
+  args.gatewayId = &gatewayId;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_getGateway( ::apache::airavata::model::workspace::Gateway& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("getGateway") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_getGateway_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -52936,24 +55443,23 @@ void AiravataClient::recv_getAPIVersion(std::string& _return)
   if (result.__isset.ae) {
     throw result.ae;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAPIVersion failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getGateway failed: unknown result");
 }
 
-bool AiravataClient::isUserExists(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName)
+bool AiravataClient::deleteGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 {
-  send_isUserExists(authzToken, gatewayId, userName);
-  return recv_isUserExists();
+  send_deleteGateway(authzToken, gatewayId);
+  return recv_deleteGateway();
 }
 
-void AiravataClient::send_isUserExists(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName)
+void AiravataClient::send_deleteGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("isUserExists", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("deleteGateway", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_isUserExists_pargs args;
+  Airavata_deleteGateway_pargs args;
   args.authzToken = &authzToken;
   args.gatewayId = &gatewayId;
-  args.userName = &userName;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -52961,7 +55467,7 @@ void AiravataClient::send_isUserExists(const  ::apache::airavata::model::securit
   oprot_->getTransport()->flush();
 }
 
-bool AiravataClient::recv_isUserExists()
+bool AiravataClient::recv_deleteGateway()
 {
 
   int32_t rseqid = 0;
@@ -52981,13 +55487,13 @@ bool AiravataClient::recv_isUserExists()
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("isUserExists") != 0) {
+  if (fname.compare("deleteGateway") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
   bool _return;
-  Airavata_isUserExists_presult result;
+  Airavata_deleteGateway_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -53008,23 +55514,22 @@ bool AiravataClient::recv_isUserExists()
   if (result.__isset.ae) {
     throw result.ae;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "isUserExists failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "deleteGateway failed: unknown result");
 }
 
-void AiravataClient::addGateway(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway)
+void AiravataClient::getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken)
 {
-  send_addGateway(authzToken, gateway);
-  recv_addGateway(_return);
+  send_getAllGateways(authzToken);
+  recv_getAllGateways(_return);
 }
 
-void AiravataClient::send_addGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway)
+void AiravataClient::send_getAllGateways(const  ::apache::airavata::model::security::AuthzToken& authzToken)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("addGateway", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getAllGateways", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_addGateway_pargs args;
+  Airavata_getAllGateways_pargs args;
   args.authzToken = &authzToken;
-  args.gateway = &gateway;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -53032,7 +55537,7 @@ void AiravataClient::send_addGateway(const  ::apache::airavata::model::security:
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_addGateway(std::string& _return)
+void AiravataClient::recv_getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return)
 {
 
   int32_t rseqid = 0;
@@ -53052,12 +55557,12 @@ void AiravataClient::recv_addGateway(std::string& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("addGateway") != 0) {
+  if (fname.compare("getAllGateways") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_addGateway_presult result;
+  Airavata_getAllGateways_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -53079,21 +55584,21 @@ void AiravataClient::recv_addGateway(std::string& _return)
   if (result.__isset.ae) {
     throw result.ae;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addGateway failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllGateways failed: unknown result");
 }
 
-void AiravataClient::getAllUsersInGateway(std::vector<std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
+bool AiravataClient::isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 {
-  send_getAllUsersInGateway(authzToken, gatewayId);
-  recv_getAllUsersInGateway(_return);
+  send_isGatewayExist(authzToken, gatewayId);
+  return recv_isGatewayExist();
 }
 
-void AiravataClient::send_getAllUsersInGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
+void AiravataClient::send_isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getAllUsersInGateway", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("isGatewayExist", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getAllUsersInGateway_pargs args;
+  Airavata_isGatewayExist_pargs args;
   args.authzToken = &authzToken;
   args.gatewayId = &gatewayId;
   args.write(oprot_);
@@ -53103,7 +55608,7 @@ void AiravataClient::send_getAllUsersInGateway(const  ::apache::airavata::model:
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getAllUsersInGateway(std::vector<std::string> & _return)
+bool AiravataClient::recv_isGatewayExist()
 {
 
   int32_t rseqid = 0;
@@ -53123,12 +55628,83 @@ void AiravataClient::recv_getAllUsersInGateway(std::vector<std::string> & _retur
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getAllUsersInGateway") != 0) {
+  if (fname.compare("isGatewayExist") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getAllUsersInGateway_presult result;
+  bool _return;
+  Airavata_isGatewayExist_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    return _return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "isGatewayExist failed: unknown result");
+}
+
+void AiravataClient::createNotification(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification)
+{
+  send_createNotification(authzToken, notification);
+  recv_createNotification(_return);
+}
+
+void AiravataClient::send_createNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("createNotification", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_createNotification_pargs args;
+  args.authzToken = &authzToken;
+  args.notification = &notification;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_createNotification(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("createNotification") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_createNotification_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -53150,24 +55726,95 @@ void AiravataClient::recv_getAllUsersInGateway(std::vector<std::string> & _retur
   if (result.__isset.ae) {
     throw result.ae;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllUsersInGateway failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "createNotification failed: unknown result");
 }
 
-bool AiravataClient::updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway)
+bool AiravataClient::updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification)
 {
-  send_updateGateway(authzToken, gatewayId, updatedGateway);
-  return recv_updateGateway();
+  send_updateNotification(authzToken, notification);
+  return recv_updateNotification();
 }
 
-void AiravataClient::send_updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway)
+void AiravataClient::send_updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("updateGateway", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("updateNotification", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_updateGateway_pargs args;
+  Airavata_updateNotification_pargs args;
+  args.authzToken = &authzToken;
+  args.notification = &notification;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+bool AiravataClient::recv_updateNotification()
+{
+

<TRUNCATED>

[04/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
index 69eeb27..315159c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/parallelism/ApplicationParallelismType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/parallelism/ApplicationParallelismType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/parallelism/ApplicationParallelismType.java
index b3b081e..dcd30d3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/parallelism/ApplicationParallelismType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/parallelism/ApplicationParallelismType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
index 512bc86..5fa77d0 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
index 054936c..a3be728 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
index 4a079b7..91d5e48 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentState.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentState.java
index 888877f..84e468b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentState.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentState.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
index ebbb14e..241bc6d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobState.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobState.java
index b3baf72..69d7857 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobState.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobState.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
index ff276b1..24e2d0b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessState.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessState.java
index d9ae6a0..1a3ec2d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessState.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessState.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
index e30cbdd..d058fbc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/QueueStatusModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/QueueStatusModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/QueueStatusModel.java
index 26d9063..8d3b45f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/QueueStatusModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/QueueStatusModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskState.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskState.java
index 6c5a986..e85376f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskState.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskState.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
index d7939db..fd72d45 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStageType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStageType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStageType.java
index 3ecb663..fa22c62 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStageType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStageType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
index 9d83006..e27c7ae 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
index 1a6bf3f..bc5b96f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
index 5e11911..6242758 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
index f2df170..fa2ea02 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
index 0a296e3..12770ca 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskTypes.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskTypes.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskTypes.java
index cbb06c4..ee1852c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskTypes.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskTypes.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *


[09/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
index c083274..6712bf7 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
@@ -3456,6 +3456,67 @@ class Iface:
     """
     pass
 
+  def addUserProfile(self, authzToken, userProfile):
+    """
+    Parameters:
+     - authzToken
+     - userProfile
+    """
+    pass
+
+  def updateUserProfile(self, authzToken, userProfile):
+    """
+    Parameters:
+     - authzToken
+     - userProfile
+    """
+    pass
+
+  def getUserProfileById(self, authzToken, userId, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - userId
+     - gatewayId
+    """
+    pass
+
+  def deleteUserProfile(self, authzToken, userId):
+    """
+    Parameters:
+     - authzToken
+     - userId
+    """
+    pass
+
+  def getAllUserProfilesInGateway(self, authzToken, gatewayId, offset, limit):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - offset
+     - limit
+    """
+    pass
+
+  def getUserProfileByName(self, authzToken, userName, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - userName
+     - gatewayId
+    """
+    pass
+
+  def doesUserProfileExist(self, authzToken, userName, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - userName
+     - gatewayId
+    """
+    pass
+
 
 class Client(Iface):
   def __init__(self, iprot, oprot=None):
@@ -12612,6 +12673,303 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGroupsUserBelongs failed: unknown result")
 
+  def addUserProfile(self, authzToken, userProfile):
+    """
+    Parameters:
+     - authzToken
+     - userProfile
+    """
+    self.send_addUserProfile(authzToken, userProfile)
+    return self.recv_addUserProfile()
+
+  def send_addUserProfile(self, authzToken, userProfile):
+    self._oprot.writeMessageBegin('addUserProfile', TMessageType.CALL, self._seqid)
+    args = addUserProfile_args()
+    args.authzToken = authzToken
+    args.userProfile = userProfile
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_addUserProfile(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = addUserProfile_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "addUserProfile failed: unknown result")
+
+  def updateUserProfile(self, authzToken, userProfile):
+    """
+    Parameters:
+     - authzToken
+     - userProfile
+    """
+    self.send_updateUserProfile(authzToken, userProfile)
+    return self.recv_updateUserProfile()
+
+  def send_updateUserProfile(self, authzToken, userProfile):
+    self._oprot.writeMessageBegin('updateUserProfile', TMessageType.CALL, self._seqid)
+    args = updateUserProfile_args()
+    args.authzToken = authzToken
+    args.userProfile = userProfile
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_updateUserProfile(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = updateUserProfile_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "updateUserProfile failed: unknown result")
+
+  def getUserProfileById(self, authzToken, userId, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - userId
+     - gatewayId
+    """
+    self.send_getUserProfileById(authzToken, userId, gatewayId)
+    return self.recv_getUserProfileById()
+
+  def send_getUserProfileById(self, authzToken, userId, gatewayId):
+    self._oprot.writeMessageBegin('getUserProfileById', TMessageType.CALL, self._seqid)
+    args = getUserProfileById_args()
+    args.authzToken = authzToken
+    args.userId = userId
+    args.gatewayId = gatewayId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getUserProfileById(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getUserProfileById_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getUserProfileById failed: unknown result")
+
+  def deleteUserProfile(self, authzToken, userId):
+    """
+    Parameters:
+     - authzToken
+     - userId
+    """
+    self.send_deleteUserProfile(authzToken, userId)
+    return self.recv_deleteUserProfile()
+
+  def send_deleteUserProfile(self, authzToken, userId):
+    self._oprot.writeMessageBegin('deleteUserProfile', TMessageType.CALL, self._seqid)
+    args = deleteUserProfile_args()
+    args.authzToken = authzToken
+    args.userId = userId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_deleteUserProfile(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = deleteUserProfile_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteUserProfile failed: unknown result")
+
+  def getAllUserProfilesInGateway(self, authzToken, gatewayId, offset, limit):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - offset
+     - limit
+    """
+    self.send_getAllUserProfilesInGateway(authzToken, gatewayId, offset, limit)
+    return self.recv_getAllUserProfilesInGateway()
+
+  def send_getAllUserProfilesInGateway(self, authzToken, gatewayId, offset, limit):
+    self._oprot.writeMessageBegin('getAllUserProfilesInGateway', TMessageType.CALL, self._seqid)
+    args = getAllUserProfilesInGateway_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.offset = offset
+    args.limit = limit
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getAllUserProfilesInGateway(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getAllUserProfilesInGateway_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllUserProfilesInGateway failed: unknown result")
+
+  def getUserProfileByName(self, authzToken, userName, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - userName
+     - gatewayId
+    """
+    self.send_getUserProfileByName(authzToken, userName, gatewayId)
+    return self.recv_getUserProfileByName()
+
+  def send_getUserProfileByName(self, authzToken, userName, gatewayId):
+    self._oprot.writeMessageBegin('getUserProfileByName', TMessageType.CALL, self._seqid)
+    args = getUserProfileByName_args()
+    args.authzToken = authzToken
+    args.userName = userName
+    args.gatewayId = gatewayId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getUserProfileByName(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getUserProfileByName_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getUserProfileByName failed: unknown result")
+
+  def doesUserProfileExist(self, authzToken, userName, gatewayId):
+    """
+    Parameters:
+     - authzToken
+     - userName
+     - gatewayId
+    """
+    self.send_doesUserProfileExist(authzToken, userName, gatewayId)
+    return self.recv_doesUserProfileExist()
+
+  def send_doesUserProfileExist(self, authzToken, userName, gatewayId):
+    self._oprot.writeMessageBegin('doesUserProfileExist', TMessageType.CALL, self._seqid)
+    args = doesUserProfileExist_args()
+    args.authzToken = authzToken
+    args.userName = userName
+    args.gatewayId = gatewayId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_doesUserProfileExist(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = doesUserProfileExist_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "doesUserProfileExist failed: unknown result")
+
 
 class Processor(Iface, TProcessor):
   def __init__(self, handler):
@@ -12786,6 +13144,13 @@ class Processor(Iface, TProcessor):
     self._processMap["deleteGroup"] = Processor.process_deleteGroup
     self._processMap["getGroup"] = Processor.process_getGroup
     self._processMap["getAllGroupsUserBelongs"] = Processor.process_getAllGroupsUserBelongs
+    self._processMap["addUserProfile"] = Processor.process_addUserProfile
+    self._processMap["updateUserProfile"] = Processor.process_updateUserProfile
+    self._processMap["getUserProfileById"] = Processor.process_getUserProfileById
+    self._processMap["deleteUserProfile"] = Processor.process_deleteUserProfile
+    self._processMap["getAllUserProfilesInGateway"] = Processor.process_getAllUserProfilesInGateway
+    self._processMap["getUserProfileByName"] = Processor.process_getUserProfileByName
+    self._processMap["doesUserProfileExist"] = Processor.process_doesUserProfileExist
 
   def process(self, iprot, oprot):
     (name, type, seqid) = iprot.readMessageBegin()
@@ -18056,6 +18421,223 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_addUserProfile(self, seqid, iprot, oprot):
+    args = addUserProfile_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = addUserProfile_result()
+    try:
+      result.success = self._handler.addUserProfile(args.authzToken, args.userProfile)
+      msg_type = TMessageType.REPLY
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("addUserProfile", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_updateUserProfile(self, seqid, iprot, oprot):
+    args = updateUserProfile_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = updateUserProfile_result()
+    try:
+      result.success = self._handler.updateUserProfile(args.authzToken, args.userProfile)
+      msg_type = TMessageType.REPLY
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("updateUserProfile", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_getUserProfileById(self, seqid, iprot, oprot):
+    args = getUserProfileById_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getUserProfileById_result()
+    try:
+      result.success = self._handler.getUserProfileById(args.authzToken, args.userId, args.gatewayId)
+      msg_type = TMessageType.REPLY
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("getUserProfileById", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_deleteUserProfile(self, seqid, iprot, oprot):
+    args = deleteUserProfile_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = deleteUserProfile_result()
+    try:
+      result.success = self._handler.deleteUserProfile(args.authzToken, args.userId)
+      msg_type = TMessageType.REPLY
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("deleteUserProfile", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_getAllUserProfilesInGateway(self, seqid, iprot, oprot):
+    args = getAllUserProfilesInGateway_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getAllUserProfilesInGateway_result()
+    try:
+      result.success = self._handler.getAllUserProfilesInGateway(args.authzToken, args.gatewayId, args.offset, args.limit)
+      msg_type = TMessageType.REPLY
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("getAllUserProfilesInGateway", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_getUserProfileByName(self, seqid, iprot, oprot):
+    args = getUserProfileByName_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getUserProfileByName_result()
+    try:
+      result.success = self._handler.getUserProfileByName(args.authzToken, args.userName, args.gatewayId)
+      msg_type = TMessageType.REPLY
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("getUserProfileByName", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_doesUserProfileExist(self, seqid, iprot, oprot):
+    args = doesUserProfileExist_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = doesUserProfileExist_result()
+    try:
+      result.success = self._handler.doesUserProfileExist(args.authzToken, args.userName, args.gatewayId)
+      msg_type = TMessageType.REPLY
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
+      msg_type = TMessageType.REPLY
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
+      msg_type = TMessageType.REPLY
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
+      msg_type = TMessageType.REPLY
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
+      msg_type = TMessageType.REPLY
+      result.ae = ae
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("doesUserProfileExist", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
 
 # HELPER FUNCTIONS AND STRUCTURES
 
@@ -29708,25 +30290,1082 @@ class getApplicationModule_result:
   def __ne__(self, other):
     return not (self == other)
 
-class updateApplicationModule_args:
+class updateApplicationModule_args:
+  """
+  Attributes:
+   - authzToken
+   - appModuleId
+   - applicationModule
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'appModuleId', None, None, ), # 2
+    (3, TType.STRUCT, 'applicationModule', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), None, ), # 3
+  )
+
+  def __init__(self, authzToken=None, appModuleId=None, applicationModule=None,):
+    self.authzToken = authzToken
+    self.appModuleId = appModuleId
+    self.applicationModule = applicationModule
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.appModuleId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.applicationModule = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+          self.applicationModule.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('updateApplicationModule_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.appModuleId is not None:
+      oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
+      oprot.writeString(self.appModuleId)
+      oprot.writeFieldEnd()
+    if self.applicationModule is not None:
+      oprot.writeFieldBegin('applicationModule', TType.STRUCT, 3)
+      self.applicationModule.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.appModuleId is None:
+      raise TProtocol.TProtocolException(message='Required field appModuleId is unset!')
+    if self.applicationModule is None:
+      raise TProtocol.TProtocolException(message='Required field applicationModule is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.appModuleId)
+    value = (value * 31) ^ hash(self.applicationModule)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class updateApplicationModule_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.BOOL, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.BOOL:
+          self.success = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('updateApplicationModule_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.BOOL, 0)
+      oprot.writeBool(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getAllAppModules_args:
+  """
+  Attributes:
+   - authzToken
+   - gatewayId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, gatewayId=None,):
+    self.authzToken = authzToken
+    self.gatewayId = gatewayId
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('getAllAppModules_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.gatewayId)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getAllAppModules_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec)), None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.LIST:
+          self.success = []
+          (_etype139, _size136) = iprot.readListBegin()
+          for _i140 in xrange(_size136):
+            _elem141 = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+            _elem141.read(iprot)
+            self.success.append(_elem141)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('getAllAppModules_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.LIST, 0)
+      oprot.writeListBegin(TType.STRUCT, len(self.success))
+      for iter142 in self.success:
+        iter142.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class deleteApplicationModule_args:
+  """
+  Attributes:
+   - authzToken
+   - appModuleId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'appModuleId', None, None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, appModuleId=None,):
+    self.authzToken = authzToken
+    self.appModuleId = appModuleId
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.appModuleId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('deleteApplicationModule_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.appModuleId is not None:
+      oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
+      oprot.writeString(self.appModuleId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.appModuleId is None:
+      raise TProtocol.TProtocolException(message='Required field appModuleId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.appModuleId)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class deleteApplicationModule_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.BOOL, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.BOOL:
+          self.success = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('deleteApplicationModule_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.BOOL, 0)
+      oprot.writeBool(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class registerApplicationDeployment_args:
+  """
+  Attributes:
+   - authzToken
+   - gatewayId
+   - applicationDeployment
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'gatewayId', None, None, ), # 2
+    (3, TType.STRUCT, 'applicationDeployment', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ), # 3
+  )
+
+  def __init__(self, authzToken=None, gatewayId=None, applicationDeployment=None,):
+    self.authzToken = authzToken
+    self.gatewayId = gatewayId
+    self.applicationDeployment = applicationDeployment
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.applicationDeployment = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+          self.applicationDeployment.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('registerApplicationDeployment_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.applicationDeployment is not None:
+      oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
+      self.applicationDeployment.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    if self.applicationDeployment is None:
+      raise TProtocol.TProtocolException(message='Required field applicationDeployment is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.applicationDeployment)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class registerApplicationDeployment_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.STRING, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.STRING:
+          self.success = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('registerApplicationDeployment_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.STRING, 0)
+      oprot.writeString(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getApplicationDeployment_args:
+  """
+  Attributes:
+   - authzToken
+   - appDeploymentId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'appDeploymentId', None, None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, appDeploymentId=None,):
+    self.authzToken = authzToken
+    self.appDeploymentId = appDeploymentId
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.appDeploymentId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('getApplicationDeployment_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.appDeploymentId is not None:
+      oprot.writeFieldBegin('appDeploymentId', TType.STRING, 2)
+      oprot.writeString(self.appDeploymentId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.appDeploymentId is None:
+      raise TProtocol.TProtocolException(message='Required field appDeploymentId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.appDeploymentId)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getApplicationDeployment_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.STRUCT, 'success', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.STRUCT:
+          self.success = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+          self.success.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('getApplicationDeployment_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.STRUCT, 0)
+      self.success.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class updateApplicationDeployment_args:
   """
   Attributes:
    - authzToken
-   - appModuleId
-   - applicationModule
+   - appDeploymentId
+   - applicationDeployment
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
-    (2, TType.STRING, 'appModuleId', None, None, ), # 2
-    (3, TType.STRUCT, 'applicationModule', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec), None, ), # 3
+    (2, TType.STRING, 'appDeploymentId', None, None, ), # 2
+    (3, TType.STRUCT, 'applicationDeployment', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ), # 3
   )
 
-  def __init__(self, authzToken=None, appModuleId=None, applicationModule=None,):
+  def __init__(self, authzToken=None, appDeploymentId=None, applicationDeployment=None,):
     self.authzToken = authzToken
-    self.appModuleId = appModuleId
-    self.applicationModule = applicationModule
+    self.appDeploymentId = appDeploymentId
+    self.applicationDeployment = applicationDeployment
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -29745,13 +31384,13 @@ class updateApplicationModule_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.appModuleId = iprot.readString()
+          self.appDeploymentId = iprot.readString()
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRUCT:
-          self.applicationModule = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-          self.applicationModule.read(iprot)
+          self.applicationDeployment = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+          self.applicationDeployment.read(iprot)
         else:
           iprot.skip(ftype)
       else:
@@ -29763,18 +31402,18 @@ class updateApplicationModule_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('updateApplicationModule_args')
+    oprot.writeStructBegin('updateApplicationDeployment_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
       oprot.writeFieldEnd()
-    if self.appModuleId is not None:
-      oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
-      oprot.writeString(self.appModuleId)
+    if self.appDeploymentId is not None:
+      oprot.writeFieldBegin('appDeploymentId', TType.STRING, 2)
+      oprot.writeString(self.appDeploymentId)
       oprot.writeFieldEnd()
-    if self.applicationModule is not None:
-      oprot.writeFieldBegin('applicationModule', TType.STRUCT, 3)
-      self.applicationModule.write(oprot)
+    if self.applicationDeployment is not None:
+      oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
+      self.applicationDeployment.write(oprot)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -29782,18 +31421,18 @@ class updateApplicationModule_args:
   def validate(self):
     if self.authzToken is None:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
-    if self.appModuleId is None:
-      raise TProtocol.TProtocolException(message='Required field appModuleId is unset!')
-    if self.applicationModule is None:
-      raise TProtocol.TProtocolException(message='Required field applicationModule is unset!')
+    if self.appDeploymentId is None:
+      raise TProtocol.TProtocolException(message='Required field appDeploymentId is unset!')
+    if self.applicationDeployment is None:
+      raise TProtocol.TProtocolException(message='Required field applicationDeployment is unset!')
     return
 
 
   def __hash__(self):
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
-    value = (value * 31) ^ hash(self.appModuleId)
-    value = (value * 31) ^ hash(self.applicationModule)
+    value = (value * 31) ^ hash(self.appDeploymentId)
+    value = (value * 31) ^ hash(self.applicationDeployment)
     return value
 
   def __repr__(self):
@@ -29807,7 +31446,7 @@ class updateApplicationModule_args:
   def __ne__(self, other):
     return not (self == other)
 
-class updateApplicationModule_result:
+class updateApplicationDeployment_result:
   """
   Attributes:
    - success
@@ -29879,7 +31518,7 @@ class updateApplicationModule_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('updateApplicationModule_result')
+    oprot.writeStructBegin('updateApplicationDeployment_result')
     if self.success is not None:
       oprot.writeFieldBegin('success', TType.BOOL, 0)
       oprot.writeBool(self.success)
@@ -29927,7 +31566,210 @@ class updateApplicationModule_result:
   def __ne__(self, other):
     return not (self == other)
 
-class getAllAppModules_args:
+class deleteApplicationDeployment_args:
+  """
+  Attributes:
+   - authzToken
+   - appDeploymentId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
+    (2, TType.STRING, 'appDeploymentId', None, None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, appDeploymentId=None,):
+    self.authzToken = authzToken
+    self.appDeploymentId = appDeploymentId
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.appDeploymentId = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('deleteApplicationDeployment_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.appDeploymentId is not None:
+      oprot.writeFieldBegin('appDeploymentId', TType.STRING, 2)
+      oprot.writeString(self.appDeploymentId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
+    if self.appDeploymentId is None:
+      raise TProtocol.TProtocolException(message='Required field appDeploymentId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.appDeploymentId)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class deleteApplicationDeployment_result:
+  """
+  Attributes:
+   - success
+   - ire
+   - ace
+   - ase
+   - ae
+  """
+
+  thrift_spec = (
+    (0, TType.BOOL, 'success', None, None, ), # 0
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
+  )
+
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.ace = ace
+    self.ase = ase
+    self.ae = ae
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 0:
+        if ftype == TType.BOOL:
+          self.success = iprot.readBool()
+        else:
+          iprot.skip(ftype)
+      elif fid == 1:
+        if ftype == TType.STRUCT:
+          self.ire = apache.airavata.api.error.ttypes.InvalidRequestException()
+          self.ire.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('deleteApplicationDeployment_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.BOOL, 0)
+      oprot.writeBool(self.success)
+      oprot.writeFieldEnd()
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
+    value = (value * 31) ^ hash(self.ae)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class getAllApplicationDeployments_args:
   """
   Attributes:
    - authzToken
@@ -29973,7 +31815,7 @@ class getAllAppModules_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('getAllAppModules_args')
+    oprot.writeStructBegin('getAllApplicationDeployments_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -30010,7 +31852,7 @@ class getAllAppModules_args:
   def __ne__(self, other):
     return not (self == other)
 
-class getAllAppModules_result:
+class getAllApplicationDeployments_result:
   """
   Attributes:
    - success
@@ -30021,7 +31863,7 @@ class getAllAppModules_result:
   """
 
   thrift_spec = (
-    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule.thrift_spec)), None, ), # 0
+    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec)), None, ), # 0
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
@@ -30047,11 +31889,11 @@ class getAllAppModules_result:
       if fid == 0:
         if ftype == TType.LIST:
           self.success = []
-          (_etype139, _size136) = iprot.readListBegin()
-          for _i140 in xrange(_size136):
-            _elem141 = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
-            _elem141.read(iprot)
-            self.success.append(_elem141)
+          (_etype146, _size143) = iprot.readListBegin()
+          for _i147 in xrange(_size143):
+            _elem148 = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
+            _elem148.read(iprot)
+            self.success.append(_elem148)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -30088,12 +31930,12 @@ class getAllAppModules_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('getAllAppModules_result')
+    oprot.writeStructBegin('getAllApplicationDeployments_result')
     if self.success is not None:
       oprot.writeFieldBegin('success', TType.LIST, 0)
       oprot.writeListBegin(TType.STRUCT, len(self.success))
-      for iter142 in self.success:
-        iter142.write(oprot)
+      for iter149 in self.success:
+        iter149.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.ire is not None:
@@ -30139,7 +31981,7 @@ class getAllAppModules_result:
   def __ne__(self, other):
     return not (self == other)
 
-class deleteApplicationModule_args:
+class getAppModuleDeployedResources_args:
   """
   Attributes:
    - authzToken
@@ -30185,7 +32027,7 @@ class deleteApplicationModule_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('deleteApplicationModule_args')
+    oprot.writeStructBegin('getAppModuleDeployedResources_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -30222,7 +32064,7 @@ class deleteApplicationModule_args:
   def __ne__(self, other):
     return not (self == other)
 
-class deleteApplicationModule_result:
+class getAppModuleDeployedResources_result:
   """
   Attributes:
    - success
@@ -30233,7 +32075,7 @@ class deleteApplicationModule_result:
   """
 
   thrift_spec = (
-    (0, TType.BOOL, 'success', None, None, ), # 0
+    (0, TType.LIST, 'success', (TType.STRING,None), None, ), # 0
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
@@ -30257,8 +32099,13 @@ class deleteApplicationModule_result:
       if ftype == TType.STOP:
         break
       if fid == 0:
-        if ftype == TType.BOOL:
-          self.success = iprot.readBool()
+        if ftype == TType.LIST:
+          self.success = []
+          (_etype153, _size150) = iprot.readListBegin()
+          for _i154 in xrange(_size150):
+            _elem155 = iprot.readString()
+            self.success.append(_elem155)
+          iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 1:
@@ -30294,10 +32141,13 @@ class deleteApplicationModule_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('deleteApplicationModule_result')
+    oprot.writeStructBegin('getAppModuleDeployedResources_result')
     if self.success is not None:
-      oprot.writeFieldBegin('success', TType.BOOL, 0)
-      oprot.writeBool(self.success)
+      oprot.writeFieldBegin('success', TType.LIST, 0)
+      oprot.writeListBegin(TType.STRING, len(self.success))
+      for iter156 in self.success:
+        oprot.writeString(iter156)
+      oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -30342,25 +32192,25 @@ class deleteApplicationModule_result:
   def __ne__(self, other):
     return not (self == other)
 
-class registerApplicationDeployment_args:
+class registerApplicationInterface_args:
   """
   Attributes:
    - authzToken
    - gatewayId
-   - applicationDeployment
+   - applicationInterface
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
     (2, TType.STRING, 'gatewayId', None, None, ), # 2
-    (3, TType.STRUCT, 'applicationDeployment', (apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription, apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription.thrift_spec), None, ), # 3
+    (3, TType.STRUCT, 'applicationInterface', (apache.airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription, apache.airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription.thrift_spec), None, ), # 3
   )
 
-  def __init__(self, authzToken=None, gatewayId=None, applicationDeployment=None,):
+  def __init__(self, authzToken=None, gatewayId=None, applicationInterface=None,):
     self.authzToken = authzToken
     self.gatewayId = gatewayId
-    self.applicationDeployment = applicationDeployment
+    self.applicationInterface = applicationInterface
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -30384,8 +32234,8 @@ class registerApplicationDeployment_args:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRUCT:
-          self.applicationDeployment = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationDeploymentDescription()
-          self.applicationDeployment.read(iprot)
+          self.applicationInterface = apache.airavata.model.appcatalog.appinterface.ttypes.ApplicationInterfaceDescription()
+          self.applicationInterface.read(iprot)
         else:
           iprot.skip(ftype)
       else:
@@ -30397,7 +32247,7 @@ class registerApplicationDeployment_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('registerApplicationDeployment_args')
+    oprot.writeStructBegin('registerApplicationInterface_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -30406,9 +32256,9 @@ class registerApplicationDeployment_args:
       oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
       oprot.writeString(self.gatewayId)
       oprot.writeFieldEnd()
-    if self.applicationDeployment is not None:
-      oprot.writeFieldBegin('applicationDeployment', TType.STRUCT, 3)
-      self.applicationDeployment.write(oprot)
+    if self.applicationInterface is not None:
+      oprot.writeFieldBegin('applicationInterface', TType.STRUCT, 3)
+      self.applicationInterface.write(oprot)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -30418,8 +32268,8 @@ class registerApplicationDeployment_args:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
     if self.gatewayId is None:
       raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
-    if self.applicationDeployment is None:
-      raise TProtocol.TProtocolException(message='Required field applicationDeployment is unset!')
+    if self.applicationInterface is None:
+      raise TProtocol.TProtocolException(message='Required field applicationInterface is unset!')
     return
 
 
@@ -30427,7 +32277,7 @@ class registerApplicationDeployment_args:
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
     value = (value * 31) ^ hash(self.gatewayId)
-    value = (value * 31) ^ hash(self.applicationDeployment)
+    value = (value * 31) ^ hash(self.applicationInterface)
     return value
 
   def __repr__(self):
@@ -30441,7 +32291,7 @@ class registerApplicationDeployment_args:
   def __ne__(self, other):
     return not (self == other)
 
-class registerApplicationDeployment_result:
+class registerApplicationInterface_result:
   """
   Attributes:
    - success
@@ -30513,7 +32363,7 @@ class registerApplicationDeployment_result:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('registerApplicationDeployment_result')
+    oprot.writeStructBegin('registerApplicationInterface_result')
     if self.success is not None:
       oprot.writeFieldBegin('success', TType.STRING, 0)
       oprot.writeString(self.success)
@@ -30561,22 +32411,28 @@ class registerApplicationDeployment_result:
   def __ne__(self, other):
     return not (self == other)
 
-class getApplicationDeployment_args:
+class cloneApplicationInterface_args:
   """
   Attributes:
    - authzToken
-   - appDeploymentId
+   - existingAppInterfaceID
+   - newApplicationName
+   - gatewayId
   """
 
   thrift_spec = (
     None, # 0
     (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
-    (2, TType.STRING, 'appDeploymentId', None, None, ), # 2
+    (2, TType.STRING, 'existingAppInterfaceID', None, None, ), # 2
+    (3, TType.STRING, 'newApplicationName', None, None, ), # 3
+    (4, TType.STRING, 'gatewayId', None, None, ), # 4
   )
 
-  def __init__(self, authzToken=None, appDeploymentId=None,):
+  def __init__(self, authzToken=None, existingAppInterfaceID=None, newApplicationName=None, gatewayId=None,):
     self.authzToken = authzToken
-    self.appDeploymentId = appDeploymentId
+    self.existingAppInterfaceID = existingAppInterfaceID
+    self.newApplicationName = newApplicationName
+    self.gatewayId = gatewayId
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -30595,7 +32451,17 @@ class getApplicationDeployment_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.appDeploymentId = iprot.readString()
+          self.existingAppInterfaceID = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.newApplicationName = iprot.readString()
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString()
         else:
           iprot.skip(ftype)
       else:
@@ -30607,14 +32473,22 @@ class getApplicationDeployment_args:
     if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
-    oprot.writeStructBegin('getApplicationDeployment_args')
+    oprot.writeStructBegin('cloneApplicationInterface_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToke

<TRUNCATED>

[16/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
Add Tenant Profile Thrift Model


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/ddb95c12
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/ddb95c12
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/ddb95c12

Branch: refs/heads/develop
Commit: ddb95c1222247e5dbeebd1dff1335cd5228b9b96
Parents: 81a5f2b
Author: Gourav Shenoy <go...@apache.org>
Authored: Tue May 2 15:58:25 2017 -0400
Committer: Gourav Shenoy <go...@apache.org>
Committed: Tue May 2 15:58:25 2017 -0400

----------------------------------------------------------------------
 .../java/org/apache/airavata/api/Airavata.java  |    28 +-
 .../airavata/api/airavata_apiConstants.java     |    28 +-
 .../main/resources/lib/airavata/Airavata.cpp    | 18316 ++++++++++-------
 .../src/main/resources/lib/airavata/Airavata.h  |  1390 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |    35 +
 .../resources/lib/airavata/airavata_api_types.h |     1 +
 .../lib/airavata/airavata_data_models_types.h   |     2 +
 .../lib/airavata/airavata_errors_types.cpp      |   205 +-
 .../lib/airavata/airavata_errors_types.h        |    44 +
 .../lib/airavata/db_event_model_constants.cpp   |    34 +
 .../lib/airavata/db_event_model_constants.h     |    41 +
 .../lib/airavata/db_event_model_types.cpp       |   627 +
 .../lib/airavata/db_event_model_types.h         |   318 +
 .../lib/airavata/messaging_events_types.cpp     |     8 +-
 .../lib/airavata/messaging_events_types.h       |     3 +-
 .../airavata/replica_catalog_models_types.cpp   |   726 +-
 .../lib/airavata/replica_catalog_models_types.h |   274 +-
 .../airavata/tenant_profile_model_constants.cpp |    34 +
 .../airavata/tenant_profile_model_constants.h   |    41 +
 .../lib/airavata/tenant_profile_model_types.cpp |   541 +
 .../lib/airavata/tenant_profile_model_types.h   |   244 +
 .../lib/airavata/user_profile_model_types.cpp   |   241 +-
 .../lib/airavata/user_profile_model_types.h     |    57 +-
 .../resources/lib/Airavata/API/Airavata.php     |    12 +
 .../resources/lib/Airavata/API/Error/Types.php  |    82 +
 .../Model/AppCatalog/ComputeResource/Types.php  |     2 +-
 .../lib/Airavata/Model/Application/Io/Types.php |     6 +-
 .../lib/Airavata/Model/Data/Replica/Types.php   |   572 +-
 .../lib/Airavata/Model/Dbevent/Types.php        |   573 +
 .../Airavata/Model/Messaging/Event/Types.php    |     2 +
 .../lib/Airavata/Model/Tenant/Types.php         |   528 +
 .../resources/lib/Airavata/Model/User/Types.php |   292 +-
 .../lib/apache/airavata/api/Airavata-remote     |    49 +
 .../lib/apache/airavata/api/Airavata.py         |  8167 +++++---
 .../lib/apache/airavata/api/error/ttypes.py     |    76 +
 .../resources/lib/apache/airavata/api/ttypes.py |     1 +
 .../airavata/model/data/replica/ttypes.py       |   430 +-
 .../apache/airavata/model/dbevent/__init__.py   |     1 +
 .../apache/airavata/model/dbevent/constants.py  |    11 +
 .../lib/apache/airavata/model/dbevent/ttypes.py |   494 +
 .../airavata/model/messaging/event/ttypes.py    |     3 +
 .../apache/airavata/model/tenant/__init__.py    |     1 +
 .../apache/airavata/model/tenant/constants.py   |    11 +
 .../lib/apache/airavata/model/tenant/ttypes.py  |   352 +
 .../lib/apache/airavata/model/ttypes.py         |     2 +
 .../lib/apache/airavata/model/user/ttypes.py    |   234 +-
 .../apache/airavata/model/ComponentState.java   |    28 +-
 .../apache/airavata/model/ComponentStatus.java  |    28 +-
 .../org/apache/airavata/model/EdgeModel.java    |    28 +-
 .../org/apache/airavata/model/NodeModel.java    |    28 +-
 .../org/apache/airavata/model/PortModel.java    |    28 +-
 .../apache/airavata/model/WorkflowModel.java    |    28 +-
 .../apache/airavata/model/WorkflowState.java    |    28 +-
 .../apache/airavata/model/WorkflowStatus.java   |    28 +-
 .../ApplicationDeploymentDescription.java       |    28 +-
 .../appdeployment/ApplicationModule.java        |    28 +-
 .../appcatalog/appdeployment/CommandObject.java |    28 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |    28 +-
 .../ApplicationInterfaceDescription.java        |    28 +-
 .../appcatalog/computeresource/BatchQueue.java  |    28 +-
 .../computeresource/CloudJobSubmission.java     |    28 +-
 .../ComputeResourceDescription.java             |    28 +-
 .../appcatalog/computeresource/DMType.java      |    28 +-
 .../appcatalog/computeresource/FileSystems.java |    28 +-
 .../computeresource/GlobusJobSubmission.java    |    28 +-
 .../computeresource/JobManagerCommand.java      |    28 +-
 .../computeresource/JobSubmissionInterface.java |    28 +-
 .../computeresource/JobSubmissionProtocol.java  |    28 +-
 .../computeresource/LOCALSubmission.java        |    28 +-
 .../appcatalog/computeresource/MonitorMode.java |    28 +-
 .../computeresource/ProviderName.java           |    28 +-
 .../computeresource/ResourceJobManager.java     |    28 +-
 .../computeresource/ResourceJobManagerType.java |    32 +-
 .../computeresource/SSHJobSubmission.java       |    28 +-
 .../computeresource/UnicoreJobSubmission.java   |    28 +-
 .../ComputeResourcePreference.java              |    28 +-
 .../gatewayprofile/GatewayResourceProfile.java  |    28 +-
 .../gatewayprofile/StoragePreference.java       |    28 +-
 .../StorageResourceDescription.java             |    28 +-
 .../UserComputeResourcePreference.java          |    28 +-
 .../UserResourceProfile.java                    |    28 +-
 .../UserStoragePreference.java                  |    28 +-
 .../airavata/model/application/io/DataType.java |    28 +-
 .../application/io/InputDataObjectType.java     |    28 +-
 .../application/io/OutputDataObjectType.java    |    28 +-
 .../airavata/model/commons/ErrorModel.java      |    28 +-
 .../model/commons/ValidationResults.java        |    28 +-
 .../airavata/model/commons/ValidatorResult.java |    28 +-
 .../commons/airavata_commonsConstants.java      |    28 +-
 .../credential/store/CertificateCredential.java |    28 +-
 .../model/credential/store/CommunityUser.java   |    28 +-
 .../credential/store/CredentialOwnerType.java   |    28 +-
 .../credential/store/CredentialSummary.java     |    28 +-
 .../credential/store/PasswordCredential.java    |    28 +-
 .../model/credential/store/SSHCredential.java   |    28 +-
 .../model/credential/store/SummaryType.java     |    28 +-
 .../credential_store_data_modelsConstants.java  |    28 +-
 .../airavata/model/data/movement/DMType.java    |    28 +-
 .../data/movement/DataMovementInterface.java    |    28 +-
 .../data/movement/DataMovementProtocol.java     |    28 +-
 .../data/movement/GridFTPDataMovement.java      |    28 +-
 .../model/data/movement/LOCALDataMovement.java  |    28 +-
 .../model/data/movement/SCPDataMovement.java    |    28 +-
 .../model/data/movement/SecurityProtocol.java   |    28 +-
 .../data/movement/UnicoreDataMovement.java      |    28 +-
 .../model/data/replica/DataProductModel.java    |   112 +-
 .../model/data/replica/DataProductType.java     |    28 +-
 .../data/replica/DataReplicaLocationModel.java  |    72 +-
 .../data/replica/ReplicaLocationCategory.java   |    28 +-
 .../data/replica/ReplicaPersistentType.java     |    28 +-
 .../model/error/AiravataClientException.java    |    28 +-
 .../airavata/model/error/AiravataErrorType.java |    28 +-
 .../model/error/AiravataSystemException.java    |    28 +-
 .../model/error/AuthenticationException.java    |    28 +-
 .../model/error/AuthorizationException.java     |    28 +-
 .../error/ExperimentNotFoundException.java      |    28 +-
 .../model/error/InvalidRequestException.java    |    28 +-
 .../model/error/LaunchValidationException.java  |    28 +-
 .../model/error/ProjectNotFoundException.java   |    28 +-
 .../airavata/model/error/TimedOutException.java |    28 +-
 .../airavata/model/error/ValidationResults.java |    28 +-
 .../airavata/model/error/ValidatorResult.java   |    28 +-
 .../model/experiment/ExperimentModel.java       |    28 +-
 .../experiment/ExperimentSearchFields.java      |    28 +-
 .../model/experiment/ExperimentStatistics.java  |    28 +-
 .../experiment/ExperimentSummaryModel.java      |    28 +-
 .../model/experiment/ExperimentType.java        |    28 +-
 .../model/experiment/ProjectSearchFields.java   |    28 +-
 .../experiment/UserConfigurationDataModel.java  |    28 +-
 .../apache/airavata/model/group/GroupModel.java |    28 +-
 .../model/group/ResourcePermissionType.java     |    28 +-
 .../airavata/model/group/ResourceType.java      |    28 +-
 .../org/apache/airavata/model/job/JobModel.java |    28 +-
 .../event/ExperimentStatusChangeEvent.java      |    28 +-
 .../messaging/event/ExperimentSubmitEvent.java  |    28 +-
 .../model/messaging/event/JobIdentifier.java    |    28 +-
 .../messaging/event/JobStatusChangeEvent.java   |    28 +-
 .../event/JobStatusChangeRequestEvent.java      |    28 +-
 .../airavata/model/messaging/event/Message.java |    28 +-
 .../model/messaging/event/MessageLevel.java     |    28 +-
 .../model/messaging/event/MessageType.java      |    28 +-
 .../messaging/event/ProcessIdentifier.java      |    28 +-
 .../event/ProcessStatusChangeEvent.java         |    28 +-
 .../event/ProcessStatusChangeRequestEvent.java  |    28 +-
 .../messaging/event/ProcessSubmitEvent.java     |    28 +-
 .../messaging/event/ProcessTerminateEvent.java  |    28 +-
 .../model/messaging/event/TaskIdentifier.java   |    28 +-
 .../messaging/event/TaskOutputChangeEvent.java  |    28 +-
 .../messaging/event/TaskStatusChangeEvent.java  |    28 +-
 .../event/TaskStatusChangeRequestEvent.java     |    28 +-
 .../parallelism/ApplicationParallelismType.java |    28 +-
 .../airavata/model/process/ProcessModel.java    |    28 +-
 .../ComputationalResourceSchedulingModel.java   |    28 +-
 .../airavata/model/security/AuthzToken.java     |    28 +-
 .../airavata/model/status/ExperimentState.java  |    28 +-
 .../airavata/model/status/ExperimentStatus.java |    28 +-
 .../apache/airavata/model/status/JobState.java  |    28 +-
 .../apache/airavata/model/status/JobStatus.java |    28 +-
 .../airavata/model/status/ProcessState.java     |    28 +-
 .../airavata/model/status/ProcessStatus.java    |    28 +-
 .../airavata/model/status/QueueStatusModel.java |    28 +-
 .../apache/airavata/model/status/TaskState.java |    28 +-
 .../airavata/model/status/TaskStatus.java       |    28 +-
 .../airavata/model/task/DataStageType.java      |    28 +-
 .../model/task/DataStagingTaskModel.java        |    28 +-
 .../model/task/EnvironmentSetupTaskModel.java   |    28 +-
 .../model/task/JobSubmissionTaskModel.java      |    28 +-
 .../airavata/model/task/MonitorTaskModel.java   |    28 +-
 .../apache/airavata/model/task/TaskModel.java   |    28 +-
 .../apache/airavata/model/task/TaskTypes.java   |    28 +-
 .../apache/airavata/model/tenant/Tenant.java    |  2322 +++
 .../model/tenant/TenantApprovalStatus.java      |    77 +
 .../airavata/model/user/NSFDemographics.java    |    28 +-
 .../org/apache/airavata/model/user/Status.java  |    28 +-
 .../airavata/model/user/USCitizenship.java      |    28 +-
 .../apache/airavata/model/user/UserProfile.java |   734 +-
 .../apache/airavata/model/user/disability.java  |    28 +-
 .../apache/airavata/model/user/ethnicity.java   |    28 +-
 .../org/apache/airavata/model/user/race.java    |    28 +-
 .../model/user/user_profile_modelConstants.java |    28 +-
 .../airavata/model/workspace/Gateway.java       |    28 +-
 .../model/workspace/GatewayApprovalStatus.java  |    28 +-
 .../apache/airavata/model/workspace/Group.java  |    28 +-
 .../airavata/model/workspace/Notification.java  |    28 +-
 .../model/workspace/NotificationPriority.java   |    28 +-
 .../airavata/model/workspace/Project.java       |    28 +-
 .../apache/airavata/model/workspace/User.java   |    28 +-
 .../airavata-apis/airavata_api.thrift           |     4 +-
 .../component-cpis/registry-api.thrift          |     2 +-
 .../component-cpis/user-profile-cpi.thrift      |     2 +-
 .../data-models/airavata_data_models.thrift     |     5 +-
 .../user_resource_profile_model.thrift          |     2 +-
 .../group_manager_model.thrift                  |    48 -
 .../user-group-models/user_profile_model.thrift |   186 -
 .../group_manager_model.thrift                  |    48 +
 .../tenant_profile_model.thrift                 |    58 +
 .../user_profile_model.thrift                   |   197 +
 .../iam-admin-services-cpi.thrift               |     2 +-
 .../profile-user/profile-user-cpi.thrift        |     2 +-
 199 files changed, 28631 insertions(+), 14193 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 52d3683..14e75c4 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/airavata_apiConstants.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/airavata_apiConstants.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/airavata_apiConstants.java
index ae8145d..f8e87d8 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/airavata_apiConstants.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/airavata_apiConstants.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *


[05/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
index 0c98f5b..8d45a52 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
index b49f1d6..bc27ae6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
index 873a336..517ee3b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
index c6f14b3..f909497 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
index c9f7d6e..f6a7019 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
index 87004f1..a81da69 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
index 7e00a8f..b192ab6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
index b4d51d3..9baedd4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
index 9b62458..e3de8dc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
index f7d2d14..7b01741 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSearchFields.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSearchFields.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSearchFields.java
index f782b29..84a0a6b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSearchFields.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSearchFields.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
index 6800779..03aa46a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
index 86f65b1..62a568b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentType.java
index ed0fa73..3e0ae54 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ProjectSearchFields.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ProjectSearchFields.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ProjectSearchFields.java
index 73f3013..d805c78 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ProjectSearchFields.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ProjectSearchFields.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
index ccc2ec8..664c922 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
index 89507b9..4db9ae4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/ResourcePermissionType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/ResourcePermissionType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/ResourcePermissionType.java
index fb9db6d..558ed59 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/ResourcePermissionType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/ResourcePermissionType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/ResourceType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/ResourceType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/ResourceType.java
index a9e4f9e..e9b034a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/ResourceType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/ResourceType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
index 206c90d..9553b0c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
index 66ed96b..2223a90 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
index c06d874..7ec7315 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
index 091d1c8..b8e6d14 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
index e305ceb..046cb14 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
index d3a80f1..5f8d700 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
index 85fa373..9a242fd 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/MessageLevel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/MessageLevel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/MessageLevel.java
index 7503e6d..3694d9e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/MessageLevel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/MessageLevel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/MessageType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/MessageType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/MessageType.java
index 075b3e0..16bac7f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/MessageType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/MessageType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
index 18181f2..f683aa6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
index 16f025d..e584686 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
index f81f89f..43409dc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
index 98f5e00..6b03647 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
index a8a87e6..572d3c6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
index eaad2df..3b96d84 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
index 9c88ce3..c81656a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
index ec9410f..b471a4f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *


[10/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
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/Dbevent/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Dbevent/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Dbevent/Types.php
new file mode 100644
index 0000000..bfbc983
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Dbevent/Types.php
@@ -0,0 +1,573 @@
+<?php
+namespace Airavata\Model\Dbevent;
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+use Thrift\Base\TBase;
+use Thrift\Type\TType;
+use Thrift\Type\TMessageType;
+use Thrift\Exception\TException;
+use Thrift\Exception\TProtocolException;
+use Thrift\Protocol\TProtocol;
+use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Thrift\Exception\TApplicationException;
+
+
+final class CrudType {
+  const CREATE = 0;
+  const READ = 1;
+  const UPDATE = 2;
+  const DELETE = 3;
+  static public $__names = array(
+    0 => 'CREATE',
+    1 => 'READ',
+    2 => 'UPDATE',
+    3 => 'DELETE',
+  );
+}
+
+final class EntityType {
+  const USER_PROFILE = 0;
+  const TENANT = 1;
+  const GROUP = 2;
+  const PROJECT = 3;
+  const EXPERIMENT = 4;
+  const APPLICATION = 5;
+  const SHARING = 6;
+  const REGISTRY = 7;
+  static public $__names = array(
+    0 => 'USER_PROFILE',
+    1 => 'TENANT',
+    2 => 'GROUP',
+    3 => 'PROJECT',
+    4 => 'EXPERIMENT',
+    5 => 'APPLICATION',
+    6 => 'SHARING',
+    7 => 'REGISTRY',
+  );
+}
+
+final class DBEventType {
+  const PUBLISHER = 0;
+  const SUBSCRIBER = 1;
+  static public $__names = array(
+    0 => 'PUBLISHER',
+    1 => 'SUBSCRIBER',
+  );
+}
+
+class DBEventPublisherContext {
+  static $_TSPEC;
+
+  /**
+   * @var int
+   */
+  public $crudType = null;
+  /**
+   * @var int
+   */
+  public $entityType = null;
+  /**
+   * @var string
+   */
+  public $entityDataModel = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'crudType',
+          'type' => TType::I32,
+          ),
+        2 => array(
+          'var' => 'entityType',
+          'type' => TType::I32,
+          ),
+        3 => array(
+          'var' => 'entityDataModel',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['crudType'])) {
+        $this->crudType = $vals['crudType'];
+      }
+      if (isset($vals['entityType'])) {
+        $this->entityType = $vals['entityType'];
+      }
+      if (isset($vals['entityDataModel'])) {
+        $this->entityDataModel = $vals['entityDataModel'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'DBEventPublisherContext';
+  }
+
+  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::I32) {
+            $xfer += $input->readI32($this->crudType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->entityType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->entityDataModel);
+          } 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('DBEventPublisherContext');
+    if ($this->crudType !== null) {
+      $xfer += $output->writeFieldBegin('crudType', TType::I32, 1);
+      $xfer += $output->writeI32($this->crudType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->entityType !== null) {
+      $xfer += $output->writeFieldBegin('entityType', TType::I32, 2);
+      $xfer += $output->writeI32($this->entityType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->entityDataModel !== null) {
+      $xfer += $output->writeFieldBegin('entityDataModel', TType::STRING, 3);
+      $xfer += $output->writeString($this->entityDataModel);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class DBEventPublisher {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Dbevent\DBEventPublisherContext
+   */
+  public $publisherContext = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'publisherContext',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Dbevent\DBEventPublisherContext',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['publisherContext'])) {
+        $this->publisherContext = $vals['publisherContext'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'DBEventPublisher';
+  }
+
+  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::STRUCT) {
+            $this->publisherContext = new \Airavata\Model\Dbevent\DBEventPublisherContext();
+            $xfer += $this->publisherContext->read($input);
+          } 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('DBEventPublisher');
+    if ($this->publisherContext !== null) {
+      if (!is_object($this->publisherContext)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('publisherContext', TType::STRUCT, 1);
+      $xfer += $this->publisherContext->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class DBEventSubscriber {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $subscriberService = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'subscriberService',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['subscriberService'])) {
+        $this->subscriberService = $vals['subscriberService'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'DBEventSubscriber';
+  }
+
+  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->subscriberService);
+          } 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('DBEventSubscriber');
+    if ($this->subscriberService !== null) {
+      $xfer += $output->writeFieldBegin('subscriberService', TType::STRING, 1);
+      $xfer += $output->writeString($this->subscriberService);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class DBEventMessageContext {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Dbevent\DBEventPublisher
+   */
+  public $publisher = null;
+  /**
+   * @var \Airavata\Model\Dbevent\DBEventSubscriber
+   */
+  public $subscriber = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'publisher',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Dbevent\DBEventPublisher',
+          ),
+        2 => array(
+          'var' => 'subscriber',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Dbevent\DBEventSubscriber',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['publisher'])) {
+        $this->publisher = $vals['publisher'];
+      }
+      if (isset($vals['subscriber'])) {
+        $this->subscriber = $vals['subscriber'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'DBEventMessageContext';
+  }
+
+  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::STRUCT) {
+            $this->publisher = new \Airavata\Model\Dbevent\DBEventPublisher();
+            $xfer += $this->publisher->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->subscriber = new \Airavata\Model\Dbevent\DBEventSubscriber();
+            $xfer += $this->subscriber->read($input);
+          } 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('DBEventMessageContext');
+    if ($this->publisher !== null) {
+      if (!is_object($this->publisher)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('publisher', TType::STRUCT, 1);
+      $xfer += $this->publisher->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->subscriber !== null) {
+      if (!is_object($this->subscriber)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('subscriber', TType::STRUCT, 2);
+      $xfer += $this->subscriber->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class DBEventMessage {
+  static $_TSPEC;
+
+  /**
+   * @var int
+   */
+  public $dbEventType = null;
+  /**
+   * @var \Airavata\Model\Dbevent\DBEventMessageContext
+   */
+  public $messageContext = null;
+  /**
+   * @var string
+   */
+  public $publisherService = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'dbEventType',
+          'type' => TType::I32,
+          ),
+        2 => array(
+          'var' => 'messageContext',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Dbevent\DBEventMessageContext',
+          ),
+        3 => array(
+          'var' => 'publisherService',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['dbEventType'])) {
+        $this->dbEventType = $vals['dbEventType'];
+      }
+      if (isset($vals['messageContext'])) {
+        $this->messageContext = $vals['messageContext'];
+      }
+      if (isset($vals['publisherService'])) {
+        $this->publisherService = $vals['publisherService'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'DBEventMessage';
+  }
+
+  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::I32) {
+            $xfer += $input->readI32($this->dbEventType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->messageContext = new \Airavata\Model\Dbevent\DBEventMessageContext();
+            $xfer += $this->messageContext->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->publisherService);
+          } 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('DBEventMessage');
+    if ($this->dbEventType !== null) {
+      $xfer += $output->writeFieldBegin('dbEventType', TType::I32, 1);
+      $xfer += $output->writeI32($this->dbEventType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->messageContext !== null) {
+      if (!is_object($this->messageContext)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('messageContext', TType::STRUCT, 2);
+      $xfer += $this->messageContext->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->publisherService !== null) {
+      $xfer += $output->writeFieldBegin('publisherService', TType::STRING, 3);
+      $xfer += $output->writeString($this->publisherService);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+

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/Messaging/Event/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
index 96a015e..fed31a4 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
@@ -39,6 +39,7 @@ final class MessageType {
   const LAUNCHPROCESS = 5;
   const TERMINATEPROCESS = 6;
   const PROCESSOUTPUT = 7;
+  const DB_EVENT = 8;
   static public $__names = array(
     0 => 'EXPERIMENT',
     1 => 'EXPERIMENT_CANCEL',
@@ -48,6 +49,7 @@ final class MessageType {
     5 => 'LAUNCHPROCESS',
     6 => 'TERMINATEPROCESS',
     7 => 'PROCESSOUTPUT',
+    8 => 'DB_EVENT',
   );
 }
 

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/Tenant/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Tenant/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Tenant/Types.php
new file mode 100644
index 0000000..74595f8
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Tenant/Types.php
@@ -0,0 +1,528 @@
+<?php
+namespace Airavata\Model\Tenant;
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+use Thrift\Base\TBase;
+use Thrift\Type\TType;
+use Thrift\Type\TMessageType;
+use Thrift\Exception\TException;
+use Thrift\Exception\TProtocolException;
+use Thrift\Protocol\TProtocol;
+use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Thrift\Exception\TApplicationException;
+
+
+final class TenantApprovalStatus {
+  const REQUESTED = 0;
+  const APPROVED = 1;
+  const ACTIVE = 2;
+  const DEACTIVATED = 3;
+  const CANCELLED = 4;
+  const DENIED = 5;
+  const CREATED = 6;
+  static public $__names = array(
+    0 => 'REQUESTED',
+    1 => 'APPROVED',
+    2 => 'ACTIVE',
+    3 => 'DEACTIVATED',
+    4 => 'CANCELLED',
+    5 => 'DENIED',
+    6 => 'CREATED',
+  );
+}
+
+class Tenant {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $tenantId = null;
+  /**
+   * @var int
+   */
+  public $tenantApprovalStatus = null;
+  /**
+   * @var string
+   */
+  public $tenantName = null;
+  /**
+   * @var string
+   */
+  public $domain = null;
+  /**
+   * @var string
+   */
+  public $emailAddress = null;
+  /**
+   * @var string
+   */
+  public $tenantAcronym = null;
+  /**
+   * @var string
+   */
+  public $tenantURL = null;
+  /**
+   * @var string
+   */
+  public $tenantPublicAbstract = null;
+  /**
+   * @var string
+   */
+  public $reviewProposalDescription = null;
+  /**
+   * @var string
+   */
+  public $tenantAdminFirstName = null;
+  /**
+   * @var string
+   */
+  public $tenantAdminLastName = null;
+  /**
+   * @var string
+   */
+  public $tenantAdminEmail = null;
+  /**
+   * @var string
+   */
+  public $identityServerUserName = null;
+  /**
+   * @var string
+   */
+  public $identityServerPasswordToken = null;
+  /**
+   * @var string
+   */
+  public $declinedReason = null;
+  /**
+   * @var string
+   */
+  public $oauthClientId = null;
+  /**
+   * @var string
+   */
+  public $oauthClientSecret = null;
+  /**
+   * @var int
+   */
+  public $requestCreationTime = null;
+  /**
+   * @var string
+   */
+  public $requesterUsername = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'tenantId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'tenantApprovalStatus',
+          'type' => TType::I32,
+          ),
+        3 => array(
+          'var' => 'tenantName',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'domain',
+          'type' => TType::STRING,
+          ),
+        5 => array(
+          'var' => 'emailAddress',
+          'type' => TType::STRING,
+          ),
+        6 => array(
+          'var' => 'tenantAcronym',
+          'type' => TType::STRING,
+          ),
+        7 => array(
+          'var' => 'tenantURL',
+          'type' => TType::STRING,
+          ),
+        8 => array(
+          'var' => 'tenantPublicAbstract',
+          'type' => TType::STRING,
+          ),
+        9 => array(
+          'var' => 'reviewProposalDescription',
+          'type' => TType::STRING,
+          ),
+        10 => array(
+          'var' => 'tenantAdminFirstName',
+          'type' => TType::STRING,
+          ),
+        11 => array(
+          'var' => 'tenantAdminLastName',
+          'type' => TType::STRING,
+          ),
+        12 => array(
+          'var' => 'tenantAdminEmail',
+          'type' => TType::STRING,
+          ),
+        13 => array(
+          'var' => 'identityServerUserName',
+          'type' => TType::STRING,
+          ),
+        14 => array(
+          'var' => 'identityServerPasswordToken',
+          'type' => TType::STRING,
+          ),
+        15 => array(
+          'var' => 'declinedReason',
+          'type' => TType::STRING,
+          ),
+        16 => array(
+          'var' => 'oauthClientId',
+          'type' => TType::STRING,
+          ),
+        17 => array(
+          'var' => 'oauthClientSecret',
+          'type' => TType::STRING,
+          ),
+        18 => array(
+          'var' => 'requestCreationTime',
+          'type' => TType::I64,
+          ),
+        19 => array(
+          'var' => 'requesterUsername',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['tenantId'])) {
+        $this->tenantId = $vals['tenantId'];
+      }
+      if (isset($vals['tenantApprovalStatus'])) {
+        $this->tenantApprovalStatus = $vals['tenantApprovalStatus'];
+      }
+      if (isset($vals['tenantName'])) {
+        $this->tenantName = $vals['tenantName'];
+      }
+      if (isset($vals['domain'])) {
+        $this->domain = $vals['domain'];
+      }
+      if (isset($vals['emailAddress'])) {
+        $this->emailAddress = $vals['emailAddress'];
+      }
+      if (isset($vals['tenantAcronym'])) {
+        $this->tenantAcronym = $vals['tenantAcronym'];
+      }
+      if (isset($vals['tenantURL'])) {
+        $this->tenantURL = $vals['tenantURL'];
+      }
+      if (isset($vals['tenantPublicAbstract'])) {
+        $this->tenantPublicAbstract = $vals['tenantPublicAbstract'];
+      }
+      if (isset($vals['reviewProposalDescription'])) {
+        $this->reviewProposalDescription = $vals['reviewProposalDescription'];
+      }
+      if (isset($vals['tenantAdminFirstName'])) {
+        $this->tenantAdminFirstName = $vals['tenantAdminFirstName'];
+      }
+      if (isset($vals['tenantAdminLastName'])) {
+        $this->tenantAdminLastName = $vals['tenantAdminLastName'];
+      }
+      if (isset($vals['tenantAdminEmail'])) {
+        $this->tenantAdminEmail = $vals['tenantAdminEmail'];
+      }
+      if (isset($vals['identityServerUserName'])) {
+        $this->identityServerUserName = $vals['identityServerUserName'];
+      }
+      if (isset($vals['identityServerPasswordToken'])) {
+        $this->identityServerPasswordToken = $vals['identityServerPasswordToken'];
+      }
+      if (isset($vals['declinedReason'])) {
+        $this->declinedReason = $vals['declinedReason'];
+      }
+      if (isset($vals['oauthClientId'])) {
+        $this->oauthClientId = $vals['oauthClientId'];
+      }
+      if (isset($vals['oauthClientSecret'])) {
+        $this->oauthClientSecret = $vals['oauthClientSecret'];
+      }
+      if (isset($vals['requestCreationTime'])) {
+        $this->requestCreationTime = $vals['requestCreationTime'];
+      }
+      if (isset($vals['requesterUsername'])) {
+        $this->requesterUsername = $vals['requesterUsername'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Tenant';
+  }
+
+  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->tenantId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->tenantApprovalStatus);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->tenantName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->domain);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->emailAddress);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->tenantAcronym);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->tenantURL);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->tenantPublicAbstract);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->reviewProposalDescription);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->tenantAdminFirstName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 11:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->tenantAdminLastName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 12:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->tenantAdminEmail);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 13:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->identityServerUserName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 14:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->identityServerPasswordToken);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 15:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->declinedReason);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 16:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->oauthClientId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 17:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->oauthClientSecret);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 18:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->requestCreationTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 19:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->requesterUsername);
+          } 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('Tenant');
+    if ($this->tenantId !== null) {
+      $xfer += $output->writeFieldBegin('tenantId', TType::STRING, 1);
+      $xfer += $output->writeString($this->tenantId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->tenantApprovalStatus !== null) {
+      $xfer += $output->writeFieldBegin('tenantApprovalStatus', TType::I32, 2);
+      $xfer += $output->writeI32($this->tenantApprovalStatus);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->tenantName !== null) {
+      $xfer += $output->writeFieldBegin('tenantName', TType::STRING, 3);
+      $xfer += $output->writeString($this->tenantName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->domain !== null) {
+      $xfer += $output->writeFieldBegin('domain', TType::STRING, 4);
+      $xfer += $output->writeString($this->domain);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->emailAddress !== null) {
+      $xfer += $output->writeFieldBegin('emailAddress', TType::STRING, 5);
+      $xfer += $output->writeString($this->emailAddress);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->tenantAcronym !== null) {
+      $xfer += $output->writeFieldBegin('tenantAcronym', TType::STRING, 6);
+      $xfer += $output->writeString($this->tenantAcronym);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->tenantURL !== null) {
+      $xfer += $output->writeFieldBegin('tenantURL', TType::STRING, 7);
+      $xfer += $output->writeString($this->tenantURL);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->tenantPublicAbstract !== null) {
+      $xfer += $output->writeFieldBegin('tenantPublicAbstract', TType::STRING, 8);
+      $xfer += $output->writeString($this->tenantPublicAbstract);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->reviewProposalDescription !== null) {
+      $xfer += $output->writeFieldBegin('reviewProposalDescription', TType::STRING, 9);
+      $xfer += $output->writeString($this->reviewProposalDescription);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->tenantAdminFirstName !== null) {
+      $xfer += $output->writeFieldBegin('tenantAdminFirstName', TType::STRING, 10);
+      $xfer += $output->writeString($this->tenantAdminFirstName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->tenantAdminLastName !== null) {
+      $xfer += $output->writeFieldBegin('tenantAdminLastName', TType::STRING, 11);
+      $xfer += $output->writeString($this->tenantAdminLastName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->tenantAdminEmail !== null) {
+      $xfer += $output->writeFieldBegin('tenantAdminEmail', TType::STRING, 12);
+      $xfer += $output->writeString($this->tenantAdminEmail);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->identityServerUserName !== null) {
+      $xfer += $output->writeFieldBegin('identityServerUserName', TType::STRING, 13);
+      $xfer += $output->writeString($this->identityServerUserName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->identityServerPasswordToken !== null) {
+      $xfer += $output->writeFieldBegin('identityServerPasswordToken', TType::STRING, 14);
+      $xfer += $output->writeString($this->identityServerPasswordToken);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->declinedReason !== null) {
+      $xfer += $output->writeFieldBegin('declinedReason', TType::STRING, 15);
+      $xfer += $output->writeString($this->declinedReason);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->oauthClientId !== null) {
+      $xfer += $output->writeFieldBegin('oauthClientId', TType::STRING, 16);
+      $xfer += $output->writeString($this->oauthClientId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->oauthClientSecret !== null) {
+      $xfer += $output->writeFieldBegin('oauthClientSecret', TType::STRING, 17);
+      $xfer += $output->writeString($this->oauthClientSecret);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->requestCreationTime !== null) {
+      $xfer += $output->writeFieldBegin('requestCreationTime', TType::I64, 18);
+      $xfer += $output->writeI64($this->requestCreationTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->requesterUsername !== null) {
+      $xfer += $output->writeFieldBegin('requesterUsername', TType::STRING, 19);
+      $xfer += $output->writeString($this->requesterUsername);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+

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/User/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/User/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/User/Types.php
index c9aa616..1ebd5db 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/User/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/User/Types.php
@@ -133,6 +133,10 @@ class NSFDemographics {
   /**
    * @var string
    */
+  public $airavataInternalUserId = "DO_NOT_SET_AT_CLIENTS";
+  /**
+   * @var string
+   */
   public $gender = null;
   /**
    * @var int
@@ -155,14 +159,18 @@ class NSFDemographics {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'gender',
+          'var' => 'airavataInternalUserId',
           'type' => TType::STRING,
           ),
         2 => array(
+          'var' => 'gender',
+          'type' => TType::STRING,
+          ),
+        3 => array(
           'var' => 'usCitizenship',
           'type' => TType::I32,
           ),
-        3 => array(
+        4 => array(
           'var' => 'ethnicities',
           'type' => TType::LST,
           'etype' => TType::I32,
@@ -170,7 +178,7 @@ class NSFDemographics {
             'type' => TType::I32,
             ),
           ),
-        4 => array(
+        5 => array(
           'var' => 'races',
           'type' => TType::LST,
           'etype' => TType::I32,
@@ -178,7 +186,7 @@ class NSFDemographics {
             'type' => TType::I32,
             ),
           ),
-        5 => array(
+        6 => array(
           'var' => 'disabilities',
           'type' => TType::LST,
           'etype' => TType::I32,
@@ -189,6 +197,9 @@ class NSFDemographics {
         );
     }
     if (is_array($vals)) {
+      if (isset($vals['airavataInternalUserId'])) {
+        $this->airavataInternalUserId = $vals['airavataInternalUserId'];
+      }
       if (isset($vals['gender'])) {
         $this->gender = $vals['gender'];
       }
@@ -228,19 +239,26 @@ class NSFDemographics {
       {
         case 1:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gender);
+            $xfer += $input->readString($this->airavataInternalUserId);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gender);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
           if ($ftype == TType::I32) {
             $xfer += $input->readI32($this->usCitizenship);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 3:
+        case 4:
           if ($ftype == TType::LST) {
             $this->ethnicities = array();
             $_size0 = 0;
@@ -257,7 +275,7 @@ class NSFDemographics {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 4:
+        case 5:
           if ($ftype == TType::LST) {
             $this->races = array();
             $_size6 = 0;
@@ -274,7 +292,7 @@ class NSFDemographics {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 5:
+        case 6:
           if ($ftype == TType::LST) {
             $this->disabilities = array();
             $_size12 = 0;
@@ -304,13 +322,18 @@ class NSFDemographics {
   public function write($output) {
     $xfer = 0;
     $xfer += $output->writeStructBegin('NSFDemographics');
+    if ($this->airavataInternalUserId !== null) {
+      $xfer += $output->writeFieldBegin('airavataInternalUserId', TType::STRING, 1);
+      $xfer += $output->writeString($this->airavataInternalUserId);
+      $xfer += $output->writeFieldEnd();
+    }
     if ($this->gender !== null) {
-      $xfer += $output->writeFieldBegin('gender', TType::STRING, 1);
+      $xfer += $output->writeFieldBegin('gender', TType::STRING, 2);
       $xfer += $output->writeString($this->gender);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->usCitizenship !== null) {
-      $xfer += $output->writeFieldBegin('usCitizenship', TType::I32, 2);
+      $xfer += $output->writeFieldBegin('usCitizenship', TType::I32, 3);
       $xfer += $output->writeI32($this->usCitizenship);
       $xfer += $output->writeFieldEnd();
     }
@@ -318,7 +341,7 @@ class NSFDemographics {
       if (!is_array($this->ethnicities)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('ethnicities', TType::LST, 3);
+      $xfer += $output->writeFieldBegin('ethnicities', TType::LST, 4);
       {
         $output->writeListBegin(TType::I32, count($this->ethnicities));
         {
@@ -335,7 +358,7 @@ class NSFDemographics {
       if (!is_array($this->races)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('races', TType::LST, 4);
+      $xfer += $output->writeFieldBegin('races', TType::LST, 5);
       {
         $output->writeListBegin(TType::I32, count($this->races));
         {
@@ -352,7 +375,7 @@ class NSFDemographics {
       if (!is_array($this->disabilities)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('disabilities', TType::LST, 5);
+      $xfer += $output->writeFieldBegin('disabilities', TType::LST, 6);
       {
         $output->writeListBegin(TType::I32, count($this->disabilities));
         {
@@ -393,6 +416,12 @@ class NSFDemographics {
  * *  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
  * *
@@ -450,6 +479,26 @@ class UserProfile {
   /**
    * @var string
    */
+  public $firstName = null;
+  /**
+   * @var string
+   */
+  public $lastName = null;
+  /**
+   * @var string
+   */
+  public $middleName = null;
+  /**
+   * @var string
+   */
+  public $namePrefix = null;
+  /**
+   * @var string
+   */
+  public $nameSuffix = null;
+  /**
+   * @var string
+   */
   public $userName = null;
   /**
    * @var string
@@ -476,15 +525,15 @@ class UserProfile {
    */
   public $orginationAffiliation = null;
   /**
-   * @var string
+   * @var int
    */
   public $creationTime = null;
   /**
-   * @var string
+   * @var int
    */
   public $lastAccessTime = null;
   /**
-   * @var string
+   * @var int
    */
   public $validUntil = null;
   /**
@@ -540,14 +589,34 @@ class UserProfile {
             ),
           ),
         6 => array(
-          'var' => 'userName',
+          'var' => 'firstName',
           'type' => TType::STRING,
           ),
         7 => array(
-          'var' => 'orcidId',
+          'var' => 'lastName',
           'type' => TType::STRING,
           ),
         8 => array(
+          'var' => 'middleName',
+          'type' => TType::STRING,
+          ),
+        9 => array(
+          'var' => 'namePrefix',
+          'type' => TType::STRING,
+          ),
+        10 => array(
+          'var' => 'nameSuffix',
+          'type' => TType::STRING,
+          ),
+        11 => array(
+          'var' => 'userName',
+          'type' => TType::STRING,
+          ),
+        12 => array(
+          'var' => 'orcidId',
+          'type' => TType::STRING,
+          ),
+        13 => array(
           'var' => 'phones',
           'type' => TType::LST,
           'etype' => TType::STRING,
@@ -555,11 +624,11 @@ class UserProfile {
             'type' => TType::STRING,
             ),
           ),
-        9 => array(
+        14 => array(
           'var' => 'country',
           'type' => TType::STRING,
           ),
-        10 => array(
+        15 => array(
           'var' => 'nationality',
           'type' => TType::LST,
           'etype' => TType::STRING,
@@ -567,35 +636,35 @@ class UserProfile {
             'type' => TType::STRING,
             ),
           ),
-        11 => array(
+        16 => array(
           'var' => 'homeOrganization',
           'type' => TType::STRING,
           ),
-        12 => array(
+        17 => array(
           'var' => 'orginationAffiliation',
           'type' => TType::STRING,
           ),
-        13 => array(
+        18 => array(
           'var' => 'creationTime',
-          'type' => TType::STRING,
+          'type' => TType::I64,
           ),
-        14 => array(
+        19 => array(
           'var' => 'lastAccessTime',
-          'type' => TType::STRING,
+          'type' => TType::I64,
           ),
-        15 => array(
+        20 => array(
           'var' => 'validUntil',
-          'type' => TType::STRING,
+          'type' => TType::I64,
           ),
-        16 => array(
+        21 => array(
           'var' => 'State',
           'type' => TType::I32,
           ),
-        17 => array(
+        22 => array(
           'var' => 'comments',
           'type' => TType::STRING,
           ),
-        18 => array(
+        23 => array(
           'var' => 'labeledURI',
           'type' => TType::LST,
           'etype' => TType::STRING,
@@ -603,15 +672,15 @@ class UserProfile {
             'type' => TType::STRING,
             ),
           ),
-        19 => array(
+        24 => array(
           'var' => 'gpgKey',
           'type' => TType::STRING,
           ),
-        20 => array(
+        25 => array(
           'var' => 'timeZone',
           'type' => TType::STRING,
           ),
-        21 => array(
+        26 => array(
           'var' => 'nsfDemographics',
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\User\NSFDemographics',
@@ -634,6 +703,21 @@ class UserProfile {
       if (isset($vals['emails'])) {
         $this->emails = $vals['emails'];
       }
+      if (isset($vals['firstName'])) {
+        $this->firstName = $vals['firstName'];
+      }
+      if (isset($vals['lastName'])) {
+        $this->lastName = $vals['lastName'];
+      }
+      if (isset($vals['middleName'])) {
+        $this->middleName = $vals['middleName'];
+      }
+      if (isset($vals['namePrefix'])) {
+        $this->namePrefix = $vals['namePrefix'];
+      }
+      if (isset($vals['nameSuffix'])) {
+        $this->nameSuffix = $vals['nameSuffix'];
+      }
       if (isset($vals['userName'])) {
         $this->userName = $vals['userName'];
       }
@@ -751,19 +835,54 @@ class UserProfile {
           break;
         case 6:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->userName);
+            $xfer += $input->readString($this->firstName);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 7:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->orcidId);
+            $xfer += $input->readString($this->lastName);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 8:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->middleName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->namePrefix);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->nameSuffix);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 11:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->userName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 12:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->orcidId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 13:
           if ($ftype == TType::LST) {
             $this->phones = array();
             $_size27 = 0;
@@ -780,14 +899,14 @@ class UserProfile {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 9:
+        case 14:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->country);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 10:
+        case 15:
           if ($ftype == TType::LST) {
             $this->nationality = array();
             $_size33 = 0;
@@ -804,56 +923,56 @@ class UserProfile {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 11:
+        case 16:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->homeOrganization);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 12:
+        case 17:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->orginationAffiliation);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 13:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->creationTime);
+        case 18:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->creationTime);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 14:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->lastAccessTime);
+        case 19:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->lastAccessTime);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 15:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->validUntil);
+        case 20:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->validUntil);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 16:
+        case 21:
           if ($ftype == TType::I32) {
             $xfer += $input->readI32($this->State);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 17:
+        case 22:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->comments);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 18:
+        case 23:
           if ($ftype == TType::LST) {
             $this->labeledURI = array();
             $_size39 = 0;
@@ -870,21 +989,21 @@ class UserProfile {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 19:
+        case 24:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->gpgKey);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 20:
+        case 25:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->timeZone);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 21:
+        case 26:
           if ($ftype == TType::STRUCT) {
             $this->nsfDemographics = new \Airavata\Model\User\NSFDemographics();
             $xfer += $this->nsfDemographics->read($input);
@@ -942,13 +1061,38 @@ class UserProfile {
       }
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->firstName !== null) {
+      $xfer += $output->writeFieldBegin('firstName', TType::STRING, 6);
+      $xfer += $output->writeString($this->firstName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->lastName !== null) {
+      $xfer += $output->writeFieldBegin('lastName', TType::STRING, 7);
+      $xfer += $output->writeString($this->lastName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->middleName !== null) {
+      $xfer += $output->writeFieldBegin('middleName', TType::STRING, 8);
+      $xfer += $output->writeString($this->middleName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->namePrefix !== null) {
+      $xfer += $output->writeFieldBegin('namePrefix', TType::STRING, 9);
+      $xfer += $output->writeString($this->namePrefix);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->nameSuffix !== null) {
+      $xfer += $output->writeFieldBegin('nameSuffix', TType::STRING, 10);
+      $xfer += $output->writeString($this->nameSuffix);
+      $xfer += $output->writeFieldEnd();
+    }
     if ($this->userName !== null) {
-      $xfer += $output->writeFieldBegin('userName', TType::STRING, 6);
+      $xfer += $output->writeFieldBegin('userName', TType::STRING, 11);
       $xfer += $output->writeString($this->userName);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->orcidId !== null) {
-      $xfer += $output->writeFieldBegin('orcidId', TType::STRING, 7);
+      $xfer += $output->writeFieldBegin('orcidId', TType::STRING, 12);
       $xfer += $output->writeString($this->orcidId);
       $xfer += $output->writeFieldEnd();
     }
@@ -956,7 +1100,7 @@ class UserProfile {
       if (!is_array($this->phones)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('phones', TType::LST, 8);
+      $xfer += $output->writeFieldBegin('phones', TType::LST, 13);
       {
         $output->writeListBegin(TType::STRING, count($this->phones));
         {
@@ -970,7 +1114,7 @@ class UserProfile {
       $xfer += $output->writeFieldEnd();
     }
     if ($this->country !== null) {
-      $xfer += $output->writeFieldBegin('country', TType::STRING, 9);
+      $xfer += $output->writeFieldBegin('country', TType::STRING, 14);
       $xfer += $output->writeString($this->country);
       $xfer += $output->writeFieldEnd();
     }
@@ -978,7 +1122,7 @@ class UserProfile {
       if (!is_array($this->nationality)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('nationality', TType::LST, 10);
+      $xfer += $output->writeFieldBegin('nationality', TType::LST, 15);
       {
         $output->writeListBegin(TType::STRING, count($this->nationality));
         {
@@ -992,37 +1136,37 @@ class UserProfile {
       $xfer += $output->writeFieldEnd();
     }
     if ($this->homeOrganization !== null) {
-      $xfer += $output->writeFieldBegin('homeOrganization', TType::STRING, 11);
+      $xfer += $output->writeFieldBegin('homeOrganization', TType::STRING, 16);
       $xfer += $output->writeString($this->homeOrganization);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->orginationAffiliation !== null) {
-      $xfer += $output->writeFieldBegin('orginationAffiliation', TType::STRING, 12);
+      $xfer += $output->writeFieldBegin('orginationAffiliation', TType::STRING, 17);
       $xfer += $output->writeString($this->orginationAffiliation);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->creationTime !== null) {
-      $xfer += $output->writeFieldBegin('creationTime', TType::STRING, 13);
-      $xfer += $output->writeString($this->creationTime);
+      $xfer += $output->writeFieldBegin('creationTime', TType::I64, 18);
+      $xfer += $output->writeI64($this->creationTime);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->lastAccessTime !== null) {
-      $xfer += $output->writeFieldBegin('lastAccessTime', TType::STRING, 14);
-      $xfer += $output->writeString($this->lastAccessTime);
+      $xfer += $output->writeFieldBegin('lastAccessTime', TType::I64, 19);
+      $xfer += $output->writeI64($this->lastAccessTime);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->validUntil !== null) {
-      $xfer += $output->writeFieldBegin('validUntil', TType::STRING, 15);
-      $xfer += $output->writeString($this->validUntil);
+      $xfer += $output->writeFieldBegin('validUntil', TType::I64, 20);
+      $xfer += $output->writeI64($this->validUntil);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->State !== null) {
-      $xfer += $output->writeFieldBegin('State', TType::I32, 16);
+      $xfer += $output->writeFieldBegin('State', TType::I32, 21);
       $xfer += $output->writeI32($this->State);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->comments !== null) {
-      $xfer += $output->writeFieldBegin('comments', TType::STRING, 17);
+      $xfer += $output->writeFieldBegin('comments', TType::STRING, 22);
       $xfer += $output->writeString($this->comments);
       $xfer += $output->writeFieldEnd();
     }
@@ -1030,7 +1174,7 @@ class UserProfile {
       if (!is_array($this->labeledURI)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('labeledURI', TType::LST, 18);
+      $xfer += $output->writeFieldBegin('labeledURI', TType::LST, 23);
       {
         $output->writeListBegin(TType::STRING, count($this->labeledURI));
         {
@@ -1044,12 +1188,12 @@ class UserProfile {
       $xfer += $output->writeFieldEnd();
     }
     if ($this->gpgKey !== null) {
-      $xfer += $output->writeFieldBegin('gpgKey', TType::STRING, 19);
+      $xfer += $output->writeFieldBegin('gpgKey', TType::STRING, 24);
       $xfer += $output->writeString($this->gpgKey);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->timeZone !== null) {
-      $xfer += $output->writeFieldBegin('timeZone', TType::STRING, 20);
+      $xfer += $output->writeFieldBegin('timeZone', TType::STRING, 25);
       $xfer += $output->writeString($this->timeZone);
       $xfer += $output->writeFieldEnd();
     }
@@ -1057,7 +1201,7 @@ class UserProfile {
       if (!is_object($this->nsfDemographics)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('nsfDemographics', TType::STRUCT, 21);
+      $xfer += $output->writeFieldBegin('nsfDemographics', TType::STRUCT, 26);
       $xfer += $this->nsfDemographics->write($output);
       $xfer += $output->writeFieldEnd();
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
index 9fbba49..622df08 100755
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
@@ -193,6 +193,13 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
   print('  bool deleteGroup(AuthzToken authzToken, string groupId, string ownerId, string gatewayId)')
   print('  GroupModel getGroup(AuthzToken authzToken, string groupId)')
   print('   getAllGroupsUserBelongs(AuthzToken authzToken, string userName, string gatewayId)')
+  print('  string addUserProfile(AuthzToken authzToken, UserProfile userProfile)')
+  print('  bool updateUserProfile(AuthzToken authzToken, UserProfile userProfile)')
+  print('  UserProfile getUserProfileById(AuthzToken authzToken, string userId, string gatewayId)')
+  print('  bool deleteUserProfile(AuthzToken authzToken, string userId)')
+  print('   getAllUserProfilesInGateway(AuthzToken authzToken, string gatewayId, i32 offset, i32 limit)')
+  print('  UserProfile getUserProfileByName(AuthzToken authzToken, string userName, string gatewayId)')
+  print('  bool doesUserProfileExist(AuthzToken authzToken, string userName, string gatewayId)')
   print('')
   sys.exit(0)
 
@@ -1263,6 +1270,48 @@ elif cmd == 'getAllGroupsUserBelongs':
     sys.exit(1)
   pp.pprint(client.getAllGroupsUserBelongs(eval(args[0]),args[1],args[2],))
 
+elif cmd == 'addUserProfile':
+  if len(args) != 2:
+    print('addUserProfile requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.addUserProfile(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'updateUserProfile':
+  if len(args) != 2:
+    print('updateUserProfile requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.updateUserProfile(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'getUserProfileById':
+  if len(args) != 3:
+    print('getUserProfileById requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.getUserProfileById(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'deleteUserProfile':
+  if len(args) != 2:
+    print('deleteUserProfile requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.deleteUserProfile(eval(args[0]),args[1],))
+
+elif cmd == 'getAllUserProfilesInGateway':
+  if len(args) != 4:
+    print('getAllUserProfilesInGateway requires 4 args')
+    sys.exit(1)
+  pp.pprint(client.getAllUserProfilesInGateway(eval(args[0]),args[1],eval(args[2]),eval(args[3]),))
+
+elif cmd == 'getUserProfileByName':
+  if len(args) != 3:
+    print('getUserProfileByName requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.getUserProfileByName(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'doesUserProfileExist':
+  if len(args) != 3:
+    print('doesUserProfileExist requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.doesUserProfileExist(eval(args[0]),args[1],args[2],))
+
 else:
   print('Unrecognized method %s' % cmd)
   sys.exit(1)


[07/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentState.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentState.java
index 624567b..1e68782 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentState.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentState.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
index 837bff7..4da27d6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
index 8c173ed..949692b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
index a244f95..ea24faa 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
index edc316d..54b3391 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
index 8255e3e..ba6569c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowState.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowState.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowState.java
index 5a290bb..5faac14 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowState.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowState.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
index adbbb65..deadf51 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
index 6925295..36f1d9d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
index da9ee8d..f574e9a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
index c2db4c8..45df73d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
index c7b6ed7..392cc9e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
index 84d6f6d..e832256 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
index 4f481b0..67dfc20 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
index bbed869..7d540de 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index e306e90..c1dd4f9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java
index d48b946..a434764 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/DMType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java
index ab80903..ad1d6e4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/FileSystems.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
index 5d62480..70b7644 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobManagerCommand.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobManagerCommand.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobManagerCommand.java
index b561e36..673da16 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobManagerCommand.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobManagerCommand.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
index 6f127c1..b83cc4e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java
index b73e49c..7c2d3e2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionProtocol.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
index 568d861..907f427 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java
index 6d726ac..8526dff 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/MonitorMode.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ProviderName.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ProviderName.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ProviderName.java
index 5973b1a..34b85a4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ProviderName.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ProviderName.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
index 180a72a..bca1b6f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
index 8b72982..04dfb74 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManagerType.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *
@@ -26,6 +24,10 @@
 package org.apache.airavata.model.appcatalog.computeresource;
 
 
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
 /**
  * * Enumeration of local resource job manager types supported by Airavata
  * *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
index 88ba934..8a9007a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
index 6d8a6bb..1d367fb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index d24f78e..b1c092b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
index 129af1f..31f33f6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
index ecdcb1d..9c274d6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
index e8d9459..1499cd8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
index 0de482b..276b7ca 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
index 979208b..5ac614d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
index 0464336..daa5df2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
@@ -1,22 +1,20 @@
 /**
+ * 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
  *
- * 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
  *
- *   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.
+ * 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)
  *


[14/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index d073bd9..1e19e96 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -2973,6 +2973,13 @@ class AiravataIf {
   virtual bool deleteGroup(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& groupId, const std::string& ownerId, const std::string& gatewayId) = 0;
   virtual void getGroup( ::apache::airavata::model::group::GroupModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& groupId) = 0;
   virtual void getAllGroupsUserBelongs(std::vector< ::apache::airavata::model::group::GroupModel> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId) = 0;
+  virtual void addUserProfile(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile) = 0;
+  virtual bool updateUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile) = 0;
+  virtual void getUserProfileById( ::apache::airavata::model::user::UserProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& gatewayId) = 0;
+  virtual bool deleteUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId) = 0;
+  virtual void getAllUserProfilesInGateway(std::vector< ::apache::airavata::model::user::UserProfile> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int32_t offset, const int32_t limit) = 0;
+  virtual void getUserProfileByName( ::apache::airavata::model::user::UserProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId) = 0;
+  virtual bool doesUserProfileExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId) = 0;
 };
 
 class AiravataIfFactory {
@@ -3569,6 +3576,30 @@ class AiravataNull : virtual public AiravataIf {
   void getAllGroupsUserBelongs(std::vector< ::apache::airavata::model::group::GroupModel> & /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userName */, const std::string& /* gatewayId */) {
     return;
   }
+  void addUserProfile(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::user::UserProfile& /* userProfile */) {
+    return;
+  }
+  bool updateUserProfile(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::user::UserProfile& /* userProfile */) {
+    bool _return = false;
+    return _return;
+  }
+  void getUserProfileById( ::apache::airavata::model::user::UserProfile& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */, const std::string& /* gatewayId */) {
+    return;
+  }
+  bool deleteUserProfile(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */) {
+    bool _return = false;
+    return _return;
+  }
+  void getAllUserProfilesInGateway(std::vector< ::apache::airavata::model::user::UserProfile> & /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayId */, const int32_t /* offset */, const int32_t /* limit */) {
+    return;
+  }
+  void getUserProfileByName( ::apache::airavata::model::user::UserProfile& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userName */, const std::string& /* gatewayId */) {
+    return;
+  }
+  bool doesUserProfileExist(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userName */, const std::string& /* gatewayId */) {
+    bool _return = false;
+    return _return;
+  }
 };
 
 
@@ -27441,141 +27472,1123 @@ class Airavata_getAllGroupsUserBelongs_presult {
 
 };
 
-class AiravataClient : virtual public AiravataIf {
+
+class Airavata_addUserProfile_args {
  public:
-  AiravataClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) {
-    setProtocol(prot);
+
+  Airavata_addUserProfile_args(const Airavata_addUserProfile_args&);
+  Airavata_addUserProfile_args& operator=(const Airavata_addUserProfile_args&);
+  Airavata_addUserProfile_args() {
   }
-  AiravataClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> iprot, boost::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
-    setProtocol(iprot,oprot);
+
+  virtual ~Airavata_addUserProfile_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+   ::apache::airavata::model::user::UserProfile userProfile;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userProfile(const  ::apache::airavata::model::user::UserProfile& val);
+
+  bool operator == (const Airavata_addUserProfile_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userProfile == rhs.userProfile))
+      return false;
+    return true;
   }
- private:
-  void setProtocol(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) {
-  setProtocol(prot,prot);
+  bool operator != (const Airavata_addUserProfile_args &rhs) const {
+    return !(*this == rhs);
   }
-  void setProtocol(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> iprot, boost::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
-    piprot_=iprot;
-    poprot_=oprot;
-    iprot_ = iprot.get();
-    oprot_ = oprot.get();
+
+  bool operator < (const Airavata_addUserProfile_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_addUserProfile_pargs {
+ public:
+
+
+  virtual ~Airavata_addUserProfile_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const  ::apache::airavata::model::user::UserProfile* userProfile;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_addUserProfile_result__isset {
+  _Airavata_addUserProfile_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_addUserProfile_result__isset;
+
+class Airavata_addUserProfile_result {
+ public:
+
+  Airavata_addUserProfile_result(const Airavata_addUserProfile_result&);
+  Airavata_addUserProfile_result& operator=(const Airavata_addUserProfile_result&);
+  Airavata_addUserProfile_result() : success() {
+  }
+
+  virtual ~Airavata_addUserProfile_result() throw();
+  std::string success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_addUserProfile_result__isset __isset;
+
+  void __set_success(const std::string& val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_addUserProfile_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
   }
+  bool operator != (const Airavata_addUserProfile_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_addUserProfile_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_addUserProfile_presult__isset {
+  _Airavata_addUserProfile_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_addUserProfile_presult__isset;
+
+class Airavata_addUserProfile_presult {
  public:
-  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> getInputProtocol() {
-    return piprot_;
+
+
+  virtual ~Airavata_addUserProfile_presult() throw();
+  std::string* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_addUserProfile_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_updateUserProfile_args {
+ public:
+
+  Airavata_updateUserProfile_args(const Airavata_updateUserProfile_args&);
+  Airavata_updateUserProfile_args& operator=(const Airavata_updateUserProfile_args&);
+  Airavata_updateUserProfile_args() {
   }
-  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> getOutputProtocol() {
-    return poprot_;
+
+  virtual ~Airavata_updateUserProfile_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+   ::apache::airavata::model::user::UserProfile userProfile;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userProfile(const  ::apache::airavata::model::user::UserProfile& val);
+
+  bool operator == (const Airavata_updateUserProfile_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userProfile == rhs.userProfile))
+      return false;
+    return true;
   }
-  void getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken);
-  void send_getAPIVersion(const  ::apache::airavata::model::security::AuthzToken& authzToken);
-  void recv_getAPIVersion(std::string& _return);
-  bool isUserExists(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName);
-  void send_isUserExists(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName);
-  bool recv_isUserExists();
-  void addGateway(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway);
-  void send_addGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway);
-  void recv_addGateway(std::string& _return);
-  void getAllUsersInGateway(std::vector<std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void send_getAllUsersInGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void recv_getAllUsersInGateway(std::vector<std::string> & _return);
-  bool updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway);
-  void send_updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway);
-  bool recv_updateGateway();
-  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void send_getGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void recv_getGateway( ::apache::airavata::model::workspace::Gateway& _return);
-  bool deleteGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void send_deleteGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  bool recv_deleteGateway();
-  void getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken);
-  void send_getAllGateways(const  ::apache::airavata::model::security::AuthzToken& authzToken);
-  void recv_getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return);
-  bool isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void send_isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  bool recv_isGatewayExist();
-  void createNotification(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
-  void send_createNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
-  void recv_createNotification(std::string& _return);
-  bool updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
-  void send_updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
-  bool recv_updateNotification();
-  bool deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
-  void send_deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
-  bool recv_deleteNotification();
-  void getNotification( ::apache::airavata::model::workspace::Notification& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
-  void send_getNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
-  void recv_getNotification( ::apache::airavata::model::workspace::Notification& _return);
-  void getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void send_getAllNotifications(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void recv_getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return);
-  void generateAndRegisterSSHKeys(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::string& description, const  ::CredentialOwnerType::type credentialOwnerType);
-  void send_generateAndRegisterSSHKeys(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::string& description, const  ::CredentialOwnerType::type credentialOwnerType);
-  void recv_generateAndRegisterSSHKeys(std::string& _return);
-  void registerPwdCredential(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& portalUserName, const std::string& loginUserName, const std::string& password, const std::string& description);
-  void send_registerPwdCredential(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& portalUserName, const std::string& loginUserName, const std::string& password, const std::string& description);
-  void recv_registerPwdCredential(std::string& _return);
-  void getSSHPubKey(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
-  void send_getSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
-  void recv_getSSHPubKey(std::string& _return);
-  void getAllGatewaySSHPubKeys(std::map<std::string, std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void send_getAllGatewaySSHPubKeys(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void recv_getAllGatewaySSHPubKeys(std::map<std::string, std::string> & _return);
-  void getAllCredentialSummaryForGateway(std::vector< ::CredentialSummary> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::SummaryType::type type, const std::string& gatewayId);
-  void send_getAllCredentialSummaryForGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::SummaryType::type type, const std::string& gatewayId);
-  void recv_getAllCredentialSummaryForGateway(std::vector< ::CredentialSummary> & _return);
-  void getAllCredentialSummaryForUsersInGateway(std::vector< ::CredentialSummary> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::SummaryType::type type, const std::string& gatewayId, const std::string& userId);
-  void send_getAllCredentialSummaryForUsersInGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::SummaryType::type type, const std::string& gatewayId, const std::string& userId);
-  void recv_getAllCredentialSummaryForUsersInGateway(std::vector< ::CredentialSummary> & _return);
-  void getAllGatewayPWDCredentials(std::map<std::string, std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void send_getAllGatewayPWDCredentials(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
-  void recv_getAllGatewayPWDCredentials(std::map<std::string, std::string> & _return);
-  bool deleteSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
-  void send_deleteSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
-  bool recv_deleteSSHPubKey();
-  bool deletePWDCredential(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
-  void send_deletePWDCredential(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
-  bool recv_deletePWDCredential();
-  void createProject(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Project& project);
-  void send_createProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Project& project);
-  void recv_createProject(std::string& _return);
-  void updateProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId, const  ::apache::airavata::model::workspace::Project& updatedProject);
-  void send_updateProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId, const  ::apache::airavata::model::workspace::Project& updatedProject);
-  void recv_updateProject();
-  void getProject( ::apache::airavata::model::workspace::Project& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId);
-  void send_getProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId);
-  void recv_getProject( ::apache::airavata::model::workspace::Project& _return);
-  bool deleteProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId);
-  void send_deleteProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId);
-  bool recv_deleteProject();
-  void getUserProjects(std::vector< ::apache::airavata::model::workspace::Project> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset);
-  void send_getUserProjects(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset);
-  void recv_getUserProjects(std::vector< ::apache::airavata::model::workspace::Project> & _return);
-  void searchProjects(std::vector< ::apache::airavata::model::workspace::Project> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::experiment::ProjectSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset);
-  void send_searchProjects(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::experiment::ProjectSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset);
-  void recv_searchProjects(std::vector< ::apache::airavata::model::workspace::Project> & _return);
-  void searchExperiments(std::vector< ::apache::airavata::model::experiment::ExperimentSummaryModel> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::experiment::ExperimentSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset);
-  void send_searchExperiments(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::experiment::ExperimentSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset);
-  void recv_searchExperiments(std::vector< ::apache::airavata::model::experiment::ExperimentSummaryModel> & _return);
-  void getExperimentStatistics( ::apache::airavata::model::experiment::ExperimentStatistics& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int64_t fromTime, const int64_t toTime, const std::string& userName, const std::string& applicationName, const std::string& resourceHostName);
-  void send_getExperimentStatistics(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int64_t fromTime, const int64_t toTime, const std::string& userName, const std::string& applicationName, const std::string& resourceHostName);
-  void recv_getExperimentStatistics( ::apache::airavata::model::experiment::ExperimentStatistics& _return);
-  void getExperimentsInProject(std::vector< ::apache::airavata::model::experiment::ExperimentModel> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId, const int32_t limit, const int32_t offset);
-  void send_getExperimentsInProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId, const int32_t limit, const int32_t offset);
-  void recv_getExperimentsInProject(std::vector< ::apache::airavata::model::experiment::ExperimentModel> & _return);
-  void getUserExperiments(std::vector< ::apache::airavata::model::experiment::ExperimentModel> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset);
-  void send_getUserExperiments(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset);
-  void recv_getUserExperiments(std::vector< ::apache::airavata::model::experiment::ExperimentModel> & _return);
-  void createExperiment(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::experiment::ExperimentModel& experiment);
-  void send_createExperiment(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::experiment::ExperimentModel& experiment);
-  void recv_createExperiment(std::string& _return);
-  bool deleteExperiment(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& experimentId);
-  void send_deleteExperiment(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& experimentId);
-  bool recv_deleteExperiment();
-  void getExperiment( ::apache::airavata::model::experiment::ExperimentModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId);
-  void send_getExperiment(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId);
-  void recv_getExperiment( ::apache::airavata::model::experiment::ExperimentModel& _return);
-  void getExperimentByAdmin( ::apache::airavata::model::experiment::ExperimentModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId);
-  void send_getExperimentByAdmin(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId);
+  bool operator != (const Airavata_updateUserProfile_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateUserProfile_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_updateUserProfile_pargs {
+ public:
+
+
+  virtual ~Airavata_updateUserProfile_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const  ::apache::airavata::model::user::UserProfile* userProfile;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateUserProfile_result__isset {
+  _Airavata_updateUserProfile_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateUserProfile_result__isset;
+
+class Airavata_updateUserProfile_result {
+ public:
+
+  Airavata_updateUserProfile_result(const Airavata_updateUserProfile_result&);
+  Airavata_updateUserProfile_result& operator=(const Airavata_updateUserProfile_result&);
+  Airavata_updateUserProfile_result() : success(0) {
+  }
+
+  virtual ~Airavata_updateUserProfile_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateUserProfile_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_updateUserProfile_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateUserProfile_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateUserProfile_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateUserProfile_presult__isset {
+  _Airavata_updateUserProfile_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateUserProfile_presult__isset;
+
+class Airavata_updateUserProfile_presult {
+ public:
+
+
+  virtual ~Airavata_updateUserProfile_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateUserProfile_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getUserProfileById_args {
+ public:
+
+  Airavata_getUserProfileById_args(const Airavata_getUserProfileById_args&);
+  Airavata_getUserProfileById_args& operator=(const Airavata_getUserProfileById_args&);
+  Airavata_getUserProfileById_args() : userId(), gatewayId() {
+  }
+
+  virtual ~Airavata_getUserProfileById_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+  std::string gatewayId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  bool operator == (const Airavata_getUserProfileById_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getUserProfileById_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getUserProfileById_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getUserProfileById_pargs {
+ public:
+
+
+  virtual ~Airavata_getUserProfileById_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getUserProfileById_result__isset {
+  _Airavata_getUserProfileById_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getUserProfileById_result__isset;
+
+class Airavata_getUserProfileById_result {
+ public:
+
+  Airavata_getUserProfileById_result(const Airavata_getUserProfileById_result&);
+  Airavata_getUserProfileById_result& operator=(const Airavata_getUserProfileById_result&);
+  Airavata_getUserProfileById_result() {
+  }
+
+  virtual ~Airavata_getUserProfileById_result() throw();
+   ::apache::airavata::model::user::UserProfile success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getUserProfileById_result__isset __isset;
+
+  void __set_success(const  ::apache::airavata::model::user::UserProfile& val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_getUserProfileById_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getUserProfileById_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getUserProfileById_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getUserProfileById_presult__isset {
+  _Airavata_getUserProfileById_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getUserProfileById_presult__isset;
+
+class Airavata_getUserProfileById_presult {
+ public:
+
+
+  virtual ~Airavata_getUserProfileById_presult() throw();
+   ::apache::airavata::model::user::UserProfile* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getUserProfileById_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_deleteUserProfile_args {
+ public:
+
+  Airavata_deleteUserProfile_args(const Airavata_deleteUserProfile_args&);
+  Airavata_deleteUserProfile_args& operator=(const Airavata_deleteUserProfile_args&);
+  Airavata_deleteUserProfile_args() : userId() {
+  }
+
+  virtual ~Airavata_deleteUserProfile_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  bool operator == (const Airavata_deleteUserProfile_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteUserProfile_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteUserProfile_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_deleteUserProfile_pargs {
+ public:
+
+
+  virtual ~Airavata_deleteUserProfile_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteUserProfile_result__isset {
+  _Airavata_deleteUserProfile_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteUserProfile_result__isset;
+
+class Airavata_deleteUserProfile_result {
+ public:
+
+  Airavata_deleteUserProfile_result(const Airavata_deleteUserProfile_result&);
+  Airavata_deleteUserProfile_result& operator=(const Airavata_deleteUserProfile_result&);
+  Airavata_deleteUserProfile_result() : success(0) {
+  }
+
+  virtual ~Airavata_deleteUserProfile_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteUserProfile_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_deleteUserProfile_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteUserProfile_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteUserProfile_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteUserProfile_presult__isset {
+  _Airavata_deleteUserProfile_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteUserProfile_presult__isset;
+
+class Airavata_deleteUserProfile_presult {
+ public:
+
+
+  virtual ~Airavata_deleteUserProfile_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteUserProfile_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getAllUserProfilesInGateway_args {
+ public:
+
+  Airavata_getAllUserProfilesInGateway_args(const Airavata_getAllUserProfilesInGateway_args&);
+  Airavata_getAllUserProfilesInGateway_args& operator=(const Airavata_getAllUserProfilesInGateway_args&);
+  Airavata_getAllUserProfilesInGateway_args() : gatewayId(), offset(0), limit(0) {
+  }
+
+  virtual ~Airavata_getAllUserProfilesInGateway_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayId;
+  int32_t offset;
+  int32_t limit;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  void __set_offset(const int32_t val);
+
+  void __set_limit(const int32_t val);
+
+  bool operator == (const Airavata_getAllUserProfilesInGateway_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    if (!(offset == rhs.offset))
+      return false;
+    if (!(limit == rhs.limit))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllUserProfilesInGateway_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllUserProfilesInGateway_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getAllUserProfilesInGateway_pargs {
+ public:
+
+
+  virtual ~Airavata_getAllUserProfilesInGateway_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayId;
+  const int32_t* offset;
+  const int32_t* limit;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllUserProfilesInGateway_result__isset {
+  _Airavata_getAllUserProfilesInGateway_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getAllUserProfilesInGateway_result__isset;
+
+class Airavata_getAllUserProfilesInGateway_result {
+ public:
+
+  Airavata_getAllUserProfilesInGateway_result(const Airavata_getAllUserProfilesInGateway_result&);
+  Airavata_getAllUserProfilesInGateway_result& operator=(const Airavata_getAllUserProfilesInGateway_result&);
+  Airavata_getAllUserProfilesInGateway_result() {
+  }
+
+  virtual ~Airavata_getAllUserProfilesInGateway_result() throw();
+  std::vector< ::apache::airavata::model::user::UserProfile>  success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getAllUserProfilesInGateway_result__isset __isset;
+
+  void __set_success(const std::vector< ::apache::airavata::model::user::UserProfile> & val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_getAllUserProfilesInGateway_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllUserProfilesInGateway_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllUserProfilesInGateway_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllUserProfilesInGateway_presult__isset {
+  _Airavata_getAllUserProfilesInGateway_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getAllUserProfilesInGateway_presult__isset;
+
+class Airavata_getAllUserProfilesInGateway_presult {
+ public:
+
+
+  virtual ~Airavata_getAllUserProfilesInGateway_presult() throw();
+  std::vector< ::apache::airavata::model::user::UserProfile> * success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getAllUserProfilesInGateway_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getUserProfileByName_args {
+ public:
+
+  Airavata_getUserProfileByName_args(const Airavata_getUserProfileByName_args&);
+  Airavata_getUserProfileByName_args& operator=(const Airavata_getUserProfileByName_args&);
+  Airavata_getUserProfileByName_args() : userName(), gatewayId() {
+  }
+
+  virtual ~Airavata_getUserProfileByName_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userName;
+  std::string gatewayId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userName(const std::string& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  bool operator == (const Airavata_getUserProfileByName_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userName == rhs.userName))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getUserProfileByName_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getUserProfileByName_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getUserProfileByName_pargs {
+ public:
+
+
+  virtual ~Airavata_getUserProfileByName_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userName;
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getUserProfileByName_result__isset {
+  _Airavata_getUserProfileByName_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getUserProfileByName_result__isset;
+
+class Airavata_getUserProfileByName_result {
+ public:
+
+  Airavata_getUserProfileByName_result(const Airavata_getUserProfileByName_result&);
+  Airavata_getUserProfileByName_result& operator=(const Airavata_getUserProfileByName_result&);
+  Airavata_getUserProfileByName_result() {
+  }
+
+  virtual ~Airavata_getUserProfileByName_result() throw();
+   ::apache::airavata::model::user::UserProfile success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getUserProfileByName_result__isset __isset;
+
+  void __set_success(const  ::apache::airavata::model::user::UserProfile& val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_getUserProfileByName_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getUserProfileByName_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getUserProfileByName_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getUserProfileByName_presult__isset {
+  _Airavata_getUserProfileByName_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getUserProfileByName_presult__isset;
+
+class Airavata_getUserProfileByName_presult {
+ public:
+
+
+  virtual ~Airavata_getUserProfileByName_presult() throw();
+   ::apache::airavata::model::user::UserProfile* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getUserProfileByName_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_doesUserProfileExist_args {
+ public:
+
+  Airavata_doesUserProfileExist_args(const Airavata_doesUserProfileExist_args&);
+  Airavata_doesUserProfileExist_args& operator=(const Airavata_doesUserProfileExist_args&);
+  Airavata_doesUserProfileExist_args() : userName(), gatewayId() {
+  }
+
+  virtual ~Airavata_doesUserProfileExist_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userName;
+  std::string gatewayId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userName(const std::string& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  bool operator == (const Airavata_doesUserProfileExist_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userName == rhs.userName))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_doesUserProfileExist_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_doesUserProfileExist_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_doesUserProfileExist_pargs {
+ public:
+
+
+  virtual ~Airavata_doesUserProfileExist_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userName;
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_doesUserProfileExist_result__isset {
+  _Airavata_doesUserProfileExist_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_doesUserProfileExist_result__isset;
+
+class Airavata_doesUserProfileExist_result {
+ public:
+
+  Airavata_doesUserProfileExist_result(const Airavata_doesUserProfileExist_result&);
+  Airavata_doesUserProfileExist_result& operator=(const Airavata_doesUserProfileExist_result&);
+  Airavata_doesUserProfileExist_result() : success(0) {
+  }
+
+  virtual ~Airavata_doesUserProfileExist_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_doesUserProfileExist_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_doesUserProfileExist_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_doesUserProfileExist_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_doesUserProfileExist_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_doesUserProfileExist_presult__isset {
+  _Airavata_doesUserProfileExist_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_doesUserProfileExist_presult__isset;
+
+class Airavata_doesUserProfileExist_presult {
+ public:
+
+
+  virtual ~Airavata_doesUserProfileExist_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_doesUserProfileExist_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+class AiravataClient : virtual public AiravataIf {
+ public:
+  AiravataClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) {
+    setProtocol(prot);
+  }
+  AiravataClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> iprot, boost::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
+    setProtocol(iprot,oprot);
+  }
+ private:
+  void setProtocol(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) {
+  setProtocol(prot,prot);
+  }
+  void setProtocol(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> iprot, boost::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
+    piprot_=iprot;
+    poprot_=oprot;
+    iprot_ = iprot.get();
+    oprot_ = oprot.get();
+  }
+ public:
+  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> getInputProtocol() {
+    return piprot_;
+  }
+  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> getOutputProtocol() {
+    return poprot_;
+  }
+  void getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken);
+  void send_getAPIVersion(const  ::apache::airavata::model::security::AuthzToken& authzToken);
+  void recv_getAPIVersion(std::string& _return);
+  bool isUserExists(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName);
+  void send_isUserExists(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName);
+  bool recv_isUserExists();
+  void addGateway(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway);
+  void send_addGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway);
+  void recv_addGateway(std::string& _return);
+  void getAllUsersInGateway(std::vector<std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void send_getAllUsersInGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void recv_getAllUsersInGateway(std::vector<std::string> & _return);
+  bool updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway);
+  void send_updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway);
+  bool recv_updateGateway();
+  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void send_getGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void recv_getGateway( ::apache::airavata::model::workspace::Gateway& _return);
+  bool deleteGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void send_deleteGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  bool recv_deleteGateway();
+  void getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken);
+  void send_getAllGateways(const  ::apache::airavata::model::security::AuthzToken& authzToken);
+  void recv_getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return);
+  bool isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void send_isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  bool recv_isGatewayExist();
+  void createNotification(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  void send_createNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  void recv_createNotification(std::string& _return);
+  bool updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  void send_updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification);
+  bool recv_updateNotification();
+  bool deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  void send_deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  bool recv_deleteNotification();
+  void getNotification( ::apache::airavata::model::workspace::Notification& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  void send_getNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId);
+  void recv_getNotification( ::apache::airavata::model::workspace::Notification& _return);
+  void getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void send_getAllNotifications(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void recv_getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return);
+  void generateAndRegisterSSHKeys(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::string& description, const  ::CredentialOwnerType::type credentialOwnerType);
+  void send_generateAndRegisterSSHKeys(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::string& description, const  ::CredentialOwnerType::type credentialOwnerType);
+  void recv_generateAndRegisterSSHKeys(std::string& _return);
+  void registerPwdCredential(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& portalUserName, const std::string& loginUserName, const std::string& password, const std::string& description);
+  void send_registerPwdCredential(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& portalUserName, const std::string& loginUserName, const std::string& password, const std::string& description);
+  void recv_registerPwdCredential(std::string& _return);
+  void getSSHPubKey(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
+  void send_getSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
+  void recv_getSSHPubKey(std::string& _return);
+  void getAllGatewaySSHPubKeys(std::map<std::string, std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void send_getAllGatewaySSHPubKeys(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void recv_getAllGatewaySSHPubKeys(std::map<std::string, std::string> & _return);
+  void getAllCredentialSummaryForGateway(std::vector< ::CredentialSummary> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::SummaryType::type type, const std::string& gatewayId);
+  void send_getAllCredentialSummaryForGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::SummaryType::type type, const std::string& gatewayId);
+  void recv_getAllCredentialSummaryForGateway(std::vector< ::CredentialSummary> & _return);
+  void getAllCredentialSummaryForUsersInGateway(std::vector< ::CredentialSummary> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::SummaryType::type type, const std::string& gatewayId, const std::string& userId);
+  void send_getAllCredentialSummaryForUsersInGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::SummaryType::type type, const std::string& gatewayId, const std::string& userId);
+  void recv_getAllCredentialSummaryForUsersInGateway(std::vector< ::CredentialSummary> & _return);
+  void getAllGatewayPWDCredentials(std::map<std::string, std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void send_getAllGatewayPWDCredentials(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void recv_getAllGatewayPWDCredentials(std::map<std::string, std::string> & _return);
+  bool deleteSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
+  void send_deleteSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
+  bool recv_deleteSSHPubKey();
+  bool deletePWDCredential(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
+  void send_deletePWDCredential(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId);
+  bool recv_deletePWDCredential();
+  void createProject(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Project& project);
+  void send_createProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Project& project);
+  void recv_createProject(std::string& _return);
+  void updateProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId, const  ::apache::airavata::model::workspace::Project& updatedProject);
+  void send_updateProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId, const  ::apache::airavata::model::workspace::Project& updatedProject);
+  void recv_updateProject();
+  void getProject( ::apache::airavata::model::workspace::Project& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId);
+  void send_getProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId);
+  void recv_getProject( ::apache::airavata::model::workspace::Project& _return);
+  bool deleteProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId);
+  void send_deleteProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId);
+  bool recv_deleteProject();
+  void getUserProjects(std::vector< ::apache::airavata::model::workspace::Project> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset);
+  void send_getUserProjects(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset);
+  void recv_getUserProjects(std::vector< ::apache::airavata::model::workspace::Project> & _return);
+  void searchProjects(std::vector< ::apache::airavata::model::workspace::Project> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::experiment::ProjectSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset);
+  void send_searchProjects(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::experiment::ProjectSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset);
+  void recv_searchProjects(std::vector< ::apache::airavata::model::workspace::Project> & _return);
+  void searchExperiments(std::vector< ::apache::airavata::model::experiment::ExperimentSummaryModel> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::experiment::ExperimentSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset);
+  void send_searchExperiments(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::experiment::ExperimentSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset);
+  void recv_searchExperiments(std::vector< ::apache::airavata::model::experiment::ExperimentSummaryModel> & _return);
+  void getExperimentStatistics( ::apache::airavata::model::experiment::ExperimentStatistics& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int64_t fromTime, const int64_t toTime, const std::string& userName, const std::string& applicationName, const std::string& resourceHostName);
+  void send_getExperimentStatistics(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int64_t fromTime, const int64_t toTime, const std::string& userName, const std::string& applicationName, const std::string& resourceHostName);
+  void recv_getExperimentStatistics( ::apache::airavata::model::experiment::ExperimentStatistics& _return);
+  void getExperimentsInProject(std::vector< ::apache::airavata::model::experiment::ExperimentModel> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId, const int32_t limit, const int32_t offset);
+  void send_getExperimentsInProject(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId, const int32_t limit, const int32_t offset);
+  void recv_getExperimentsInProject(std::vector< ::apache::airavata::model::experiment::ExperimentModel> & _return);
+  void getUserExperiments(std::vector< ::apache::airavata::model::experiment::ExperimentModel> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset);
+  void send_getUserExperiments(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset);
+  void recv_getUserExperiments(std::vector< ::apache::airavata::model::experiment::ExperimentModel> & _return);
+  void createExperiment(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::experiment::ExperimentModel& experiment);
+  void send_createExperiment(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::experiment::ExperimentModel& experiment);
+  void recv_createExperiment(std::string& _return);
+  bool deleteExperiment(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& experimentId);
+  void send_deleteExperiment(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& experimentId);
+  bool recv_deleteExperiment();
+  void getExperiment( ::apache::airavata::model::experiment::ExperimentModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId);
+  void send_getExperiment(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId);
+  void recv_getExperiment( ::apache::airavata::model::experiment::ExperimentModel& _return);
+  void getExperimentByAdmin( ::apache::airavata::model::experiment::ExperimentModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId);
+  void send_getExperimentByAdmin(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId);
   void recv_getExperimentByAdmin( ::apache::airavata::model::experiment::ExperimentModel& _return);
   void getDetailedExperimentTree( ::apache::airavata::model::experiment::ExperimentModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId);
   void send_getDetailedExperimentTree(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId);
@@ -27973,6 +28986,27 @@ class AiravataClient : virtual public AiravataIf {
   void getAllGroupsUserBelongs(std::vector< ::apache::airavata::model::group::GroupModel> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
   void send_getAllGroupsUserBelongs(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
   void recv_getAllGroupsUserBelongs(std::vector< ::apache::airavata::model::group::GroupModel> & _return);
+  void addUserProfile(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile);
+  void send_addUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile);
+  void recv_addUserProfile(std::string& _return);
+  bool updateUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile);
+  void send_updateUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile);
+  bool recv_updateUserProfile();
+  void getUserProfileById( ::apache::airavata::model::user::UserProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& gatewayId);
+  void send_getUserProfileById(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& gatewayId);
+  void recv_getUserProfileById( ::apache::airavata::model::user::UserProfile& _return);
+  bool deleteUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId);
+  void send_deleteUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId);
+  bool recv_deleteUserProfile();
+  void getAllUserProfilesInGateway(std::vector< ::apache::airavata::model::user::UserProfile> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int32_t offset, const int32_t limit);
+  void send_getAllUserProfilesInGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int32_t offset, const int32_t limit);
+  void recv_getAllUserProfilesInGateway(std::vector< ::apache::airavata::model::user::UserProfile> & _return);
+  void getUserProfileByName( ::apache::airavata::model::user::UserProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
+  void send_getUserProfileByName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
+  void recv_getUserProfileByName( ::apache::airavata::model::user::UserProfile& _return);
+  bool doesUserProfileExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
+  void send_doesUserProfileExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
+  bool recv_doesUserProfileExist();
  protected:
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;
@@ -28157,6 +29191,13 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
   void process_deleteGroup(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getGroup(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getAllGroupsUserBelongs(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_addUserProfile(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_updateUserProfile(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getUserProfileById(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_deleteUserProfile(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getAllUserProfilesInGateway(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getUserProfileByName(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_doesUserProfileExist(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  public:
   AiravataProcessor(boost::shared_ptr<AiravataIf> iface) :
     iface_(iface) {
@@ -28329,6 +29370,13 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
     processMap_["deleteGroup"] = &AiravataProcessor::process_deleteGroup;
     processMap_["getGroup"] = &AiravataProcessor::process_getGroup;
     processMap_["getAllGroupsUserBelongs"] = &AiravataProcessor::process_getAllGroupsUserBelongs;
+    processMap_["addUserProfile"] = &AiravataProcessor::process_addUserProfile;
+    processMap_["updateUserProfile"] = &AiravataProcessor::process_updateUserProfile;
+    processMap_["getUserProfileById"] = &AiravataProcessor::process_getUserProfileById;
+    processMap_["deleteUserProfile"] = &AiravataProcessor::process_deleteUserProfile;
+    processMap_["getAllUserProfilesInGateway"] = &AiravataProcessor::process_getAllUserProfilesInGateway;
+    processMap_["getUserProfileByName"] = &AiravataProcessor::process_getUserProfileByName;
+    processMap_["doesUserProfileExist"] = &AiravataProcessor::process_doesUserProfileExist;
   }
 
   virtual ~AiravataProcessor() {}
@@ -29979,6 +31027,73 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
+  void addUserProfile(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->addUserProfile(_return, authzToken, userProfile);
+    }
+    ifaces_[i]->addUserProfile(_return, authzToken, userProfile);
+    return;
+  }
+
+  bool updateUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->updateUserProfile(authzToken, userProfile);
+    }
+    return ifaces_[i]->updateUserProfile(authzToken, userProfile);
+  }
+
+  void getUserProfileById( ::apache::airavata::model::user::UserProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& gatewayId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getUserProfileById(_return, authzToken, userId, gatewayId);
+    }
+    ifaces_[i]->getUserProfileById(_return, authzToken, userId, gatewayId);
+    return;
+  }
+
+  bool deleteUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->deleteUserProfile(authzToken, userId);
+    }
+    return ifaces_[i]->deleteUserProfile(authzToken, userId);
+  }
+
+  void getAllUserProfilesInGateway(std::vector< ::apache::airavata::model::user::UserProfile> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int32_t offset, const int32_t limit) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getAllUserProfilesInGateway(_return, authzToken, gatewayId, offset, limit);
+    }
+    ifaces_[i]->getAllUserProfilesInGateway(_return, authzToken, gatewayId, offset, limit);
+    return;
+  }
+
+  void getUserProfileByName( ::apache::airavata::model::user::UserProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getUserProfileByName(_return, authzToken, userName, gatewayId);
+    }
+    ifaces_[i]->getUserProfileByName(_return, authzToken, userName, gatewayId);
+    return;
+  }
+
+  bool doesUserProfileExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->doesUserProfileExist(authzToken, userName, gatewayId);
+    }
+    return ifaces_[i]->doesUserProfileExist(authzToken, userName, gatewayId);
+  }
+
 };
 
 // The 'concurrent' client is a thread safe client that correctly handles
@@ -30516,6 +31631,27 @@ class AiravataConcurrentClient : virtual public AiravataIf {
   void getAllGroupsUserBelongs(std::vector< ::apache::airavata::model::group::GroupModel> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
   int32_t send_getAllGroupsUserBelongs(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
   void recv_getAllGroupsUserBelongs(std::vector< ::apache::airavata::model::group::GroupModel> & _return, const int32_t seqid);
+  void addUserProfile(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile);
+  int32_t send_addUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile);
+  void recv_addUserProfile(std::string& _return, const int32_t seqid);
+  bool updateUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile);
+  int32_t send_updateUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile);
+  bool recv_updateUserProfile(const int32_t seqid);
+  void getUserProfileById( ::apache::airavata::model::user::UserProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& gatewayId);
+  int32_t send_getUserProfileById(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& gatewayId);
+  void recv_getUserProfileById( ::apache::airavata::model::user::UserProfile& _return, const int32_t seqid);
+  bool deleteUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId);
+  int32_t send_deleteUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId);
+  bool recv_deleteUserProfile(const int32_t seqid);
+  void getAllUserProfilesInGateway(std::vector< ::apache::airavata::model::user::UserProfile> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int32_t offset, const int32_t limit);
+  int32_t send_getAllUserProfilesInGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int32_t offset, const int32_t limit);
+  void recv_getAllUserProfilesInGateway(std::vector< ::apache::airavata::model::user::UserProfile> & _return, const int32_t seqid);
+  void getUserProfileByName( ::apache::airavata::model::user::UserProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
+  int32_t send_getUserProfileByName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
+  void recv_getUserProfileByName( ::apache::airavata::model::user::UserProfile& _return, const int32_t seqid);
+  bool doesUserProfileExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
+  int32_t send_doesUserProfileExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId);
+  bool recv_doesUserProfileExist(const int32_t seqid);
  protected:
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index 6fbb294..4c913bb 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -3511,6 +3511,41 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getAllGroupsUserBelongs\n");
   }
 
+  void addUserProfile(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile) {
+    // Your implementation goes here
+    printf("addUserProfile\n");
+  }
+
+  bool updateUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::user::UserProfile& userProfile) {
+    // Your implementation goes here
+    printf("updateUserProfile\n");
+  }
+
+  void getUserProfileById( ::apache::airavata::model::user::UserProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& gatewayId) {
+    // Your implementation goes here
+    printf("getUserProfileById\n");
+  }
+
+  bool deleteUserProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId) {
+    // Your implementation goes here
+    printf("deleteUserProfile\n");
+  }
+
+  void getAllUserProfilesInGateway(std::vector< ::apache::airavata::model::user::UserProfile> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const int32_t offset, const int32_t limit) {
+    // Your implementation goes here
+    printf("getAllUserProfilesInGateway\n");
+  }
+
+  void getUserProfileByName( ::apache::airavata::model::user::UserProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId) {
+    // Your implementation goes here
+    printf("getUserProfileByName\n");
+  }
+
+  bool doesUserProfileExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userName, const std::string& gatewayId) {
+    // Your implementation goes here
+    printf("doesUserProfileExist\n");
+  }
+
 };
 
 int main(int argc, char **argv) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
index 5175374..09cf96c 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
@@ -52,6 +52,7 @@
 #include "workflow_data_model_types.h"
 #include "replica_catalog_models_types.h"
 #include "group_manager_model_types.h"
+#include "user_profile_model_types.h"
 
 
 namespace apache { namespace airavata { namespace api {


[11/17] airavata git commit: Add Tenant Profile Thrift Model

Posted by go...@apache.org.
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;