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

[3/4] API Methods required by PHP Gateway - AIRAVATA-1296

http://git-wip-us.apache.org/repos/asf/airavata/blob/2d5d054b/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 6bb04dd..c400f27 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
@@ -649,6 +649,20 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getApplicationOutputs(String appInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     * Fetch a list of all deployed Compute Hosts for a given application interfaces.
+     * 
+     * @param appInterfaceId
+     *   The identifier for the requested application interface
+     * 
+     * @return list<string>
+     *   Returns a list of available Resources. Deployments of each modules listed within the interfaces will be listed.
+     * 
+     * 
+     * @param appInterfaceId
+     */
+    public List<String> getAvailableAppInterfaceComputeResources(String appInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Register a Compute Resource.
      * 
      * @param computeResourceDescription
@@ -677,6 +691,15 @@ import org.slf4j.LoggerFactory;
     public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription getComputeResource(String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     * Fetch all registered Compute Resources.
+     * 
+     * @return A map of registered compute resource id's and thier corresponding hostnames.
+     *    Compute Resource Object created from the datamodel..
+     * 
+     */
+    public Map<String,String> getAllComputeResourceNames() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Update a Compute Resource.
      * 
      * @param computeResourceId
@@ -1012,14 +1035,16 @@ import org.slf4j.LoggerFactory;
      * 
      * @param gatewayResourceProfile
      *    Gateway Resource Profile Object.
+     *    The GatewayID should be obtained from Airavata gateway registration and passed to register a corresponding
+     *      resource profile.
      * 
-     * @return gatewayID
-     *   Returns a server-side generated airavata compute resource globally unique identifier.
+     * @return status
+     *   Returns a success/failure of the update.
      * 
      * 
      * @param gatewayResourceProfile
      */
-    public String registerGatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public boolean registerGatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
      * Fetch the given Gateway Resource Profile.
@@ -1244,10 +1269,14 @@ import org.slf4j.LoggerFactory;
 
     public void getApplicationOutputs(String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getAvailableAppInterfaceComputeResources(String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void getComputeResource(String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getAllComputeResourceNames(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void deleteComputeResource(String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -2564,6 +2593,38 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getApplicationOutputs failed: unknown result");
     }
 
+    public List<String> getAvailableAppInterfaceComputeResources(String appInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_getAvailableAppInterfaceComputeResources(appInterfaceId);
+      return recv_getAvailableAppInterfaceComputeResources();
+    }
+
+    public void send_getAvailableAppInterfaceComputeResources(String appInterfaceId) throws org.apache.thrift.TException
+    {
+      getAvailableAppInterfaceComputeResources_args args = new getAvailableAppInterfaceComputeResources_args();
+      args.setAppInterfaceId(appInterfaceId);
+      sendBase("getAvailableAppInterfaceComputeResources", args);
+    }
+
+    public List<String> recv_getAvailableAppInterfaceComputeResources() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
+      receiveBase(result, "getAvailableAppInterfaceComputeResources");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAvailableAppInterfaceComputeResources failed: unknown result");
+    }
+
     public String registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_registerComputeResource(computeResourceDescription);
@@ -2628,6 +2689,37 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getComputeResource failed: unknown result");
     }
 
+    public Map<String,String> getAllComputeResourceNames() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_getAllComputeResourceNames();
+      return recv_getAllComputeResourceNames();
+    }
+
+    public void send_getAllComputeResourceNames() throws org.apache.thrift.TException
+    {
+      getAllComputeResourceNames_args args = new getAllComputeResourceNames_args();
+      sendBase("getAllComputeResourceNames", args);
+    }
+
+    public Map<String,String> recv_getAllComputeResourceNames() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
+      receiveBase(result, "getAllComputeResourceNames");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllComputeResourceNames failed: unknown result");
+    }
+
     public boolean updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_updateComputeResource(computeResourceId, computeResourceDescription);
@@ -3222,7 +3314,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteDataMovementInterface failed: unknown result");
     }
 
-    public String registerGatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public boolean registerGatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_registerGatewayResourceProfile(gatewayResourceProfile);
       return recv_registerGatewayResourceProfile();
@@ -3235,7 +3327,7 @@ import org.slf4j.LoggerFactory;
       sendBase("registerGatewayResourceProfile", args);
     }
 
-    public String recv_registerGatewayResourceProfile() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public boolean recv_registerGatewayResourceProfile() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_result();
       receiveBase(result, "registerGatewayResourceProfile");
@@ -4822,6 +4914,38 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void getAvailableAppInterfaceComputeResources(String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAvailableAppInterfaceComputeResources_call method_call = new getAvailableAppInterfaceComputeResources_call(appInterfaceId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAvailableAppInterfaceComputeResources_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String appInterfaceId;
+      public getAvailableAppInterfaceComputeResources_call(String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.appInterfaceId = appInterfaceId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAvailableAppInterfaceComputeResources", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAvailableAppInterfaceComputeResources_args args = new getAvailableAppInterfaceComputeResources_args();
+        args.setAppInterfaceId(appInterfaceId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<String> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAvailableAppInterfaceComputeResources();
+      }
+    }
+
     public void registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       registerComputeResource_call method_call = new registerComputeResource_call(computeResourceDescription, resultHandler, this, ___protocolFactory, ___transport);
@@ -4886,6 +5010,35 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void getAllComputeResourceNames(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllComputeResourceNames_call method_call = new getAllComputeResourceNames_call(resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllComputeResourceNames_call extends org.apache.thrift.async.TAsyncMethodCall {
+      public getAllComputeResourceNames_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllComputeResourceNames", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllComputeResourceNames_args args = new getAllComputeResourceNames_args();
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Map<String,String> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAllComputeResourceNames();
+      }
+    }
+
     public void updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       updateComputeResource_call method_call = new updateComputeResource_call(computeResourceId, computeResourceDescription, resultHandler, this, ___protocolFactory, ___transport);
@@ -5538,7 +5691,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public String getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public boolean getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -5877,8 +6030,10 @@ import org.slf4j.LoggerFactory;
       processMap.put("deleteApplicationInterface", new deleteApplicationInterface());
       processMap.put("getApplicationInputs", new getApplicationInputs());
       processMap.put("getApplicationOutputs", new getApplicationOutputs());
+      processMap.put("getAvailableAppInterfaceComputeResources", new getAvailableAppInterfaceComputeResources());
       processMap.put("registerComputeResource", new registerComputeResource());
       processMap.put("getComputeResource", new getComputeResource());
+      processMap.put("getAllComputeResourceNames", new getAllComputeResourceNames());
       processMap.put("updateComputeResource", new updateComputeResource());
       processMap.put("deleteComputeResource", new deleteComputeResource());
       processMap.put("addLocalSubmissionDetails", new addLocalSubmissionDetails());
@@ -6998,6 +7153,34 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public static class getAvailableAppInterfaceComputeResources<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAvailableAppInterfaceComputeResources_args> {
+      public getAvailableAppInterfaceComputeResources() {
+        super("getAvailableAppInterfaceComputeResources");
+      }
+
+      public getAvailableAppInterfaceComputeResources_args getEmptyArgsInstance() {
+        return new getAvailableAppInterfaceComputeResources_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAvailableAppInterfaceComputeResources_result getResult(I iface, getAvailableAppInterfaceComputeResources_args args) throws org.apache.thrift.TException {
+        getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
+        try {
+          result.success = iface.getAvailableAppInterfaceComputeResources(args.appInterfaceId);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
     public static class registerComputeResource<I extends Iface> extends org.apache.thrift.ProcessFunction<I, registerComputeResource_args> {
       public registerComputeResource() {
         super("registerComputeResource");
@@ -7054,6 +7237,34 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public static class getAllComputeResourceNames<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllComputeResourceNames_args> {
+      public getAllComputeResourceNames() {
+        super("getAllComputeResourceNames");
+      }
+
+      public getAllComputeResourceNames_args getEmptyArgsInstance() {
+        return new getAllComputeResourceNames_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllComputeResourceNames_result getResult(I iface, getAllComputeResourceNames_args args) throws org.apache.thrift.TException {
+        getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
+        try {
+          result.success = iface.getAllComputeResourceNames();
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
     public static class updateComputeResource<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateComputeResource_args> {
       public updateComputeResource() {
         super("updateComputeResource");
@@ -7593,6 +7804,7 @@ import org.slf4j.LoggerFactory;
         registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_result();
         try {
           result.success = iface.registerGatewayResourceProfile(args.gatewayResourceProfile);
+          result.setSuccessIsSet(true);
         } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
           result.ire = ire;
         } catch (org.apache.airavata.model.error.AiravataClientException ace) {
@@ -7885,8 +8097,10 @@ import org.slf4j.LoggerFactory;
       processMap.put("deleteApplicationInterface", new deleteApplicationInterface());
       processMap.put("getApplicationInputs", new getApplicationInputs());
       processMap.put("getApplicationOutputs", new getApplicationOutputs());
+      processMap.put("getAvailableAppInterfaceComputeResources", new getAvailableAppInterfaceComputeResources());
       processMap.put("registerComputeResource", new registerComputeResource());
       processMap.put("getComputeResource", new getComputeResource());
+      processMap.put("getAllComputeResourceNames", new getAllComputeResourceNames());
       processMap.put("updateComputeResource", new updateComputeResource());
       processMap.put("deleteComputeResource", new deleteComputeResource());
       processMap.put("addLocalSubmissionDetails", new addLocalSubmissionDetails());
@@ -10522,6 +10736,73 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public static class getAvailableAppInterfaceComputeResources<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAvailableAppInterfaceComputeResources_args, List<String>> {
+      public getAvailableAppInterfaceComputeResources() {
+        super("getAvailableAppInterfaceComputeResources");
+      }
+
+      public getAvailableAppInterfaceComputeResources_args getEmptyArgsInstance() {
+        return new getAvailableAppInterfaceComputeResources_args();
+      }
+
+      public AsyncMethodCallback<List<String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<List<String>>() { 
+          public void onComplete(List<String> o) {
+            getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+                        result.setIreIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+                        result.setAceIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+                        result.setAseIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getAvailableAppInterfaceComputeResources_args args, org.apache.thrift.async.AsyncMethodCallback<List<String>> resultHandler) throws TException {
+        iface.getAvailableAppInterfaceComputeResources(args.appInterfaceId,resultHandler);
+      }
+    }
+
     public static class registerComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerComputeResource_args, String> {
       public registerComputeResource() {
         super("registerComputeResource");
@@ -10656,22 +10937,21 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public static class updateComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateComputeResource_args, Boolean> {
-      public updateComputeResource() {
-        super("updateComputeResource");
+    public static class getAllComputeResourceNames<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllComputeResourceNames_args, Map<String,String>> {
+      public getAllComputeResourceNames() {
+        super("getAllComputeResourceNames");
       }
 
-      public updateComputeResource_args getEmptyArgsInstance() {
-        return new updateComputeResource_args();
+      public getAllComputeResourceNames_args getEmptyArgsInstance() {
+        return new getAllComputeResourceNames_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Map<String,String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            updateComputeResource_result result = new updateComputeResource_result();
+        return new AsyncMethodCallback<Map<String,String>>() { 
+          public void onComplete(Map<String,String> o) {
+            getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -10683,7 +10963,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateComputeResource_result result = new updateComputeResource_result();
+            getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -10719,25 +10999,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, updateComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.updateComputeResource(args.computeResourceId, args.computeResourceDescription,resultHandler);
+      public void start(I iface, getAllComputeResourceNames_args args, org.apache.thrift.async.AsyncMethodCallback<Map<String,String>> resultHandler) throws TException {
+        iface.getAllComputeResourceNames(resultHandler);
       }
     }
 
-    public static class deleteComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteComputeResource_args, Boolean> {
-      public deleteComputeResource() {
-        super("deleteComputeResource");
+    public static class updateComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateComputeResource_args, Boolean> {
+      public updateComputeResource() {
+        super("updateComputeResource");
       }
 
-      public deleteComputeResource_args getEmptyArgsInstance() {
-        return new deleteComputeResource_args();
+      public updateComputeResource_args getEmptyArgsInstance() {
+        return new updateComputeResource_args();
       }
 
       public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Boolean>() { 
           public void onComplete(Boolean o) {
-            deleteComputeResource_result result = new deleteComputeResource_result();
+            updateComputeResource_result result = new updateComputeResource_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -10751,7 +11031,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteComputeResource_result result = new deleteComputeResource_result();
+            updateComputeResource_result result = new updateComputeResource_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -10787,25 +11067,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, deleteComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deleteComputeResource(args.computeResourceId,resultHandler);
+      public void start(I iface, updateComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.updateComputeResource(args.computeResourceId, args.computeResourceDescription,resultHandler);
       }
     }
 
-    public static class addLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalSubmissionDetails_args, Boolean> {
-      public addLocalSubmissionDetails() {
-        super("addLocalSubmissionDetails");
+    public static class deleteComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteComputeResource_args, Boolean> {
+      public deleteComputeResource() {
+        super("deleteComputeResource");
       }
 
-      public addLocalSubmissionDetails_args getEmptyArgsInstance() {
-        return new addLocalSubmissionDetails_args();
+      public deleteComputeResource_args getEmptyArgsInstance() {
+        return new deleteComputeResource_args();
       }
 
       public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Boolean>() { 
           public void onComplete(Boolean o) {
-            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
+            deleteComputeResource_result result = new deleteComputeResource_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -10819,7 +11099,75 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
+            deleteComputeResource_result result = new deleteComputeResource_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+                        result.setIreIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+                        result.setAceIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+                        result.setAseIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, deleteComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteComputeResource(args.computeResourceId,resultHandler);
+      }
+    }
+
+    public static class addLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalSubmissionDetails_args, Boolean> {
+      public addLocalSubmissionDetails() {
+        super("addLocalSubmissionDetails");
+      }
+
+      public addLocalSubmissionDetails_args getEmptyArgsInstance() {
+        return new addLocalSubmissionDetails_args();
+      }
+
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -11880,7 +12228,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public static class registerGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerGatewayResourceProfile_args, String> {
+    public static class registerGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerGatewayResourceProfile_args, Boolean> {
       public registerGatewayResourceProfile() {
         super("registerGatewayResourceProfile");
       }
@@ -11889,12 +12237,13 @@ import org.slf4j.LoggerFactory;
         return new registerGatewayResourceProfile_args();
       }
 
-      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<String>() { 
-          public void onComplete(String o) {
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
             registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -11942,7 +12291,7 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, registerGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+      public void start(I iface, registerGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
         iface.registerGatewayResourceProfile(args.gatewayResourceProfile,resultHandler);
       }
     }
@@ -53104,22 +53453,22 @@ import org.slf4j.LoggerFactory;
 
   }
 
-  public static class registerComputeResource_args implements org.apache.thrift.TBase<registerComputeResource_args, registerComputeResource_args._Fields>, java.io.Serializable, Cloneable, Comparable<registerComputeResource_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerComputeResource_args");
+  public static class getAvailableAppInterfaceComputeResources_args implements org.apache.thrift.TBase<getAvailableAppInterfaceComputeResources_args, getAvailableAppInterfaceComputeResources_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAvailableAppInterfaceComputeResources_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAvailableAppInterfaceComputeResources_args");
 
-    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceDescription", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField APP_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("appInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new registerComputeResource_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new registerComputeResource_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new getAvailableAppInterfaceComputeResources_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new getAvailableAppInterfaceComputeResources_argsTupleSchemeFactory());
     }
 
-    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription; // required
+    public String appInterfaceId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      COMPUTE_RESOURCE_DESCRIPTION((short)1, "computeResourceDescription");
+      APP_INTERFACE_ID((short)1, "appInterfaceId");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -53134,8 +53483,8 @@ import org.slf4j.LoggerFactory;
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // COMPUTE_RESOURCE_DESCRIPTION
-            return COMPUTE_RESOURCE_DESCRIPTION;
+          case 1: // APP_INTERFACE_ID
+            return APP_INTERFACE_ID;
           default:
             return null;
         }
@@ -53179,71 +53528,71 @@ import org.slf4j.LoggerFactory;
     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.COMPUTE_RESOURCE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("computeResourceDescription", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription.class)));
+      tmpMap.put(_Fields.APP_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("appInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerComputeResource_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAvailableAppInterfaceComputeResources_args.class, metaDataMap);
     }
 
-    public registerComputeResource_args() {
+    public getAvailableAppInterfaceComputeResources_args() {
     }
 
-    public registerComputeResource_args(
-      org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription)
+    public getAvailableAppInterfaceComputeResources_args(
+      String appInterfaceId)
     {
       this();
-      this.computeResourceDescription = computeResourceDescription;
+      this.appInterfaceId = appInterfaceId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public registerComputeResource_args(registerComputeResource_args other) {
-      if (other.isSetComputeResourceDescription()) {
-        this.computeResourceDescription = new org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription(other.computeResourceDescription);
+    public getAvailableAppInterfaceComputeResources_args(getAvailableAppInterfaceComputeResources_args other) {
+      if (other.isSetAppInterfaceId()) {
+        this.appInterfaceId = other.appInterfaceId;
       }
     }
 
-    public registerComputeResource_args deepCopy() {
-      return new registerComputeResource_args(this);
+    public getAvailableAppInterfaceComputeResources_args deepCopy() {
+      return new getAvailableAppInterfaceComputeResources_args(this);
     }
 
     @Override
     public void clear() {
-      this.computeResourceDescription = null;
+      this.appInterfaceId = null;
     }
 
-    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription getComputeResourceDescription() {
-      return this.computeResourceDescription;
+    public String getAppInterfaceId() {
+      return this.appInterfaceId;
     }
 
-    public registerComputeResource_args setComputeResourceDescription(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) {
-      this.computeResourceDescription = computeResourceDescription;
+    public getAvailableAppInterfaceComputeResources_args setAppInterfaceId(String appInterfaceId) {
+      this.appInterfaceId = appInterfaceId;
       return this;
     }
 
-    public void unsetComputeResourceDescription() {
-      this.computeResourceDescription = null;
+    public void unsetAppInterfaceId() {
+      this.appInterfaceId = null;
     }
 
-    /** Returns true if field computeResourceDescription is set (has been assigned a value) and false otherwise */
-    public boolean isSetComputeResourceDescription() {
-      return this.computeResourceDescription != null;
+    /** Returns true if field appInterfaceId is set (has been assigned a value) and false otherwise */
+    public boolean isSetAppInterfaceId() {
+      return this.appInterfaceId != null;
     }
 
-    public void setComputeResourceDescriptionIsSet(boolean value) {
+    public void setAppInterfaceIdIsSet(boolean value) {
       if (!value) {
-        this.computeResourceDescription = null;
+        this.appInterfaceId = null;
       }
     }
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case COMPUTE_RESOURCE_DESCRIPTION:
+      case APP_INTERFACE_ID:
         if (value == null) {
-          unsetComputeResourceDescription();
+          unsetAppInterfaceId();
         } else {
-          setComputeResourceDescription((org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription)value);
+          setAppInterfaceId((String)value);
         }
         break;
 
@@ -53252,8 +53601,8 @@ import org.slf4j.LoggerFactory;
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
-      case COMPUTE_RESOURCE_DESCRIPTION:
-        return getComputeResourceDescription();
+      case APP_INTERFACE_ID:
+        return getAppInterfaceId();
 
       }
       throw new IllegalStateException();
@@ -53266,8 +53615,8 @@ import org.slf4j.LoggerFactory;
       }
 
       switch (field) {
-      case COMPUTE_RESOURCE_DESCRIPTION:
-        return isSetComputeResourceDescription();
+      case APP_INTERFACE_ID:
+        return isSetAppInterfaceId();
       }
       throw new IllegalStateException();
     }
@@ -53276,21 +53625,21 @@ import org.slf4j.LoggerFactory;
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof registerComputeResource_args)
-        return this.equals((registerComputeResource_args)that);
+      if (that instanceof getAvailableAppInterfaceComputeResources_args)
+        return this.equals((getAvailableAppInterfaceComputeResources_args)that);
       return false;
     }
 
-    public boolean equals(registerComputeResource_args that) {
+    public boolean equals(getAvailableAppInterfaceComputeResources_args that) {
       if (that == null)
         return false;
 
-      boolean this_present_computeResourceDescription = true && this.isSetComputeResourceDescription();
-      boolean that_present_computeResourceDescription = true && that.isSetComputeResourceDescription();
-      if (this_present_computeResourceDescription || that_present_computeResourceDescription) {
-        if (!(this_present_computeResourceDescription && that_present_computeResourceDescription))
+      boolean this_present_appInterfaceId = true && this.isSetAppInterfaceId();
+      boolean that_present_appInterfaceId = true && that.isSetAppInterfaceId();
+      if (this_present_appInterfaceId || that_present_appInterfaceId) {
+        if (!(this_present_appInterfaceId && that_present_appInterfaceId))
           return false;
-        if (!this.computeResourceDescription.equals(that.computeResourceDescription))
+        if (!this.appInterfaceId.equals(that.appInterfaceId))
           return false;
       }
 
@@ -53303,19 +53652,19 @@ import org.slf4j.LoggerFactory;
     }
 
     @Override
-    public int compareTo(registerComputeResource_args other) {
+    public int compareTo(getAvailableAppInterfaceComputeResources_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = Boolean.valueOf(isSetComputeResourceDescription()).compareTo(other.isSetComputeResourceDescription());
+      lastComparison = Boolean.valueOf(isSetAppInterfaceId()).compareTo(other.isSetAppInterfaceId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetComputeResourceDescription()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceDescription, other.computeResourceDescription);
+      if (isSetAppInterfaceId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appInterfaceId, other.appInterfaceId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -53337,14 +53686,14 @@ import org.slf4j.LoggerFactory;
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("registerComputeResource_args(");
+      StringBuilder sb = new StringBuilder("getAvailableAppInterfaceComputeResources_args(");
       boolean first = true;
 
-      sb.append("computeResourceDescription:");
-      if (this.computeResourceDescription == null) {
+      sb.append("appInterfaceId:");
+      if (this.appInterfaceId == null) {
         sb.append("null");
       } else {
-        sb.append(this.computeResourceDescription);
+        sb.append(this.appInterfaceId);
       }
       first = false;
       sb.append(")");
@@ -53353,13 +53702,10 @@ import org.slf4j.LoggerFactory;
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (computeResourceDescription == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceDescription' was not present! Struct: " + toString());
+      if (appInterfaceId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'appInterfaceId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
-      if (computeResourceDescription != null) {
-        computeResourceDescription.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -53378,15 +53724,15 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    private static class registerComputeResource_argsStandardSchemeFactory implements SchemeFactory {
-      public registerComputeResource_argsStandardScheme getScheme() {
-        return new registerComputeResource_argsStandardScheme();
+    private static class getAvailableAppInterfaceComputeResources_argsStandardSchemeFactory implements SchemeFactory {
+      public getAvailableAppInterfaceComputeResources_argsStandardScheme getScheme() {
+        return new getAvailableAppInterfaceComputeResources_argsStandardScheme();
       }
     }
 
-    private static class registerComputeResource_argsStandardScheme extends StandardScheme<registerComputeResource_args> {
+    private static class getAvailableAppInterfaceComputeResources_argsStandardScheme extends StandardScheme<getAvailableAppInterfaceComputeResources_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, registerComputeResource_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getAvailableAppInterfaceComputeResources_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -53396,11 +53742,10 @@ import org.slf4j.LoggerFactory;
             break;
           }
           switch (schemeField.id) {
-            case 1: // COMPUTE_RESOURCE_DESCRIPTION
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.computeResourceDescription = new org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription();
-                struct.computeResourceDescription.read(iprot);
-                struct.setComputeResourceDescriptionIsSet(true);
+            case 1: // APP_INTERFACE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.appInterfaceId = iprot.readString();
+                struct.setAppInterfaceIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -53416,13 +53761,13 @@ import org.slf4j.LoggerFactory;
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, registerComputeResource_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getAvailableAppInterfaceComputeResources_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.computeResourceDescription != null) {
-          oprot.writeFieldBegin(COMPUTE_RESOURCE_DESCRIPTION_FIELD_DESC);
-          struct.computeResourceDescription.write(oprot);
+        if (struct.appInterfaceId != null) {
+          oprot.writeFieldBegin(APP_INTERFACE_ID_FIELD_DESC);
+          oprot.writeString(struct.appInterfaceId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -53431,46 +53776,45 @@ import org.slf4j.LoggerFactory;
 
     }
 
-    private static class registerComputeResource_argsTupleSchemeFactory implements SchemeFactory {
-      public registerComputeResource_argsTupleScheme getScheme() {
-        return new registerComputeResource_argsTupleScheme();
+    private static class getAvailableAppInterfaceComputeResources_argsTupleSchemeFactory implements SchemeFactory {
+      public getAvailableAppInterfaceComputeResources_argsTupleScheme getScheme() {
+        return new getAvailableAppInterfaceComputeResources_argsTupleScheme();
       }
     }
 
-    private static class registerComputeResource_argsTupleScheme extends TupleScheme<registerComputeResource_args> {
+    private static class getAvailableAppInterfaceComputeResources_argsTupleScheme extends TupleScheme<getAvailableAppInterfaceComputeResources_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, registerComputeResource_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getAvailableAppInterfaceComputeResources_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
-        struct.computeResourceDescription.write(oprot);
+        oprot.writeString(struct.appInterfaceId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, registerComputeResource_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getAvailableAppInterfaceComputeResources_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        struct.computeResourceDescription = new org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription();
-        struct.computeResourceDescription.read(iprot);
-        struct.setComputeResourceDescriptionIsSet(true);
+        struct.appInterfaceId = iprot.readString();
+        struct.setAppInterfaceIdIsSet(true);
       }
     }
 
   }
 
-  public static class registerComputeResource_result implements org.apache.thrift.TBase<registerComputeResource_result, registerComputeResource_result._Fields>, java.io.Serializable, Cloneable, Comparable<registerComputeResource_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerComputeResource_result");
+  public static class getAvailableAppInterfaceComputeResources_result implements org.apache.thrift.TBase<getAvailableAppInterfaceComputeResources_result, getAvailableAppInterfaceComputeResources_result._Fields>, java.io.Serializable, Cloneable, Comparable<getAvailableAppInterfaceComputeResources_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAvailableAppInterfaceComputeResources_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new registerComputeResource_resultStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new registerComputeResource_resultTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new getAvailableAppInterfaceComputeResources_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new getAvailableAppInterfaceComputeResources_resultTupleSchemeFactory());
     }
 
-    public String success; // required
+    public List<String> success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
@@ -53547,7 +53891,8 @@ import org.slf4j.LoggerFactory;
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+          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.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -53555,14 +53900,14 @@ import org.slf4j.LoggerFactory;
       tmpMap.put(_Fields.ASE, new org.apache.thrift.meta_data.FieldMetaData("ase", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerComputeResource_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAvailableAppInterfaceComputeResources_result.class, metaDataMap);
     }
 
-    public registerComputeResource_result() {
+    public getAvailableAppInterfaceComputeResources_result() {
     }
 
-    public registerComputeResource_result(
-      String success,
+    public getAvailableAppInterfaceComputeResources_result(
+      List<String> success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase)
@@ -53577,9 +53922,10 @@ import org.slf4j.LoggerFactory;
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public registerComputeResource_result(registerComputeResource_result other) {
+    public getAvailableAppInterfaceComputeResources_result(getAvailableAppInterfaceComputeResources_result other) {
       if (other.isSetSuccess()) {
-        this.success = other.success;
+        List<String> __this__success = new ArrayList<String>(other.success);
+        this.success = __this__success;
       }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
@@ -53592,8 +53938,8 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public registerComputeResource_result deepCopy() {
-      return new registerComputeResource_result(this);
+    public getAvailableAppInterfaceComputeResources_result deepCopy() {
+      return new getAvailableAppInterfaceComputeResources_result(this);
     }
 
     @Override
@@ -53604,11 +53950,26 @@ import org.slf4j.LoggerFactory;
       this.ase = null;
     }
 
-    public String getSuccess() {
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<String> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(String elem) {
+      if (this.success == null) {
+        this.success = new ArrayList<String>();
+      }
+      this.success.add(elem);
+    }
+
+    public List<String> getSuccess() {
       return this.success;
     }
 
-    public registerComputeResource_result setSuccess(String success) {
+    public getAvailableAppInterfaceComputeResources_result setSuccess(List<String> success) {
       this.success = success;
       return this;
     }
@@ -53632,7 +53993,7 @@ import org.slf4j.LoggerFactory;
       return this.ire;
     }
 
-    public registerComputeResource_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public getAvailableAppInterfaceComputeResources_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -53656,7 +54017,7 @@ import org.slf4j.LoggerFactory;
       return this.ace;
     }
 
-    public registerComputeResource_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public getAvailableAppInterfaceComputeResources_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -53680,7 +54041,7 @@ import org.slf4j.LoggerFactory;
       return this.ase;
     }
 
-    public registerComputeResource_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public getAvailableAppInterfaceComputeResources_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -53706,7 +54067,7 @@ import org.slf4j.LoggerFactory;
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((String)value);
+          setSuccess((List<String>)value);
         }
         break;
 
@@ -53778,12 +54139,12 @@ import org.slf4j.LoggerFactory;
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof registerComputeResource_result)
-        return this.equals((registerComputeResource_result)that);
+      if (that instanceof getAvailableAppInterfaceComputeResources_result)
+        return this.equals((getAvailableAppInterfaceComputeResources_result)that);
       return false;
     }
 
-    public boolean equals(registerComputeResource_result that) {
+    public boolean equals(getAvailableAppInterfaceComputeResources_result that) {
       if (that == null)
         return false;
 
@@ -53832,7 +54193,7 @@ import org.slf4j.LoggerFactory;
     }
 
     @Override
-    public int compareTo(registerComputeResource_result other) {
+    public int compareTo(getAvailableAppInterfaceComputeResources_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -53896,7 +54257,7 @@ import org.slf4j.LoggerFactory;
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("registerComputeResource_result(");
+      StringBuilder sb = new StringBuilder("getAvailableAppInterfaceComputeResources_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -53955,15 +54316,15 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    private static class registerComputeResource_resultStandardSchemeFactory implements SchemeFactory {
-      public registerComputeResource_resultStandardScheme getScheme() {
-        return new registerComputeResource_resultStandardScheme();
+    private static class getAvailableAppInterfaceComputeResources_resultStandardSchemeFactory implements SchemeFactory {
+      public getAvailableAppInterfaceComputeResources_resultStandardScheme getScheme() {
+        return new getAvailableAppInterfaceComputeResources_resultStandardScheme();
       }
     }
 
-    private static class registerComputeResource_resultStandardScheme extends StandardScheme<registerComputeResource_result> {
+    private static class getAvailableAppInterfaceComputeResources_resultStandardScheme extends StandardScheme<getAvailableAppInterfaceComputeResources_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, registerComputeResource_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getAvailableAppInterfaceComputeResources_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -53974,8 +54335,18 @@ import org.slf4j.LoggerFactory;
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.success = iprot.readString();
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list106 = iprot.readListBegin();
+                  struct.success = new ArrayList<String>(_list106.size);
+                  for (int _i107 = 0; _i107 < _list106.size; ++_i107)
+                  {
+                    String _elem108;
+                    _elem108 = iprot.readString();
+                    struct.success.add(_elem108);
+                  }
+                  iprot.readListEnd();
+                }
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -54019,13 +54390,20 @@ import org.slf4j.LoggerFactory;
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, registerComputeResource_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getAvailableAppInterfaceComputeResources_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          oprot.writeString(struct.success);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
+            for (String _iter109 : struct.success)
+            {
+              oprot.writeString(_iter109);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
         if (struct.ire != null) {
@@ -54049,16 +54427,16 @@ import org.slf4j.LoggerFactory;
 
     }
 
-    private static class registerComputeResource_resultTupleSchemeFactory implements SchemeFactory {
-      public registerComputeResource_resultTupleScheme getScheme() {
-        return new registerComputeResource_resultTupleScheme();
+    private static class getAvailableAppInterfaceComputeResources_resultTupleSchemeFactory implements SchemeFactory {
+      public getAvailableAppInterfaceComputeResources_resultTupleScheme getScheme() {
+        return new getAvailableAppInterfaceComputeResources_resultTupleScheme();
       }
     }
 
-    private static class registerComputeResource_resultTupleScheme extends TupleScheme<registerComputeResource_result> {
+    private static class getAvailableAppInterfaceComputeResources_resultTupleScheme extends TupleScheme<getAvailableAppInterfaceComputeResources_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, registerComputeResource_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getAvailableAppInterfaceComputeResources_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetSuccess()) {
@@ -54075,7 +54453,13 @@ import org.slf4j.LoggerFactory;
         }
         oprot.writeBitSet(optionals, 4);
         if (struct.isSetSuccess()) {
-          oprot.writeString(struct.success);
+          {
+            oprot.writeI32(struct.success.size());
+            for (String _iter110 : struct.success)
+            {
+              oprot.writeString(_iter110);
+            }
+          }
         }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
@@ -54089,11 +54473,20 @@ import org.slf4j.LoggerFactory;
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, registerComputeResource_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getAvailableAppInterfaceComputeResources_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(4);
         if (incoming.get(0)) {
-          struct.success = iprot.readString();
+          {
+            org.apache.thrift.protocol.TList _list111 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.success = new ArrayList<String>(_list111.size);
+            for (int _i112 = 0; _i112 < _list111.size; ++_i112)
+            {
+              String _elem113;
+              _elem113 = iprot.readString();
+              struct.success.add(_elem113);
+            }
+          }
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -54116,22 +54509,22 @@ import org.slf4j.LoggerFactory;
 
   }
 
-  public static class getComputeResource_args implements org.apache.thrift.TBase<getComputeResource_args, getComputeResource_args._Fields>, java.io.Serializable, Cloneable, Comparable<getComputeResource_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getComputeResource_args");
+  public static class registerComputeResource_args implements org.apache.thrift.TBase<registerComputeResource_args, registerComputeResource_args._Fields>, java.io.Serializable, Cloneable, Comparable<registerComputeResource_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerComputeResource_args");
 
-    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceDescription", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new getComputeResource_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new getComputeResource_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new registerComputeResource_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new registerComputeResource_argsTupleSchemeFactory());
     }
 
-    public String computeResourceId; // required
+    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      COMPUTE_RESOURCE_ID((short)1, "computeResourceId");
+      COMPUTE_RESOURCE_DESCRIPTION((short)1, "computeResourceDescription");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -54146,8 +54539,8 @@ import org.slf4j.LoggerFactory;
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // COMPUTE_RESOURCE_ID
-            return COMPUTE_RESOURCE_ID;
+          case 1: // COMPUTE_RESOURCE_DESCRIPTION
+            return COMPUTE_RESOURCE_DESCRIPTION;
           default:
             return null;
         }
@@ -54191,71 +54584,71 @@ import org.slf4j.LoggerFactory;
     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.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.COMPUTE_RESOURCE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("computeResourceDescription", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getComputeResource_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerComputeResource_args.class, metaDataMap);
     }
 
-    public getComputeResource_args() {
+    public registerComputeResource_args() {
     }
 
-    public getComputeResource_args(
-      String computeResourceId)
+    public registerComputeResource_args(
+      org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription)
     {
       this();
-      this.computeResourceId = computeResourceId;
+      this.computeResourceDescription = computeResourceDescription;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getComputeResource_args(getComputeResource_args other) {
-      if (other.isSetComputeResourceId()) {
-        this.computeResourceId = other.computeResourceId;
+    public registerComputeResource_args(registerComputeResource_args other) {
+      if (other.isSetComputeResourceDescription()) {
+        this.computeResourceDescription = new org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription(other.computeResourceDescription);
       }
     }
 
-    public getComputeResource_args deepCopy() {
-      return new getComputeResource_args(this);
+    public registerComputeResource_args deepCopy() {
+      return new registerComputeResource_args(this);
     }
 
     @Override
     public void clear() {
-      this.computeResourceId = null;
+      this.computeResourceDescription = null;
     }
 
-    public String getComputeResourceId() {
-      return this.computeResourceId;
+    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription getComputeResourceDescription() {
+      return this.computeResourceDescription;
     }
 
-    public getComputeResource_args setComputeResourceId(String computeResourceId) {
-      this.computeResourceId = computeResourceId;
+    public registerComputeResource_args setComputeResourceDescription(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) {
+      this.computeResourceDescription = computeResourceDescription;
       return this;
     }
 
-    public void unsetComputeResourceId() {
-      this.computeResourceId = null;
+    public void unsetComputeResourceDescription() {
+      this.computeResourceDescription = null;
     }
 
-    /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
-    public boolean isSetComputeResourceId() {
-      return this.computeResourceId != null;
+    /** Returns true if field computeResourceDescription is set (has been assigned a value) and false otherwise */
+    public boolean isSetComputeResourceDescription() {
+      return this.computeResourceDescription != null;
     }
 
-    public void setComputeResourceIdIsSet(boolean value) {
+    public void setComputeResourceDescriptionIsSet(boolean value) {
       if (!value) {
-        this.computeResourceId = null;
+        this.computeResourceDescription = null;
       }
     }
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case COMPUTE_RESOURCE_ID:
+      case COMPUTE_RESOURCE_DESCRIPTION:
         if (value == null) {
-          unsetComputeResourceId();
+          unsetComputeResourceDescription();
         } else {
-          setComputeResourceId((String)value);
+          setComputeResourceDescription((org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription)value);
         }
         break;
 
@@ -54264,8 +54657,8 @@ import org.slf4j.LoggerFactory;
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
-      case COMPUTE_RESOURCE_ID:
-        return getComputeResourceId();
+      case COMPUTE_RESOURCE_DESCRIPTION:
+        return getComputeResourceDescription();
 
       }
       throw new IllegalStateException();
@@ -54278,8 +54671,8 @@ import org.slf4j.LoggerFactory;
       }
 
       switch (field) {
-      case COMPUTE_RESOURCE_ID:
-        return isSetComputeResourceId();
+      case COMPUTE_RESOURCE_DESCRIPTION:
+        return isSetComputeResourceDescription();
       }
       throw new IllegalStateException();
     }
@@ -54288,21 +54681,21 @@ import org.slf4j.LoggerFactory;
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof getComputeResource_args)
-        return this.equals((getComputeResource_args)that);
+      if (that instanceof registerComputeResource_args)
+        return this.equals((registerComputeResource_args)that);
       return false;
     }
 
-    public boolean equals(getComputeResource_args that) {
+    public boolean equals(registerComputeResource_args that) {
       if (that == null)
         return false;
 
-      boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
-      boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
-      if (this_present_computeResourceId || that_present_computeResourceId) {
-        if (!(this_present_computeResourceId && that_present_computeResourceId))
+      boolean this_present_computeResourceDescription = true && this.isSetComputeResourceDescription();
+      boolean that_present_computeResourceDescription = true && that.isSetComputeResourceDescription();
+      if (this_present_computeResourceDescription || that_present_computeResourceDescription) {
+        if (!(this_present_computeResourceDescription && that_present_computeResourceDescription))
           return false;
-        if (!this.computeResourceId.equals(that.computeResourceId))
+        if (!this.computeResourceDescription.equals(that.computeResourceDescription))
           return false;
       }
 
@@ -54315,19 +54708,19 @@ import org.slf4j.LoggerFactory;
     }
 
     @Override
-    public int compareTo(getComputeResource_args other) {
+    public int compareTo(registerComputeResource_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
+      lastComparison = Boolean.valueOf(isSetComputeResourceDescription()).compareTo(other.isSetComputeResourceDescription());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetComputeResourceId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
+      if (isSetComputeResourceDescription()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceDescription, other.computeResourceDescription);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -54349,14 +54742,14 @@ import org.slf4j.LoggerFactory;
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("getComputeResource_args(");
+      StringBuilder sb = new StringBuilder("registerComputeResource_args(");
       boolean first = true;
 
-      sb.append("computeResourceId:");
-      if (this.computeResourceId == null) {
+      sb.append("computeResourceDescription:");
+      if (this.computeResourceDescription == null) {
         sb.append("null");
       } else {
-        sb.append(this.computeResourceId);
+        sb.append(this.computeResourceDescription);
       }
       first = false;
       sb.append(")");
@@ -54365,10 +54758,13 @@ import org.slf4j.LoggerFactory;
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (computeResourceId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceId' was not present! Struct: " + toString());
+      if (computeResourceDescription == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceDescription' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
+      if (computeResourceDescription != null) {
+        computeResourceDescription.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -54387,15 +54783,15 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    private static class getComputeResource_argsStandardSchemeFactory implements SchemeFactory {
-      public getComputeResource_argsStandardScheme getScheme() {
-        return new getComputeResource_argsStandardScheme();
+    private static class registerComputeResource_argsStandardSchemeFactory implements SchemeFactory {
+      public registerComputeResource_argsStandardScheme getScheme() {
+        return new registerComputeResource_argsStandardScheme();
       }
     }
 
-    private static class getComputeResource_argsStandardScheme extends StandardScheme<getComputeResource_args> {
+    private static class registerComputeResource_argsStandardScheme extends StandardScheme<registerComputeResource_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getComputeResource_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, registerComputeResource_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -54405,10 +54801,11 @@ import org.slf4j.LoggerFactory;
             break;
           }
           switch (schemeField.id) {
-            case 1: // COMPUTE_RESOURCE_ID
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.computeResourceId = iprot.readString();
-                struct.setComputeResourceIdIsSet(true);
+            case 1: // COMPUTE_RESOURCE_DESCRIPTION
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.computeResourceDescription = new org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription();
+                struct.computeResourceDescription.read(iprot);
+                struct.setComputeResourceDescriptionIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -54424,13 +54821,13 @@ import org.slf4j.LoggerFactory;
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getComputeResource_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, registerComputeResource_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.computeResourceId != null) {
-          oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
-          oprot.writeString(struct.computeResourceId);
+        if (struct.computeResourceDescription != null) {
+          oprot.writeFieldBegin(COMPUTE_RESOURCE_DESCRIPTION_FIELD_DESC);
+          struct.computeResourceDescription.write(oprot);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -54439,45 +54836,46 @@ import org.slf4j.LoggerFactory;
 
     }
 
-    private static class getComputeResource_argsTupleSchemeFactory implements SchemeFactory {
-      public getComputeResource_argsTupleScheme getScheme() {
-        return new getComputeResource_argsTupleScheme();
+    private static class registerComputeResource_argsTupleSchemeFactory implements SchemeFactory {
+      public registerComputeResource_argsTupleScheme getScheme() {
+        return new registerComputeRes

<TRUNCATED>