airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From scnakand...@apache.org
Subject [08/14] airavata git commit: adding replica catalog methods to the API
Date Fri, 11 Dec 2015 05:18:04 GMT
http://git-wip-us.apache.org/repos/asf/airavata/blob/7f777502/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 c60ae35..44d3f13 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
@@ -2310,6 +2310,41 @@ class Iface:
     """
     pass
 
+  def publishDataResource(self, authzToken, dataResourceModel):
+    """
+     * Replica Catalog Related API Methods
+    *
+
+    Parameters:
+     - authzToken
+     - dataResourceModel
+    """
+    pass
+
+  def updateDataResource(self, authzToken, dataResourceModel):
+    """
+    Parameters:
+     - authzToken
+     - dataResourceModel
+    """
+    pass
+
+  def removeDataResource(self, authzToken, resourceId):
+    """
+    Parameters:
+     - authzToken
+     - resourceId
+    """
+    pass
+
+  def getDataResource(self, authzToken, resourceId):
+    """
+    Parameters:
+     - authzToken
+     - resourceId
+    """
+    pass
+
 
 class Client(Iface):
   def __init__(self, iprot, oprot=None):
@@ -9068,6 +9103,169 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "isWorkflowExistWithName failed: unknown result");
 
+  def publishDataResource(self, authzToken, dataResourceModel):
+    """
+     * Replica Catalog Related API Methods
+    *
+
+    Parameters:
+     - authzToken
+     - dataResourceModel
+    """
+    self.send_publishDataResource(authzToken, dataResourceModel)
+    return self.recv_publishDataResource()
+
+  def send_publishDataResource(self, authzToken, dataResourceModel):
+    self._oprot.writeMessageBegin('publishDataResource', TMessageType.CALL, self._seqid)
+    args = publishDataResource_args()
+    args.authzToken = authzToken
+    args.dataResourceModel = dataResourceModel
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_publishDataResource(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = publishDataResource_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, "publishDataResource failed: unknown result");
+
+  def updateDataResource(self, authzToken, dataResourceModel):
+    """
+    Parameters:
+     - authzToken
+     - dataResourceModel
+    """
+    self.send_updateDataResource(authzToken, dataResourceModel)
+    self.recv_updateDataResource()
+
+  def send_updateDataResource(self, authzToken, dataResourceModel):
+    self._oprot.writeMessageBegin('updateDataResource', TMessageType.CALL, self._seqid)
+    args = updateDataResource_args()
+    args.authzToken = authzToken
+    args.dataResourceModel = dataResourceModel
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_updateDataResource(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = updateDataResource_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    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
+    return
+
+  def removeDataResource(self, authzToken, resourceId):
+    """
+    Parameters:
+     - authzToken
+     - resourceId
+    """
+    self.send_removeDataResource(authzToken, resourceId)
+    self.recv_removeDataResource()
+
+  def send_removeDataResource(self, authzToken, resourceId):
+    self._oprot.writeMessageBegin('removeDataResource', TMessageType.CALL, self._seqid)
+    args = removeDataResource_args()
+    args.authzToken = authzToken
+    args.resourceId = resourceId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_removeDataResource(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = removeDataResource_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    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
+    return
+
+  def getDataResource(self, authzToken, resourceId):
+    """
+    Parameters:
+     - authzToken
+     - resourceId
+    """
+    self.send_getDataResource(authzToken, resourceId)
+    return self.recv_getDataResource()
+
+  def send_getDataResource(self, authzToken, resourceId):
+    self._oprot.writeMessageBegin('getDataResource', TMessageType.CALL, self._seqid)
+    args = getDataResource_args()
+    args.authzToken = authzToken
+    args.resourceId = resourceId
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getDataResource(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getDataResource_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, "getDataResource failed: unknown result");
+
 
 class Processor(Iface, TProcessor):
   def __init__(self, handler):
@@ -9205,6 +9403,10 @@ class Processor(Iface, TProcessor):
     self._processMap["updateWorkflow"] = Processor.process_updateWorkflow
     self._processMap["getWorkflowTemplateId"] = Processor.process_getWorkflowTemplateId
     self._processMap["isWorkflowExistWithName"] = Processor.process_isWorkflowExistWithName
+    self._processMap["publishDataResource"] = Processor.process_publishDataResource
+    self._processMap["updateDataResource"] = Processor.process_updateDataResource
+    self._processMap["removeDataResource"] = Processor.process_removeDataResource
+    self._processMap["getDataResource"] = Processor.process_getDataResource
 
   def process(self, iprot, oprot):
     (name, type, seqid) = iprot.readMessageBegin()
@@ -11871,6 +12073,86 @@ class Processor(Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_publishDataResource(self, seqid, iprot, oprot):
+    args = publishDataResource_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = publishDataResource_result()
+    try:
+      result.success = self._handler.publishDataResource(args.authzToken, args.dataResourceModel)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException, ace:
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
+    oprot.writeMessageBegin("publishDataResource", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_updateDataResource(self, seqid, iprot, oprot):
+    args = updateDataResource_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = updateDataResource_result()
+    try:
+      self._handler.updateDataResource(args.authzToken, args.dataResourceModel)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException, ace:
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
+    oprot.writeMessageBegin("updateDataResource", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_removeDataResource(self, seqid, iprot, oprot):
+    args = removeDataResource_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = removeDataResource_result()
+    try:
+      self._handler.removeDataResource(args.authzToken, args.resourceId)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException, ace:
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
+    oprot.writeMessageBegin("removeDataResource", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
+  def process_getDataResource(self, seqid, iprot, oprot):
+    args = getDataResource_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = getDataResource_result()
+    try:
+      result.success = self._handler.getDataResource(args.authzToken, args.resourceId)
+    except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
+      result.ire = ire
+    except apache.airavata.api.error.ttypes.AiravataClientException, ace:
+      result.ace = ace
+    except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
+      result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
+    oprot.writeMessageBegin("getDataResource", TMessageType.REPLY, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
 
 # HELPER FUNCTIONS AND STRUCTURES
 
@@ -19487,12 +19769,333 @@ class updateExperimentConfiguration_args:
           self.airavataExperimentId = iprot.readString();
         else:
           iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRUCT:
-          self.userConfiguration = apache.airavata.model.experiment.ttypes.UserConfigurationDataModel()
-          self.userConfiguration.read(iprot)
-        else:
-          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.userConfiguration = apache.airavata.model.experiment.ttypes.UserConfigurationDataModel()
+          self.userConfiguration.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('updateExperimentConfiguration_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.airavataExperimentId is not None:
+      oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
+      oprot.writeString(self.airavataExperimentId)
+      oprot.writeFieldEnd()
+    if self.userConfiguration is not None:
+      oprot.writeFieldBegin('userConfiguration', TType.STRUCT, 3)
+      self.userConfiguration.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.airavataExperimentId is None:
+      raise TProtocol.TProtocolException(message='Required field airavataExperimentId is unset!')
+    if self.userConfiguration is None:
+      raise TProtocol.TProtocolException(message='Required field userConfiguration is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.airavataExperimentId)
+    value = (value * 31) ^ hash(self.userConfiguration)
+    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 updateExperimentConfiguration_result:
+  """
+  Attributes:
+   - ae
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 1
+  )
+
+  def __init__(self, ae=None,):
+    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 == 1:
+        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('updateExperimentConfiguration_result')
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 1)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    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 updateResourceScheduleing_args:
+  """
+  Attributes:
+   - authzToken
+   - airavataExperimentId
+   - resourceScheduling
+  """
+
+  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, 'airavataExperimentId', None, None, ), # 2
+    (3, TType.STRUCT, 'resourceScheduling', (apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ), # 3
+  )
+
+  def __init__(self, authzToken=None, airavataExperimentId=None, resourceScheduling=None,):
+    self.authzToken = authzToken
+    self.airavataExperimentId = airavataExperimentId
+    self.resourceScheduling = resourceScheduling
+
+  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.airavataExperimentId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.resourceScheduling = apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel()
+          self.resourceScheduling.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('updateResourceScheduleing_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.airavataExperimentId is not None:
+      oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
+      oprot.writeString(self.airavataExperimentId)
+      oprot.writeFieldEnd()
+    if self.resourceScheduling is not None:
+      oprot.writeFieldBegin('resourceScheduling', TType.STRUCT, 3)
+      self.resourceScheduling.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.airavataExperimentId is None:
+      raise TProtocol.TProtocolException(message='Required field airavataExperimentId is unset!')
+    if self.resourceScheduling is None:
+      raise TProtocol.TProtocolException(message='Required field resourceScheduling is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.airavataExperimentId)
+    value = (value * 31) ^ hash(self.resourceScheduling)
+    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 updateResourceScheduleing_result:
+  """
+  Attributes:
+   - ae
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 1
+  )
+
+  def __init__(self, ae=None,):
+    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 == 1:
+        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('updateResourceScheduleing_result')
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 1)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    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 validateExperiment_args:
+  """
+  Attributes:
+   - authzToken
+   - airavataExperimentId
+  """
+
+  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, 'airavataExperimentId', None, None, ), # 2
+  )
+
+  def __init__(self, authzToken=None, airavataExperimentId=None,):
+    self.authzToken = authzToken
+    self.airavataExperimentId = airavataExperimentId
+
+  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.airavataExperimentId = iprot.readString();
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -19502,7 +20105,7 @@ class updateExperimentConfiguration_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('updateExperimentConfiguration_args')
+    oprot.writeStructBegin('validateExperiment_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -19511,10 +20114,6 @@ class updateExperimentConfiguration_args:
       oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
       oprot.writeString(self.airavataExperimentId)
       oprot.writeFieldEnd()
-    if self.userConfiguration is not None:
-      oprot.writeFieldBegin('userConfiguration', TType.STRUCT, 3)
-      self.userConfiguration.write(oprot)
-      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -19523,8 +20122,6 @@ class updateExperimentConfiguration_args:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
     if self.airavataExperimentId is None:
       raise TProtocol.TProtocolException(message='Required field airavataExperimentId is unset!')
-    if self.userConfiguration is None:
-      raise TProtocol.TProtocolException(message='Required field userConfiguration is unset!')
     return
 
 
@@ -19532,7 +20129,6 @@ class updateExperimentConfiguration_args:
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
     value = (value * 31) ^ hash(self.airavataExperimentId)
-    value = (value * 31) ^ hash(self.userConfiguration)
     return value
 
   def __repr__(self):
@@ -19546,18 +20142,32 @@ class updateExperimentConfiguration_args:
   def __ne__(self, other):
     return not (self == other)
 
-class updateExperimentConfiguration_result:
+class validateExperiment_result:
   """
   Attributes:
+   - success
+   - ire
+   - enf
+   - ace
+   - ase
    - ae
   """
 
   thrift_spec = (
-    None, # 0
-    (1, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 1
+    (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, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 4
+    (5, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 5
   )
 
-  def __init__(self, ae=None,):
+  def __init__(self, success=None, ire=None, enf=None, ace=None, ase=None, ae=None,):
+    self.success = success
+    self.ire = ire
+    self.enf = enf
+    self.ace = ace
+    self.ase = ase
     self.ae = ae
 
   def read(self, iprot):
@@ -19569,7 +20179,36 @@ class updateExperimentConfiguration_result:
       (fname, ftype, fid) = iprot.readFieldBegin()
       if ftype == TType.STOP:
         break
-      if fid == 1:
+      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.enf = apache.airavata.api.error.ttypes.ExperimentNotFoundException()
+          self.enf.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
         if ftype == TType.STRUCT:
           self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
           self.ae.read(iprot)
@@ -19584,9 +20223,29 @@ class updateExperimentConfiguration_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('updateExperimentConfiguration_result')
+    oprot.writeStructBegin('validateExperiment_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.enf is not None:
+      oprot.writeFieldBegin('enf', TType.STRUCT, 2)
+      self.enf.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 3)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 4)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
     if self.ae is not None:
-      oprot.writeFieldBegin('ae', TType.STRUCT, 1)
+      oprot.writeFieldBegin('ae', TType.STRUCT, 5)
       self.ae.write(oprot)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -19598,6 +20257,11 @@ class updateExperimentConfiguration_result:
 
   def __hash__(self):
     value = 17
+    value = (value * 31) ^ hash(self.success)
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.enf)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
     value = (value * 31) ^ hash(self.ae)
     return value
 
@@ -19612,25 +20276,25 @@ class updateExperimentConfiguration_result:
   def __ne__(self, other):
     return not (self == other)
 
-class updateResourceScheduleing_args:
+class launchExperiment_args:
   """
   Attributes:
    - authzToken
    - airavataExperimentId
-   - resourceScheduling
+   - 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, 'airavataExperimentId', None, None, ), # 2
-    (3, TType.STRUCT, 'resourceScheduling', (apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ), # 3
+    (3, TType.STRING, 'gatewayId', None, None, ), # 3
   )
 
-  def __init__(self, authzToken=None, airavataExperimentId=None, resourceScheduling=None,):
+  def __init__(self, authzToken=None, airavataExperimentId=None, gatewayId=None,):
     self.authzToken = authzToken
     self.airavataExperimentId = airavataExperimentId
-    self.resourceScheduling = resourceScheduling
+    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:
@@ -19653,9 +20317,8 @@ class updateResourceScheduleing_args:
         else:
           iprot.skip(ftype)
       elif fid == 3:
-        if ftype == TType.STRUCT:
-          self.resourceScheduling = apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel()
-          self.resourceScheduling.read(iprot)
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -19667,7 +20330,7 @@ class updateResourceScheduleing_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('updateResourceScheduleing_args')
+    oprot.writeStructBegin('launchExperiment_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -19676,9 +20339,9 @@ class updateResourceScheduleing_args:
       oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
       oprot.writeString(self.airavataExperimentId)
       oprot.writeFieldEnd()
-    if self.resourceScheduling is not None:
-      oprot.writeFieldBegin('resourceScheduling', TType.STRUCT, 3)
-      self.resourceScheduling.write(oprot)
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+      oprot.writeString(self.gatewayId)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -19688,8 +20351,8 @@ class updateResourceScheduleing_args:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
     if self.airavataExperimentId is None:
       raise TProtocol.TProtocolException(message='Required field airavataExperimentId is unset!')
-    if self.resourceScheduling is None:
-      raise TProtocol.TProtocolException(message='Required field resourceScheduling is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
     return
 
 
@@ -19697,7 +20360,7 @@ class updateResourceScheduleing_args:
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
     value = (value * 31) ^ hash(self.airavataExperimentId)
-    value = (value * 31) ^ hash(self.resourceScheduling)
+    value = (value * 31) ^ hash(self.gatewayId)
     return value
 
   def __repr__(self):
@@ -19711,18 +20374,30 @@ class updateResourceScheduleing_args:
   def __ne__(self, other):
     return not (self == other)
 
-class updateResourceScheduleing_result:
+class launchExperiment_result:
   """
   Attributes:
+   - ire
+   - enf
+   - ace
+   - ase
    - ae
   """
 
   thrift_spec = (
     None, # 0
-    (1, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 1
+    (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
+    (2, TType.STRUCT, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 4
+    (5, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 5
   )
 
-  def __init__(self, ae=None,):
+  def __init__(self, ire=None, enf=None, ace=None, ase=None, ae=None,):
+    self.ire = ire
+    self.enf = enf
+    self.ace = ace
+    self.ase = ase
     self.ae = ae
 
   def read(self, iprot):
@@ -19736,6 +20411,30 @@ class updateResourceScheduleing_result:
         break
       if 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.enf = apache.airavata.api.error.ttypes.ExperimentNotFoundException()
+          self.enf.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        if ftype == TType.STRUCT:
           self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
           self.ae.read(iprot)
         else:
@@ -19749,9 +20448,25 @@ class updateResourceScheduleing_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('updateResourceScheduleing_result')
+    oprot.writeStructBegin('launchExperiment_result')
+    if self.ire is not None:
+      oprot.writeFieldBegin('ire', TType.STRUCT, 1)
+      self.ire.write(oprot)
+      oprot.writeFieldEnd()
+    if self.enf is not None:
+      oprot.writeFieldBegin('enf', TType.STRUCT, 2)
+      self.enf.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 3)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 4)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
     if self.ae is not None:
-      oprot.writeFieldBegin('ae', TType.STRUCT, 1)
+      oprot.writeFieldBegin('ae', TType.STRUCT, 5)
       self.ae.write(oprot)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -19763,6 +20478,10 @@ class updateResourceScheduleing_result:
 
   def __hash__(self):
     value = 17
+    value = (value * 31) ^ hash(self.ire)
+    value = (value * 31) ^ hash(self.enf)
+    value = (value * 31) ^ hash(self.ace)
+    value = (value * 31) ^ hash(self.ase)
     value = (value * 31) ^ hash(self.ae)
     return value
 
@@ -19777,7 +20496,7 @@ class updateResourceScheduleing_result:
   def __ne__(self, other):
     return not (self == other)
 
-class validateExperiment_args:
+class getExperimentStatus_args:
   """
   Attributes:
    - authzToken
@@ -19823,7 +20542,7 @@ class validateExperiment_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('validateExperiment_args')
+    oprot.writeStructBegin('getExperimentStatus_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -19860,7 +20579,7 @@ class validateExperiment_args:
   def __ne__(self, other):
     return not (self == other)
 
-class validateExperiment_result:
+class getExperimentStatus_result:
   """
   Attributes:
    - success
@@ -19872,7 +20591,7 @@ class validateExperiment_result:
   """
 
   thrift_spec = (
-    (0, TType.BOOL, 'success', None, None, ), # 0
+    (0, TType.STRUCT, 'success', (apache.airavata.model.status.ttypes.ExperimentStatus, apache.airavata.model.status.ttypes.ExperimentStatus.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, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
@@ -19898,8 +20617,9 @@ class validateExperiment_result:
       if ftype == TType.STOP:
         break
       if fid == 0:
-        if ftype == TType.BOOL:
-          self.success = iprot.readBool();
+        if ftype == TType.STRUCT:
+          self.success = apache.airavata.model.status.ttypes.ExperimentStatus()
+          self.success.read(iprot)
         else:
           iprot.skip(ftype)
       elif fid == 1:
@@ -19941,10 +20661,10 @@ class validateExperiment_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('validateExperiment_result')
+    oprot.writeStructBegin('getExperimentStatus_result')
     if self.success is not None:
-      oprot.writeFieldBegin('success', TType.BOOL, 0)
-      oprot.writeBool(self.success)
+      oprot.writeFieldBegin('success', TType.STRUCT, 0)
+      self.success.write(oprot)
       oprot.writeFieldEnd()
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -19994,25 +20714,22 @@ class validateExperiment_result:
   def __ne__(self, other):
     return not (self == other)
 
-class launchExperiment_args:
+class getExperimentOutputs_args:
   """
   Attributes:
    - authzToken
    - airavataExperimentId
-   - 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, 'airavataExperimentId', None, None, ), # 2
-    (3, TType.STRING, 'gatewayId', None, None, ), # 3
   )
 
-  def __init__(self, authzToken=None, airavataExperimentId=None, gatewayId=None,):
+  def __init__(self, authzToken=None, airavataExperimentId=None,):
     self.authzToken = authzToken
     self.airavataExperimentId = airavataExperimentId
-    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:
@@ -20034,11 +20751,6 @@ class launchExperiment_args:
           self.airavataExperimentId = iprot.readString();
         else:
           iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.gatewayId = iprot.readString();
-        else:
-          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -20048,7 +20760,7 @@ class launchExperiment_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('launchExperiment_args')
+    oprot.writeStructBegin('getExperimentOutputs_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -20057,10 +20769,6 @@ class launchExperiment_args:
       oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
       oprot.writeString(self.airavataExperimentId)
       oprot.writeFieldEnd()
-    if self.gatewayId is not None:
-      oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
-      oprot.writeString(self.gatewayId)
-      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
@@ -20069,8 +20777,6 @@ class launchExperiment_args:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
     if self.airavataExperimentId is None:
       raise TProtocol.TProtocolException(message='Required field airavataExperimentId is unset!')
-    if self.gatewayId is None:
-      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
     return
 
 
@@ -20078,7 +20784,6 @@ class launchExperiment_args:
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
     value = (value * 31) ^ hash(self.airavataExperimentId)
-    value = (value * 31) ^ hash(self.gatewayId)
     return value
 
   def __repr__(self):
@@ -20092,9 +20797,10 @@ class launchExperiment_args:
   def __ne__(self, other):
     return not (self == other)
 
-class launchExperiment_result:
+class getExperimentOutputs_result:
   """
   Attributes:
+   - success
    - ire
    - enf
    - ace
@@ -20103,7 +20809,7 @@ class launchExperiment_result:
   """
 
   thrift_spec = (
-    None, # 0
+    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.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, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
@@ -20111,7 +20817,8 @@ class launchExperiment_result:
     (5, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 5
   )
 
-  def __init__(self, ire=None, enf=None, ace=None, ase=None, ae=None,):
+  def __init__(self, success=None, ire=None, enf=None, ace=None, ase=None, ae=None,):
+    self.success = success
     self.ire = ire
     self.enf = enf
     self.ace = ace
@@ -20127,7 +20834,18 @@ class launchExperiment_result:
       (fname, ftype, fid) = iprot.readFieldBegin()
       if ftype == TType.STOP:
         break
-      if fid == 1:
+      if fid == 0:
+        if ftype == TType.LIST:
+          self.success = []
+          (_etype114, _size111) = iprot.readListBegin()
+          for _i115 in xrange(_size111):
+            _elem116 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+            _elem116.read(iprot)
+            self.success.append(_elem116)
+          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)
@@ -20166,7 +20884,14 @@ class launchExperiment_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('launchExperiment_result')
+    oprot.writeStructBegin('getExperimentOutputs_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.LIST, 0)
+      oprot.writeListBegin(TType.STRUCT, len(self.success))
+      for iter117 in self.success:
+        iter117.write(oprot)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
       self.ire.write(oprot)
@@ -20196,6 +20921,7 @@ class launchExperiment_result:
 
   def __hash__(self):
     value = 17
+    value = (value * 31) ^ hash(self.success)
     value = (value * 31) ^ hash(self.ire)
     value = (value * 31) ^ hash(self.enf)
     value = (value * 31) ^ hash(self.ace)
@@ -20214,7 +20940,7 @@ class launchExperiment_result:
   def __ne__(self, other):
     return not (self == other)
 
-class getExperimentStatus_args:
+class getIntermediateOutputs_args:
   """
   Attributes:
    - authzToken
@@ -20260,7 +20986,7 @@ class getExperimentStatus_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('getExperimentStatus_args')
+    oprot.writeStructBegin('getIntermediateOutputs_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -20297,7 +21023,7 @@ class getExperimentStatus_args:
   def __ne__(self, other):
     return not (self == other)
 
-class getExperimentStatus_result:
+class getIntermediateOutputs_result:
   """
   Attributes:
    - success
@@ -20309,7 +21035,7 @@ class getExperimentStatus_result:
   """
 
   thrift_spec = (
-    (0, TType.STRUCT, 'success', (apache.airavata.model.status.ttypes.ExperimentStatus, apache.airavata.model.status.ttypes.ExperimentStatus.thrift_spec), None, ), # 0
+    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.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, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
@@ -20335,9 +21061,14 @@ class getExperimentStatus_result:
       if ftype == TType.STOP:
         break
       if fid == 0:
-        if ftype == TType.STRUCT:
-          self.success = apache.airavata.model.status.ttypes.ExperimentStatus()
-          self.success.read(iprot)
+        if ftype == TType.LIST:
+          self.success = []
+          (_etype121, _size118) = iprot.readListBegin()
+          for _i122 in xrange(_size118):
+            _elem123 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
+            _elem123.read(iprot)
+            self.success.append(_elem123)
+          iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 1:
@@ -20379,10 +21110,13 @@ class getExperimentStatus_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('getExperimentStatus_result')
+    oprot.writeStructBegin('getIntermediateOutputs_result')
     if self.success is not None:
-      oprot.writeFieldBegin('success', TType.STRUCT, 0)
-      self.success.write(oprot)
+      oprot.writeFieldBegin('success', TType.LIST, 0)
+      oprot.writeListBegin(TType.STRUCT, len(self.success))
+      for iter124 in self.success:
+        iter124.write(oprot)
+      oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -20432,7 +21166,7 @@ class getExperimentStatus_result:
   def __ne__(self, other):
     return not (self == other)
 
-class getExperimentOutputs_args:
+class getJobStatuses_args:
   """
   Attributes:
    - authzToken
@@ -20478,7 +21212,7 @@ class getExperimentOutputs_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('getExperimentOutputs_args')
+    oprot.writeStructBegin('getJobStatuses_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -20515,7 +21249,7 @@ class getExperimentOutputs_args:
   def __ne__(self, other):
     return not (self == other)
 
-class getExperimentOutputs_result:
+class getJobStatuses_result:
   """
   Attributes:
    - success
@@ -20527,7 +21261,7 @@ class getExperimentOutputs_result:
   """
 
   thrift_spec = (
-    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 0
+    (0, TType.MAP, 'success', (TType.STRING,None,TType.STRUCT,(apache.airavata.model.status.ttypes.JobStatus, apache.airavata.model.status.ttypes.JobStatus.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, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
@@ -20553,14 +21287,15 @@ class getExperimentOutputs_result:
       if ftype == TType.STOP:
         break
       if fid == 0:
-        if ftype == TType.LIST:
-          self.success = []
-          (_etype114, _size111) = iprot.readListBegin()
-          for _i115 in xrange(_size111):
-            _elem116 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
-            _elem116.read(iprot)
-            self.success.append(_elem116)
-          iprot.readListEnd()
+        if ftype == TType.MAP:
+          self.success = {}
+          (_ktype126, _vtype127, _size125 ) = iprot.readMapBegin()
+          for _i129 in xrange(_size125):
+            _key130 = iprot.readString();
+            _val131 = apache.airavata.model.status.ttypes.JobStatus()
+            _val131.read(iprot)
+            self.success[_key130] = _val131
+          iprot.readMapEnd()
         else:
           iprot.skip(ftype)
       elif fid == 1:
@@ -20602,13 +21337,14 @@ class getExperimentOutputs_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('getExperimentOutputs_result')
+    oprot.writeStructBegin('getJobStatuses_result')
     if self.success is not None:
-      oprot.writeFieldBegin('success', TType.LIST, 0)
-      oprot.writeListBegin(TType.STRUCT, len(self.success))
-      for iter117 in self.success:
-        iter117.write(oprot)
-      oprot.writeListEnd()
+      oprot.writeFieldBegin('success', TType.MAP, 0)
+      oprot.writeMapBegin(TType.STRING, TType.STRUCT, len(self.success))
+      for kiter132,viter133 in self.success.items():
+        oprot.writeString(kiter132)
+        viter133.write(oprot)
+      oprot.writeMapEnd()
       oprot.writeFieldEnd()
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
@@ -20658,7 +21394,7 @@ class getExperimentOutputs_result:
   def __ne__(self, other):
     return not (self == other)
 
-class getIntermediateOutputs_args:
+class getJobDetails_args:
   """
   Attributes:
    - authzToken
@@ -20704,7 +21440,7 @@ class getIntermediateOutputs_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('getIntermediateOutputs_args')
+    oprot.writeStructBegin('getJobDetails_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
@@ -20741,7 +21477,7 @@ class getIntermediateOutputs_args:
   def __ne__(self, other):
     return not (self == other)
 
-class getIntermediateOutputs_result:
+class getJobDetails_result:
   """
   Attributes:
    - success
@@ -20753,7 +21489,7 @@ class getIntermediateOutputs_result:
   """
 
   thrift_spec = (
-    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.application.io.ttypes.OutputDataObjectType, apache.airavata.model.application.io.ttypes.OutputDataObjectType.thrift_spec)), None, ), # 0
+    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.job.ttypes.JobModel, apache.airavata.model.job.ttypes.JobModel.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, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
@@ -20781,11 +21517,11 @@ class getIntermediateOutputs_result:
       if fid == 0:
         if ftype == TType.LIST:
           self.success = []
-          (_etype121, _size118) = iprot.readListBegin()
-          for _i122 in xrange(_size118):
-            _elem123 = apache.airavata.model.application.io.ttypes.OutputDataObjectType()
-            _elem123.read(iprot)
-            self.success.append(_elem123)
+          (_etype137, _size134) = iprot.readListBegin()
+          for _i138 in xrange(_size134):
+            _elem139 = apache.airavata.model.job.ttypes.JobModel()
+            _elem139.read(iprot)
+            self.success.append(_elem139)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -20828,12 +21564,12 @@ class getIntermediateOutputs_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('getIntermediateOutputs_result')
+    oprot.writeStructBegin('getJobDetails_result')
     if self.success is not None:
       oprot.writeFieldBegin('success', TType.LIST, 0)
       oprot.writeListBegin(TType.STRUCT, len(self.success))
-      for iter124 in self.success:
-        iter124.write(oprot)
+      for iter140 in self.success:
+        iter140.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.ire is not None:
@@ -20884,22 +21620,25 @@ class getIntermediateOutputs_result:
   def __ne__(self, other):
     return not (self == other)
 
-class getJobStatuses_args:
+class cloneExperiment_args:
   """
   Attributes:
    - authzToken
-   - airavataExperimentId
+   - existingExperimentID
+   - newExperimentName
   """
 
   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, 'airavataExperimentId', None, None, ), # 2
+    (2, TType.STRING, 'existingExperimentID', None, None, ), # 2
+    (3, TType.STRING, 'newExperimentName', None, None, ), # 3
   )
 
-  def __init__(self, authzToken=None, airavataExperimentId=None,):
+  def __init__(self, authzToken=None, existingExperimentID=None, newExperimentName=None,):
     self.authzToken = authzToken
-    self.airavataExperimentId = airavataExperimentId
+    self.existingExperimentID = existingExperimentID
+    self.newExperimentName = newExperimentName
 
   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:
@@ -20918,7 +21657,12 @@ class getJobStatuses_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.airavataExperimentId = iprot.readString();
+          self.existingExperimentID = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.newExperimentName = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -20930,14 +21674,18 @@ class getJobStatuses_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('getJobStatuses_args')
+    oprot.writeStructBegin('cloneExperiment_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
       oprot.writeFieldEnd()
-    if self.airavataExperimentId is not None:
-      oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
-      oprot.writeString(self.airavataExperimentId)
+    if self.existingExperimentID is not None:
+      oprot.writeFieldBegin('existingExperimentID', TType.STRING, 2)
+      oprot.writeString(self.existingExperimentID)
+      oprot.writeFieldEnd()
+    if self.newExperimentName is not None:
+      oprot.writeFieldBegin('newExperimentName', TType.STRING, 3)
+      oprot.writeString(self.newExperimentName)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -20945,15 +21693,14 @@ class getJobStatuses_args:
   def validate(self):
     if self.authzToken is None:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
-    if self.airavataExperimentId is None:
-      raise TProtocol.TProtocolException(message='Required field airavataExperimentId is unset!')
     return
 
 
   def __hash__(self):
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
-    value = (value * 31) ^ hash(self.airavataExperimentId)
+    value = (value * 31) ^ hash(self.existingExperimentID)
+    value = (value * 31) ^ hash(self.newExperimentName)
     return value
 
   def __repr__(self):
@@ -20967,7 +21714,7 @@ class getJobStatuses_args:
   def __ne__(self, other):
     return not (self == other)
 
-class getJobStatuses_result:
+class cloneExperiment_result:
   """
   Attributes:
    - success
@@ -20979,7 +21726,7 @@ class getJobStatuses_result:
   """
 
   thrift_spec = (
-    (0, TType.MAP, 'success', (TType.STRING,None,TType.STRUCT,(apache.airavata.model.status.ttypes.JobStatus, apache.airavata.model.status.ttypes.JobStatus.thrift_spec)), None, ), # 0
+    (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, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
@@ -21005,15 +21752,8 @@ class getJobStatuses_result:
       if ftype == TType.STOP:
         break
       if fid == 0:
-        if ftype == TType.MAP:
-          self.success = {}
-          (_ktype126, _vtype127, _size125 ) = iprot.readMapBegin()
-          for _i129 in xrange(_size125):
-            _key130 = iprot.readString();
-            _val131 = apache.airavata.model.status.ttypes.JobStatus()
-            _val131.read(iprot)
-            self.success[_key130] = _val131
-          iprot.readMapEnd()
+        if ftype == TType.STRING:
+          self.success = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 1:
@@ -21055,15 +21795,228 @@ class getJobStatuses_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('getJobStatuses_result')
+    oprot.writeStructBegin('cloneExperiment_result')
     if self.success is not None:
-      oprot.writeFieldBegin('success', TType.MAP, 0)
-      oprot.writeMapBegin(TType.STRING, TType.STRUCT, len(self.success))
-      for kiter132,viter133 in self.success.items():
-        oprot.writeString(kiter132)
-        viter133.write(oprot)
-      oprot.writeMapEnd()
+      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.enf is not None:
+      oprot.writeFieldBegin('enf', TType.STRUCT, 2)
+      self.enf.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ace is not None:
+      oprot.writeFieldBegin('ace', TType.STRUCT, 3)
+      self.ace.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ase is not None:
+      oprot.writeFieldBegin('ase', TType.STRUCT, 4)
+      self.ase.write(oprot)
+      oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 5)
+      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.enf)
+    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 terminateExperiment_args:
+  """
+  Attributes:
+   - authzToken
+   - airavataExperimentId
+   - 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, 'airavataExperimentId', None, None, ), # 2
+    (3, TType.STRING, 'gatewayId', None, None, ), # 3
+  )
+
+  def __init__(self, authzToken=None, airavataExperimentId=None, gatewayId=None,):
+    self.authzToken = authzToken
+    self.airavataExperimentId = airavataExperimentId
+    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.airavataExperimentId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        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('terminateExperiment_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
+    if self.airavataExperimentId is not None:
+      oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
+      oprot.writeString(self.airavataExperimentId)
       oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+      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!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.authzToken)
+    value = (value * 31) ^ hash(self.airavataExperimentId)
+    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 terminateExperiment_result:
+  """
+  Attributes:
+   - ire
+   - enf
+   - ace
+   - ase
+   - ae
+  """
+
+  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, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
+    (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 4
+    (5, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 5
+  )
+
+  def __init__(self, ire=None, enf=None, ace=None, ase=None, ae=None,):
+    self.ire = ire
+    self.enf = enf
+    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 == 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.enf = apache.airavata.api.error.ttypes.ExperimentNotFoundException()
+          self.enf.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRUCT:
+          self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
+          self.ace.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ase = apache.airavata.api.error.ttypes.AiravataSystemException()
+          self.ase.read(iprot)
+        else:
+          iprot.skip(ftype)
+      elif fid == 5:
+        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('terminateExperiment_result')
     if self.ire is not None:
       oprot.writeFieldBegin('ire', TType.STRUCT, 1)
       self.ire.write(oprot)
@@ -21093,7 +22046,6 @@ class getJobStatuses_result:
 
   def __hash__(self):
     value = 17
-    value = (value * 31) ^ hash(self.success)
     value = (value * 31) ^ hash(self.ire)
     value = (value * 31) ^ hash(self.enf)
     value = (value * 31) ^ hash(self.ace)
@@ -21112,22 +22064,25 @@ class getJobStatuses_result:
   def __ne__(self, other):
     return not (self == other)
 
-class getJobDetails_args:
+class registerApplicationModule_args:
   """
   Attributes:
    - authzToken
-   - airavataExperimentId
+   - gatewayId
+   - 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, 'airavataExperimentId', None, None, ), # 2
+    (2, TType.STRING, 'gatewayId', 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, airavataExperimentId=None,):
+  def __init__(self, authzToken=None, gatewayId=None, applicationModule=None,):
     self.authzToken = authzToken
-    self.airavataExperimentId = airavataExperimentId
+    self.gatewayId = gatewayId
+    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:
@@ -21146,7 +22101,13 @@ class getJobDetails_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.airavataExperimentId = iprot.readString();
+          self.gatewayId = 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:
@@ -21158,14 +22119,18 @@ class getJobDetails_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('getJobDetails_args')
+    oprot.writeStructBegin('registerApplicationModule_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
       oprot.writeFieldEnd()
-    if self.airavataExperimentId is not None:
-      oprot.writeFieldBegin('airavataExperimentId', TType.STRING, 2)
-      oprot.writeString(self.airavataExperimentId)
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 2)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    if self.applicationModule is not None:
+      oprot.writeFieldBegin('applicationModule', TType.STRUCT, 3)
+      self.applicationModule.write(oprot)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -21173,15 +22138,18 @@ class getJobDetails_args:
   def validate(self):
     if self.authzToken is None:
       raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
-    if self.airavataExperimentId is None:
-      raise TProtocol.TProtocolException(message='Required field airavataExperimentId is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId 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.airavataExperimentId)
+    value = (value * 31) ^ hash(self.gatewayId)
+    value = (value * 31) ^ hash(self.applicationModule)
     return value
 
   def __repr__(self):
@@ -21195,30 +22163,27 @@ class getJobDetails_args:
   def __ne__(self, other):
     return not (self == other)
 
-class getJobDetails_result:
+class registerApplicationModule_result:
   """
   Attributes:
    - success
    - ire
-   - enf
    - ace
    - ase
    - ae
   """
 
   thrift_spec = (
-    (0, TType.LIST, 'success', (TType.STRUCT,(apache.airavata.model.job.ttypes.JobModel, apache.airavata.model.job.ttypes.JobModel.thrift_spec)), None, ), # 0
+    (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, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
-    (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
-    (4, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 4
-    (5, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 5
+    (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, enf=None, ace=None, ase=None, ae=None,):
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
     self.success = success
     self.ire = ire
-    self.enf = enf
     self.ace = ace
     self.ase = ase
     self.ae = ae
@@ -21233,14 +22198,8 @@ class getJobDetails_result:
       if ftype == TType.STOP:
         break
       if fid == 0:
-        if ftype == TType.LIST:
-          self.success = []
-          (_etype137, _size134) = iprot.readListBegin()
-          for _i138 in xrange(_size134):
-            _elem139 = apache.airavata.model.job.ttypes.JobModel()
-            _elem139.read(iprot)
-            self.success.append(_elem139)
-          iprot.readListEnd()
+        if ftype == TType.STRING:
+          self.success = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 1:
@@ -21251,23 +22210,17 @@ class getJobDetails_result:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRUCT:
-          self.enf = apache.airavata.api.error.ttypes.ExperimentNotFoundException()
-          self.enf.read(iprot)
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRUCT:
           self.ace = apache.airavata.api.error.ttypes.AiravataClientException()
           self.ace.read(iprot)
         else:
           iprot.skip(ftype)
-      elif fid == 4:
+      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 == 5:
+      elif fid == 4:
         if ftype == TType.STRUCT:
           self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
           self.ae.read(iprot)
@@ -21282,32 +22235,25 @@ class getJobDetails_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('getJobDetails_result')
+    oprot.writeStructBegin('registerApplicationModule_result')
     if self.success is not None:
-      oprot.writeFieldBegin('success', TType.LIST, 0)
-      oprot.writeListBegin(TType.STRUCT, len(self.success))
-      for iter140 in self.success:
-        iter140.write(oprot)
-      oprot.writeListEnd()
+      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.enf is not None:
-      oprot.writeFieldBegin('enf', TType.STRUCT, 2)
-      self.enf.write(oprot)
-      oprot.writeFieldEnd()
     if self.ace is not None:
-      oprot.writeFieldBegin('ace', TType.STRUCT, 3)
+      oprot.writeFieldBegin('ace', TType.STRUCT, 2)
       self.ace.write(oprot)
       oprot.writeFieldEnd()
     if self.ase is not None:
-      oprot.writeFieldBegin('ase', TType.STRUCT, 4)
+      oprot.writeFieldBegin('ase', TType.STRUCT, 3)
       self.ase.write(oprot)
       oprot.writeFieldEnd()
     if self.ae is not None:
-      oprot.writeFieldBegin('ae', TType.STRUCT, 5)
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
       self.ae.write(oprot)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
@@ -21321,7 +22267,6 @@ class getJobDetails_result:
     value = 17
     value = (value * 31) ^ hash(self.success)
     value = (value * 31) ^ hash(self.ire)
-    value = (value * 31) ^ hash(self.enf)
     value = (value * 31) ^ hash(self.ace)
     value = (value * 31) ^ hash(self.ase)
     value = (value * 31) ^ hash(self.ae)
@@ -21338,25 +22283,22 @@ class getJobDetails_result:
   def __ne__(self, other):
     return not (self == other)
 
-class cloneExperiment_args:
+class getApplicationModule_args:
   """
   Attributes:
    - authzToken
-   - existingExperimentID
-   - newExperimentName
+   - 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, 'existingExperimentID', None, None, ), # 2
-    (3, TType.STRING, 'newExperimentName', None, None, ), # 3
+    (2, TType.STRING, 'appModuleId', None, None, ), # 2
   )
 
-  def __init__(self, authzToken=None, existingExperimentID=None, newExperimentName=None,):
+  def __init__(self, authzToken=None, appModuleId=None,):
     self.authzToken = authzToken
-    self.existingExperimentID = existingExperimentID
-    self.newExperimentName = newExperimentName
+    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:
@@ -21375,12 +22317,7 @@ class cloneExperiment_args:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.existingExperimentID = iprot.readString();
-        else:
-          iprot.skip(ftype)
-      elif fid == 3:
-        if ftype == TType.STRING:
-          self.newExperimentName = iprot.readString();
+          self.appModuleId = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -21392,18 +22329,14 @@ class cloneExperiment_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('cloneExperiment_args')
+    oprot.writeStructBegin('getApplicationModule_args')
     if self.authzToken is not None:
       oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
       self.authzToken.write(oprot)
       oprot.writeFieldEnd()
-    if self.existingExperimentID is not None:
-      oprot.writeFieldBegin('existingExperimentID', TType.STRING, 2)
-      oprot.writeString(self.existingExperimentID)
-      oprot.writeFieldEnd()
-    if self.newExperimentName is not None:
-      oprot.writeFieldBegin('newExperimentName', TType.STRING, 3)
-      oprot.writeString(self.newExperimentName)
+    if self.appModuleId is not None:
+      oprot.writeFieldBegin('appModuleId', TType.STRING, 2)
+      oprot.writeString(self.appModuleId)
       oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
@@ -21411,14 +22344,15 @@ class cloneExperiment_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!')
     return
 
 
   def __hash__(self):
     value = 17
     value = (value * 31) ^ hash(self.authzToken)
-    value = (value * 31) ^ hash(self.existingExperimentID)
-    value = (value * 31) ^ hash(self.newExperimentName)
+    value = (value * 31) ^ hash(self.appModuleId)
     return value
 
   def __repr__(self):
@@ -21432,30 +22366,27 @@ class cloneExperiment_args:
   def __ne__(self, other):
     return not (self == other)
 
-class cloneExperiment_result:
+class getApplicationModule_result:
   """
   Attributes:
    - success
    - ire
-   - enf
    - ace
    - ase
    - ae
   """
 
   thrift_spec = (
-    (0, TType.STRING, 'success', None, None, ), # 0
+    (0, TType.STRUCT, 'success', (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, 'enf', (apache.airavata.api.error.ttypes.ExperimentNotFoundException, apache.airavata.api.error.ttypes.ExperimentNotFoundException.thrift_spec), None, ), # 2
-    (3, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 3
-    (4, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 4
-    (5, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 5
+    (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, enf=None, ace=None, ase=None, ae=None,):
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
     self.success = success
     self.ire = ire
-    self.enf = enf
     self.ace = ace
     self.ase = ase
     self.ae = ae
@@ -21470,8 +22401,9 @@ class cloneExperiment_result:
       if ftype == TType.STOP:
         break
       if fid == 0:
-        if ftype == TType.STRING:
-          self.success = iprot.readString();
+        if ftype == TType.STRUCT:
+          self.success = apache.airavata.model.appcatalog.appdeployment.ttypes.ApplicationModule()
+          self.success.read(iprot)
         else:
           iprot.skip(ftype)
       elif fid == 1:
@@ -21482,23 +22414,17 @@ class cloneExperiment_result:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRUCT:
-          self.enf = apache.airavata.api.error.ttypes.ExperimentNotFoundException()
-          self.enf.read(ipr

<TRUNCATED>

Mime
View raw message