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

dimuthuupe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-mft.git


The following commit(s) were added to refs/heads/master by this push:
     new 77fa82f  Updating python sdk files
77fa82f is described below

commit 77fa82f0b3617d9b77ae52c76b51831604546369
Author: Dimuthu Wannipurage <[email protected]>
AuthorDate: Wed Sep 28 03:24:06 2022 -0400

    Updating python sdk files
---
 python-sdk/setup.cfg                               |   2 +-
 python-sdk/src/airavata_mft_sdk/generate-stubs.sh  |   7 +
 .../airavata_mft_sdk/odata/ODataCredential_pb2.py  |  96 ++++++++++
 .../odata/ODataCredential_pb2_grpc.py              |   4 +
 .../odata/ODataSecretService_pb2.py                |  29 +++
 .../odata/ODataSecretService_pb2_grpc.py           | 165 +++++++++++++++++
 .../odata/ODataStorageService_pb2.py               |  29 +++
 .../odata/ODataStorageService_pb2_grpc.py          | 200 +++++++++++++++++++++
 .../src/airavata_mft_sdk/odata/ODataStorage_pb2.py | 115 ++++++++++++
 .../odata/ODataStorage_pb2_grpc.py                 |   4 +
 python-sdk/src/airavata_mft_sdk/odata/__init__.py  |   0
 .../resource/ResourceService_pb2.py                |  47 ++---
 .../resourcesecretmap/StorageSecretMap_pb2.py      |  42 ++---
 .../src/airavata_mft_sdk/s3/S3Credential_pb2.py    |  28 +--
 .../airavata_mft_sdk/swift/SwiftCredential_pb2.py  | 116 ++++++++++++
 .../swift/SwiftCredential_pb2_grpc.py              |   4 +
 .../swift/SwiftSecretService_pb2.py                |  29 +++
 .../swift/SwiftSecretService_pb2_grpc.py           | 165 +++++++++++++++++
 .../swift/SwiftStorageService_pb2.py               |  29 +++
 .../swift/SwiftStorageService_pb2_grpc.py          | 200 +++++++++++++++++++++
 .../src/airavata_mft_sdk/swift/SwiftStorage_pb2.py | 115 ++++++++++++
 .../swift/SwiftStorage_pb2_grpc.py                 |   4 +
 python-sdk/src/airavata_mft_sdk/swift/__init__.py  |   0
 23 files changed, 1371 insertions(+), 59 deletions(-)

diff --git a/python-sdk/setup.cfg b/python-sdk/setup.cfg
index 3b60d7e..09f6fef 100644
--- a/python-sdk/setup.cfg
+++ b/python-sdk/setup.cfg
@@ -1,6 +1,6 @@
 [metadata]
 name = airavata_mft_sdk
-version = 0.0.1-alpha11
+version = 0.0.1-alpha12
 author = Airavata MFT Developers
 author_email = [email protected]
 description = Python SDK for Apache Airavata Managed File Transfers (MFT)
diff --git a/python-sdk/src/airavata_mft_sdk/generate-stubs.sh 
b/python-sdk/src/airavata_mft_sdk/generate-stubs.sh
index 60319de..734043f 100755
--- a/python-sdk/src/airavata_mft_sdk/generate-stubs.sh
+++ b/python-sdk/src/airavata_mft_sdk/generate-stubs.sh
@@ -39,6 +39,8 @@ python3 -m grpc_tools.protoc 
--proto_path=../../../services/resource-service/stu
           
../../../services/resource-service/stub/src/main/proto/azure/AzureStorage.proto 
\
           
../../../services/resource-service/stub/src/main/proto/swift/SwiftStorageService.proto
 \
           
../../../services/resource-service/stub/src/main/proto/swift/SwiftStorage.proto 
\
+          
../../../services/resource-service/stub/src/main/proto/odata/ODataStorageService.proto
 \
+          
../../../services/resource-service/stub/src/main/proto/odata/ODataStorage.proto 
\
           --python_out=$RESOURCE_DIR --grpc_python_out=$RESOURCE_DIR
 
 
@@ -61,6 +63,8 @@ python3 -m grpc_tools.protoc 
--proto_path=../../../services/secret-service/stub/
           
../../../services/secret-service/stub/src/main/proto/scp/SCPSecretService.proto 
\
           
../../../services/secret-service/stub/src/main/proto/swift/SwiftCredential.proto
 \
           
../../../services/secret-service/stub/src/main/proto/swift/SwiftSecretService.proto
 \
+          
../../../services/secret-service/stub/src/main/proto/odata/ODataCredential.proto
 \
+          
../../../services/secret-service/stub/src/main/proto/odata/ODataSecretService.proto
 \
           --python_out=$SECRET_DIR --grpc_python_out=$SECRET_DIR
 
 python3 -m grpc_tools.protoc --proto_path=../../../api/stub/src/main/proto \
@@ -81,6 +85,7 @@ touch resourcesecretmap/__init__.py
 touch s3/__init__.py
 touch scp/__init__.py
 touch swift/__init__.py
+touch odata/__init__.py
 
 
 sed -i 's/from \([^)]*\)pb2/from airavata_mft_sdk.\1pb2/' azure/*.py
@@ -94,6 +99,7 @@ sed -i 's/from \([^)]*\)pb2/from airavata_mft_sdk.\1pb2/' 
resourcesecretmap/*.py
 sed -i 's/from \([^)]*\)pb2/from airavata_mft_sdk.\1pb2/' s3/*.py
 sed -i 's/from \([^)]*\)pb2/from airavata_mft_sdk.\1pb2/' scp/*.py
 sed -i 's/from \([^)]*\)pb2/from airavata_mft_sdk.\1pb2/' swift/*.py
+sed -i 's/from \([^)]*\)pb2/from airavata_mft_sdk.\1pb2/' odata/*.py
 sed -i 's/from \([^)]*\)pb2/from airavata_mft_sdk.\1pb2/' *pb2.py
 sed -i 's/from \([^)]*\)pb2/from airavata_mft_sdk.\1pb2/' *pb2_grpc.py
 
@@ -108,5 +114,6 @@ sed -i 's/^import \([^)]*\)pb2/import 
airavata_mft_sdk.\1pb2/' resourcesecretmap
 sed -i 's/^import \([^)]*\)pb2/import airavata_mft_sdk.\1pb2/' s3/*.py
 sed -i 's/^import \([^)]*\)pb2/import airavata_mft_sdk.\1pb2/' scp/*.py
 sed -i 's/^import \([^)]*\)pb2/import airavata_mft_sdk.\1pb2/' swift/*.py
+sed -i 's/^import \([^)]*\)pb2/import airavata_mft_sdk.\1pb2/' odata/*.py
 sed -i 's/^import \([^)]*\)pb2/import airavata_mft_sdk.\1pb2/' *pb2.py
 sed -i 's/^import \([^)]*\)pb2/import airavata_mft_sdk.\1pb2/' *pb2_grpc.py
\ No newline at end of file
diff --git a/python-sdk/src/airavata_mft_sdk/odata/ODataCredential_pb2.py 
b/python-sdk/src/airavata_mft_sdk/odata/ODataCredential_pb2.py
new file mode 100644
index 0000000..9296a58
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/odata/ODataCredential_pb2.py
@@ -0,0 +1,96 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: odata/ODataCredential.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+import airavata_mft_sdk.CredCommon_pb2 as CredCommon__pb2
+
+
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x1bodata/ODataCredential.proto\x12.org.apache.airavata.mft.credential.stubs.odata\x1a\x10\x43redCommon.proto\"C\n\x0bODataSecret\x12\x10\n\x08secretId\x18\x01
 \x01(\t\x12\x10\n\x08userName\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 
\x01(\t\"h\n\x15ODataSecretGetRequest\x12\x10\n\x08secretId\x18\x01 
\x01(\t\x12=\n\nauthzToken\x18\x02 
\x01(\x0b\x32).org.apache.airavata.mft.common.AuthToken\"}\n\x18ODataSecretCreateRequest\x1
 [...]
+
+
+
+_ODATASECRET = DESCRIPTOR.message_types_by_name['ODataSecret']
+_ODATASECRETGETREQUEST = 
DESCRIPTOR.message_types_by_name['ODataSecretGetRequest']
+_ODATASECRETCREATEREQUEST = 
DESCRIPTOR.message_types_by_name['ODataSecretCreateRequest']
+_ODATASECRETUPDATEREQUEST = 
DESCRIPTOR.message_types_by_name['ODataSecretUpdateRequest']
+_ODATASECRETUPDATERESPONSE = 
DESCRIPTOR.message_types_by_name['ODataSecretUpdateResponse']
+_ODATASECRETDELETEREQUEST = 
DESCRIPTOR.message_types_by_name['ODataSecretDeleteRequest']
+_ODATASECRETDELETERESPONSE = 
DESCRIPTOR.message_types_by_name['ODataSecretDeleteResponse']
+ODataSecret = _reflection.GeneratedProtocolMessageType('ODataSecret', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASECRET,
+  '__module__' : 'odata.ODataCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.odata.ODataSecret)
+  })
+_sym_db.RegisterMessage(ODataSecret)
+
+ODataSecretGetRequest = 
_reflection.GeneratedProtocolMessageType('ODataSecretGetRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASECRETGETREQUEST,
+  '__module__' : 'odata.ODataCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.odata.ODataSecretGetRequest)
+  })
+_sym_db.RegisterMessage(ODataSecretGetRequest)
+
+ODataSecretCreateRequest = 
_reflection.GeneratedProtocolMessageType('ODataSecretCreateRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASECRETCREATEREQUEST,
+  '__module__' : 'odata.ODataCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.odata.ODataSecretCreateRequest)
+  })
+_sym_db.RegisterMessage(ODataSecretCreateRequest)
+
+ODataSecretUpdateRequest = 
_reflection.GeneratedProtocolMessageType('ODataSecretUpdateRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASECRETUPDATEREQUEST,
+  '__module__' : 'odata.ODataCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.odata.ODataSecretUpdateRequest)
+  })
+_sym_db.RegisterMessage(ODataSecretUpdateRequest)
+
+ODataSecretUpdateResponse = 
_reflection.GeneratedProtocolMessageType('ODataSecretUpdateResponse', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASECRETUPDATERESPONSE,
+  '__module__' : 'odata.ODataCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.odata.ODataSecretUpdateResponse)
+  })
+_sym_db.RegisterMessage(ODataSecretUpdateResponse)
+
+ODataSecretDeleteRequest = 
_reflection.GeneratedProtocolMessageType('ODataSecretDeleteRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASECRETDELETEREQUEST,
+  '__module__' : 'odata.ODataCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.odata.ODataSecretDeleteRequest)
+  })
+_sym_db.RegisterMessage(ODataSecretDeleteRequest)
+
+ODataSecretDeleteResponse = 
_reflection.GeneratedProtocolMessageType('ODataSecretDeleteResponse', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASECRETDELETERESPONSE,
+  '__module__' : 'odata.ODataCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.odata.ODataSecretDeleteResponse)
+  })
+_sym_db.RegisterMessage(ODataSecretDeleteResponse)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'P\001'
+  _ODATASECRET._serialized_start=97
+  _ODATASECRET._serialized_end=164
+  _ODATASECRETGETREQUEST._serialized_start=166
+  _ODATASECRETGETREQUEST._serialized_end=270
+  _ODATASECRETCREATEREQUEST._serialized_start=272
+  _ODATASECRETCREATEREQUEST._serialized_end=397
+  _ODATASECRETUPDATEREQUEST._serialized_start=400
+  _ODATASECRETUPDATEREQUEST._serialized_end=543
+  _ODATASECRETUPDATERESPONSE._serialized_start=545
+  _ODATASECRETUPDATERESPONSE._serialized_end=590
+  _ODATASECRETDELETEREQUEST._serialized_start=592
+  _ODATASECRETDELETEREQUEST._serialized_end=699
+  _ODATASECRETDELETERESPONSE._serialized_start=701
+  _ODATASECRETDELETERESPONSE._serialized_end=744
+# @@protoc_insertion_point(module_scope)
diff --git a/python-sdk/src/airavata_mft_sdk/odata/ODataCredential_pb2_grpc.py 
b/python-sdk/src/airavata_mft_sdk/odata/ODataCredential_pb2_grpc.py
new file mode 100644
index 0000000..2daafff
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/odata/ODataCredential_pb2_grpc.py
@@ -0,0 +1,4 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
diff --git a/python-sdk/src/airavata_mft_sdk/odata/ODataSecretService_pb2.py 
b/python-sdk/src/airavata_mft_sdk/odata/ODataSecretService_pb2.py
new file mode 100644
index 0000000..dd81747
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/odata/ODataSecretService_pb2.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: odata/ODataSecretService.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from airavata_mft_sdk.odata import ODataCredential_pb2 as 
odata_dot_ODataCredential__pb2
+
+
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x1eodata/ODataSecretService.proto\x12\x30org.apache.airavata.mft.credential.service.odata\x1a\x1bodata/ODataCredential.proto2\x9e\x05\n\x12ODataSecretService\x12\x94\x01\n\x0egetODataSecret\x12\x45.org.apache.airavata.mft.credential.stubs.odata.ODataSecretGetRequest\x1a;.org.apache.airavata.mft.credential.stubs.odata.ODataSecret\x12\x9a\x01\n\x11\x63reateODataSecret\x12H.org.apache.airavata.mft.credential.stubs.odata.ODataSec
 [...]
+
+
+
+_ODATASECRETSERVICE = DESCRIPTOR.services_by_name['ODataSecretService']
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'P\001'
+  _ODATASECRETSERVICE._serialized_start=114
+  _ODATASECRETSERVICE._serialized_end=784
+# @@protoc_insertion_point(module_scope)
diff --git 
a/python-sdk/src/airavata_mft_sdk/odata/ODataSecretService_pb2_grpc.py 
b/python-sdk/src/airavata_mft_sdk/odata/ODataSecretService_pb2_grpc.py
new file mode 100644
index 0000000..ecc71a2
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/odata/ODataSecretService_pb2_grpc.py
@@ -0,0 +1,165 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
+from airavata_mft_sdk.odata import ODataCredential_pb2 as 
odata_dot_ODataCredential__pb2
+
+
+class ODataSecretServiceStub(object):
+    """Missing associated documentation comment in .proto file."""
+
+    def __init__(self, channel):
+        """Constructor.
+
+        Args:
+            channel: A grpc.Channel.
+        """
+        self.getODataSecret = channel.unary_unary(
+                
'/org.apache.airavata.mft.credential.service.odata.ODataSecretService/getODataSecret',
+                
request_serializer=odata_dot_ODataCredential__pb2.ODataSecretGetRequest.SerializeToString,
+                
response_deserializer=odata_dot_ODataCredential__pb2.ODataSecret.FromString,
+                )
+        self.createODataSecret = channel.unary_unary(
+                
'/org.apache.airavata.mft.credential.service.odata.ODataSecretService/createODataSecret',
+                
request_serializer=odata_dot_ODataCredential__pb2.ODataSecretCreateRequest.SerializeToString,
+                
response_deserializer=odata_dot_ODataCredential__pb2.ODataSecret.FromString,
+                )
+        self.updateODataSecret = channel.unary_unary(
+                
'/org.apache.airavata.mft.credential.service.odata.ODataSecretService/updateODataSecret',
+                
request_serializer=odata_dot_ODataCredential__pb2.ODataSecretUpdateRequest.SerializeToString,
+                
response_deserializer=odata_dot_ODataCredential__pb2.ODataSecretUpdateResponse.FromString,
+                )
+        self.deleteODataSecret = channel.unary_unary(
+                
'/org.apache.airavata.mft.credential.service.odata.ODataSecretService/deleteODataSecret',
+                
request_serializer=odata_dot_ODataCredential__pb2.ODataSecretDeleteRequest.SerializeToString,
+                
response_deserializer=odata_dot_ODataCredential__pb2.ODataSecretDeleteResponse.FromString,
+                )
+
+
+class ODataSecretServiceServicer(object):
+    """Missing associated documentation comment in .proto file."""
+
+    def getODataSecret(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def createODataSecret(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def updateODataSecret(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def deleteODataSecret(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+
+def add_ODataSecretServiceServicer_to_server(servicer, server):
+    rpc_method_handlers = {
+            'getODataSecret': grpc.unary_unary_rpc_method_handler(
+                    servicer.getODataSecret,
+                    
request_deserializer=odata_dot_ODataCredential__pb2.ODataSecretGetRequest.FromString,
+                    
response_serializer=odata_dot_ODataCredential__pb2.ODataSecret.SerializeToString,
+            ),
+            'createODataSecret': grpc.unary_unary_rpc_method_handler(
+                    servicer.createODataSecret,
+                    
request_deserializer=odata_dot_ODataCredential__pb2.ODataSecretCreateRequest.FromString,
+                    
response_serializer=odata_dot_ODataCredential__pb2.ODataSecret.SerializeToString,
+            ),
+            'updateODataSecret': grpc.unary_unary_rpc_method_handler(
+                    servicer.updateODataSecret,
+                    
request_deserializer=odata_dot_ODataCredential__pb2.ODataSecretUpdateRequest.FromString,
+                    
response_serializer=odata_dot_ODataCredential__pb2.ODataSecretUpdateResponse.SerializeToString,
+            ),
+            'deleteODataSecret': grpc.unary_unary_rpc_method_handler(
+                    servicer.deleteODataSecret,
+                    
request_deserializer=odata_dot_ODataCredential__pb2.ODataSecretDeleteRequest.FromString,
+                    
response_serializer=odata_dot_ODataCredential__pb2.ODataSecretDeleteResponse.SerializeToString,
+            ),
+    }
+    generic_handler = grpc.method_handlers_generic_handler(
+            
'org.apache.airavata.mft.credential.service.odata.ODataSecretService', 
rpc_method_handlers)
+    server.add_generic_rpc_handlers((generic_handler,))
+
+
+ # This class is part of an EXPERIMENTAL API.
+class ODataSecretService(object):
+    """Missing associated documentation comment in .proto file."""
+
+    @staticmethod
+    def getODataSecret(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.credential.service.odata.ODataSecretService/getODataSecret',
+            
odata_dot_ODataCredential__pb2.ODataSecretGetRequest.SerializeToString,
+            odata_dot_ODataCredential__pb2.ODataSecret.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def createODataSecret(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.credential.service.odata.ODataSecretService/createODataSecret',
+            
odata_dot_ODataCredential__pb2.ODataSecretCreateRequest.SerializeToString,
+            odata_dot_ODataCredential__pb2.ODataSecret.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def updateODataSecret(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.credential.service.odata.ODataSecretService/updateODataSecret',
+            
odata_dot_ODataCredential__pb2.ODataSecretUpdateRequest.SerializeToString,
+            
odata_dot_ODataCredential__pb2.ODataSecretUpdateResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def deleteODataSecret(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.credential.service.odata.ODataSecretService/deleteODataSecret',
+            
odata_dot_ODataCredential__pb2.ODataSecretDeleteRequest.SerializeToString,
+            
odata_dot_ODataCredential__pb2.ODataSecretDeleteResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
diff --git a/python-sdk/src/airavata_mft_sdk/odata/ODataStorageService_pb2.py 
b/python-sdk/src/airavata_mft_sdk/odata/ODataStorageService_pb2.py
new file mode 100644
index 0000000..dc86977
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/odata/ODataStorageService_pb2.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: odata/ODataStorageService.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from airavata_mft_sdk.odata import ODataStorage_pb2 as 
odata_dot_ODataStorage__pb2
+
+
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x1fodata/ODataStorageService.proto\x12.org.apache.airavata.mft.resource.service.odata\x1a\x18odata/ODataStorage.proto2\x8f\x07\n\x13ODataStorageService\x12\xb1\x01\n\x10listODataStorage\x12M.org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorageListRequest\x1aN.org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorageListResponse\x12\xa3\x01\n\x0fgetODataStorage\x12L.org.apache.airavata.mft.resource.stubs.o
 [...]
+
+
+
+_ODATASTORAGESERVICE = DESCRIPTOR.services_by_name['ODataStorageService']
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'P\001'
+  _ODATASTORAGESERVICE._serialized_start=110
+  _ODATASTORAGESERVICE._serialized_end=1021
+# @@protoc_insertion_point(module_scope)
diff --git 
a/python-sdk/src/airavata_mft_sdk/odata/ODataStorageService_pb2_grpc.py 
b/python-sdk/src/airavata_mft_sdk/odata/ODataStorageService_pb2_grpc.py
new file mode 100644
index 0000000..7b5d5c2
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/odata/ODataStorageService_pb2_grpc.py
@@ -0,0 +1,200 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
+from airavata_mft_sdk.odata import ODataStorage_pb2 as 
odata_dot_ODataStorage__pb2
+
+
+class ODataStorageServiceStub(object):
+    """Missing associated documentation comment in .proto file."""
+
+    def __init__(self, channel):
+        """Constructor.
+
+        Args:
+            channel: A grpc.Channel.
+        """
+        self.listODataStorage = channel.unary_unary(
+                
'/org.apache.airavata.mft.resource.service.odata.ODataStorageService/listODataStorage',
+                
request_serializer=odata_dot_ODataStorage__pb2.ODataStorageListRequest.SerializeToString,
+                
response_deserializer=odata_dot_ODataStorage__pb2.ODataStorageListResponse.FromString,
+                )
+        self.getODataStorage = channel.unary_unary(
+                
'/org.apache.airavata.mft.resource.service.odata.ODataStorageService/getODataStorage',
+                
request_serializer=odata_dot_ODataStorage__pb2.ODataStorageGetRequest.SerializeToString,
+                
response_deserializer=odata_dot_ODataStorage__pb2.ODataStorage.FromString,
+                )
+        self.createODataStorage = channel.unary_unary(
+                
'/org.apache.airavata.mft.resource.service.odata.ODataStorageService/createODataStorage',
+                
request_serializer=odata_dot_ODataStorage__pb2.ODataStorageCreateRequest.SerializeToString,
+                
response_deserializer=odata_dot_ODataStorage__pb2.ODataStorage.FromString,
+                )
+        self.updateODataStorage = channel.unary_unary(
+                
'/org.apache.airavata.mft.resource.service.odata.ODataStorageService/updateODataStorage',
+                
request_serializer=odata_dot_ODataStorage__pb2.ODataStorageUpdateRequest.SerializeToString,
+                
response_deserializer=odata_dot_ODataStorage__pb2.ODataStorageUpdateResponse.FromString,
+                )
+        self.deleteODataStorage = channel.unary_unary(
+                
'/org.apache.airavata.mft.resource.service.odata.ODataStorageService/deleteODataStorage',
+                
request_serializer=odata_dot_ODataStorage__pb2.ODataStorageDeleteRequest.SerializeToString,
+                
response_deserializer=odata_dot_ODataStorage__pb2.ODataStorageDeleteResponse.FromString,
+                )
+
+
+class ODataStorageServiceServicer(object):
+    """Missing associated documentation comment in .proto file."""
+
+    def listODataStorage(self, request, context):
+        """Storage
+
+        """
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def getODataStorage(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def createODataStorage(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def updateODataStorage(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def deleteODataStorage(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+
+def add_ODataStorageServiceServicer_to_server(servicer, server):
+    rpc_method_handlers = {
+            'listODataStorage': grpc.unary_unary_rpc_method_handler(
+                    servicer.listODataStorage,
+                    
request_deserializer=odata_dot_ODataStorage__pb2.ODataStorageListRequest.FromString,
+                    
response_serializer=odata_dot_ODataStorage__pb2.ODataStorageListResponse.SerializeToString,
+            ),
+            'getODataStorage': grpc.unary_unary_rpc_method_handler(
+                    servicer.getODataStorage,
+                    
request_deserializer=odata_dot_ODataStorage__pb2.ODataStorageGetRequest.FromString,
+                    
response_serializer=odata_dot_ODataStorage__pb2.ODataStorage.SerializeToString,
+            ),
+            'createODataStorage': grpc.unary_unary_rpc_method_handler(
+                    servicer.createODataStorage,
+                    
request_deserializer=odata_dot_ODataStorage__pb2.ODataStorageCreateRequest.FromString,
+                    
response_serializer=odata_dot_ODataStorage__pb2.ODataStorage.SerializeToString,
+            ),
+            'updateODataStorage': grpc.unary_unary_rpc_method_handler(
+                    servicer.updateODataStorage,
+                    
request_deserializer=odata_dot_ODataStorage__pb2.ODataStorageUpdateRequest.FromString,
+                    
response_serializer=odata_dot_ODataStorage__pb2.ODataStorageUpdateResponse.SerializeToString,
+            ),
+            'deleteODataStorage': grpc.unary_unary_rpc_method_handler(
+                    servicer.deleteODataStorage,
+                    
request_deserializer=odata_dot_ODataStorage__pb2.ODataStorageDeleteRequest.FromString,
+                    
response_serializer=odata_dot_ODataStorage__pb2.ODataStorageDeleteResponse.SerializeToString,
+            ),
+    }
+    generic_handler = grpc.method_handlers_generic_handler(
+            
'org.apache.airavata.mft.resource.service.odata.ODataStorageService', 
rpc_method_handlers)
+    server.add_generic_rpc_handlers((generic_handler,))
+
+
+ # This class is part of an EXPERIMENTAL API.
+class ODataStorageService(object):
+    """Missing associated documentation comment in .proto file."""
+
+    @staticmethod
+    def listODataStorage(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.resource.service.odata.ODataStorageService/listODataStorage',
+            
odata_dot_ODataStorage__pb2.ODataStorageListRequest.SerializeToString,
+            odata_dot_ODataStorage__pb2.ODataStorageListResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def getODataStorage(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.resource.service.odata.ODataStorageService/getODataStorage',
+            
odata_dot_ODataStorage__pb2.ODataStorageGetRequest.SerializeToString,
+            odata_dot_ODataStorage__pb2.ODataStorage.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def createODataStorage(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.resource.service.odata.ODataStorageService/createODataStorage',
+            
odata_dot_ODataStorage__pb2.ODataStorageCreateRequest.SerializeToString,
+            odata_dot_ODataStorage__pb2.ODataStorage.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def updateODataStorage(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.resource.service.odata.ODataStorageService/updateODataStorage',
+            
odata_dot_ODataStorage__pb2.ODataStorageUpdateRequest.SerializeToString,
+            odata_dot_ODataStorage__pb2.ODataStorageUpdateResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def deleteODataStorage(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.resource.service.odata.ODataStorageService/deleteODataStorage',
+            
odata_dot_ODataStorage__pb2.ODataStorageDeleteRequest.SerializeToString,
+            odata_dot_ODataStorage__pb2.ODataStorageDeleteResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
diff --git a/python-sdk/src/airavata_mft_sdk/odata/ODataStorage_pb2.py 
b/python-sdk/src/airavata_mft_sdk/odata/ODataStorage_pb2.py
new file mode 100644
index 0000000..7f2da1c
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/odata/ODataStorage_pb2.py
@@ -0,0 +1,115 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: odata/ODataStorage.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x18odata/ODataStorage.proto\x12\x34org.apache.airavata.mft.resource.stubs.odata.storage\"@\n\x0cODataStorage\x12\x11\n\tstorageId\x18\x01
 \x01(\t\x12\x0f\n\x07\x62\x61seUrl\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 
\x01(\t\"8\n\x17ODataStorageListRequest\x12\x0e\n\x06offset\x18\x01 
\x01(\x05\x12\r\n\x05limit\x18\x02 
\x01(\x05\"p\n\x18ODataStorageListResponse\x12T\n\x08storages\x18\x01 
\x03(\x0b\x32\x42.org.apache.airavata.mft [...]
+
+
+
+_ODATASTORAGE = DESCRIPTOR.message_types_by_name['ODataStorage']
+_ODATASTORAGELISTREQUEST = 
DESCRIPTOR.message_types_by_name['ODataStorageListRequest']
+_ODATASTORAGELISTRESPONSE = 
DESCRIPTOR.message_types_by_name['ODataStorageListResponse']
+_ODATASTORAGEGETREQUEST = 
DESCRIPTOR.message_types_by_name['ODataStorageGetRequest']
+_ODATASTORAGECREATEREQUEST = 
DESCRIPTOR.message_types_by_name['ODataStorageCreateRequest']
+_ODATASTORAGEUPDATEREQUEST = 
DESCRIPTOR.message_types_by_name['ODataStorageUpdateRequest']
+_ODATASTORAGEUPDATERESPONSE = 
DESCRIPTOR.message_types_by_name['ODataStorageUpdateResponse']
+_ODATASTORAGEDELETEREQUEST = 
DESCRIPTOR.message_types_by_name['ODataStorageDeleteRequest']
+_ODATASTORAGEDELETERESPONSE = 
DESCRIPTOR.message_types_by_name['ODataStorageDeleteResponse']
+ODataStorage = _reflection.GeneratedProtocolMessageType('ODataStorage', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASTORAGE,
+  '__module__' : 'odata.ODataStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorage)
+  })
+_sym_db.RegisterMessage(ODataStorage)
+
+ODataStorageListRequest = 
_reflection.GeneratedProtocolMessageType('ODataStorageListRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASTORAGELISTREQUEST,
+  '__module__' : 'odata.ODataStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorageListRequest)
+  })
+_sym_db.RegisterMessage(ODataStorageListRequest)
+
+ODataStorageListResponse = 
_reflection.GeneratedProtocolMessageType('ODataStorageListResponse', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASTORAGELISTRESPONSE,
+  '__module__' : 'odata.ODataStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorageListResponse)
+  })
+_sym_db.RegisterMessage(ODataStorageListResponse)
+
+ODataStorageGetRequest = 
_reflection.GeneratedProtocolMessageType('ODataStorageGetRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASTORAGEGETREQUEST,
+  '__module__' : 'odata.ODataStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorageGetRequest)
+  })
+_sym_db.RegisterMessage(ODataStorageGetRequest)
+
+ODataStorageCreateRequest = 
_reflection.GeneratedProtocolMessageType('ODataStorageCreateRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASTORAGECREATEREQUEST,
+  '__module__' : 'odata.ODataStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorageCreateRequest)
+  })
+_sym_db.RegisterMessage(ODataStorageCreateRequest)
+
+ODataStorageUpdateRequest = 
_reflection.GeneratedProtocolMessageType('ODataStorageUpdateRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASTORAGEUPDATEREQUEST,
+  '__module__' : 'odata.ODataStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorageUpdateRequest)
+  })
+_sym_db.RegisterMessage(ODataStorageUpdateRequest)
+
+ODataStorageUpdateResponse = 
_reflection.GeneratedProtocolMessageType('ODataStorageUpdateResponse', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASTORAGEUPDATERESPONSE,
+  '__module__' : 'odata.ODataStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorageUpdateResponse)
+  })
+_sym_db.RegisterMessage(ODataStorageUpdateResponse)
+
+ODataStorageDeleteRequest = 
_reflection.GeneratedProtocolMessageType('ODataStorageDeleteRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASTORAGEDELETEREQUEST,
+  '__module__' : 'odata.ODataStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorageDeleteRequest)
+  })
+_sym_db.RegisterMessage(ODataStorageDeleteRequest)
+
+ODataStorageDeleteResponse = 
_reflection.GeneratedProtocolMessageType('ODataStorageDeleteResponse', 
(_message.Message,), {
+  'DESCRIPTOR' : _ODATASTORAGEDELETERESPONSE,
+  '__module__' : 'odata.ODataStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.odata.storage.ODataStorageDeleteResponse)
+  })
+_sym_db.RegisterMessage(ODataStorageDeleteResponse)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'P\001'
+  _ODATASTORAGE._serialized_start=82
+  _ODATASTORAGE._serialized_end=146
+  _ODATASTORAGELISTREQUEST._serialized_start=148
+  _ODATASTORAGELISTREQUEST._serialized_end=204
+  _ODATASTORAGELISTRESPONSE._serialized_start=206
+  _ODATASTORAGELISTRESPONSE._serialized_end=318
+  _ODATASTORAGEGETREQUEST._serialized_start=320
+  _ODATASTORAGEGETREQUEST._serialized_end=363
+  _ODATASTORAGECREATEREQUEST._serialized_start=365
+  _ODATASTORAGECREATEREQUEST._serialized_end=442
+  _ODATASTORAGEUPDATEREQUEST._serialized_start=444
+  _ODATASTORAGEUPDATEREQUEST._serialized_end=521
+  _ODATASTORAGEUPDATERESPONSE._serialized_start=523
+  _ODATASTORAGEUPDATERESPONSE._serialized_end=570
+  _ODATASTORAGEDELETEREQUEST._serialized_start=572
+  _ODATASTORAGEDELETEREQUEST._serialized_end=618
+  _ODATASTORAGEDELETERESPONSE._serialized_start=620
+  _ODATASTORAGEDELETERESPONSE._serialized_end=664
+# @@protoc_insertion_point(module_scope)
diff --git a/python-sdk/src/airavata_mft_sdk/odata/ODataStorage_pb2_grpc.py 
b/python-sdk/src/airavata_mft_sdk/odata/ODataStorage_pb2_grpc.py
new file mode 100644
index 0000000..2daafff
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/odata/ODataStorage_pb2_grpc.py
@@ -0,0 +1,4 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
diff --git a/python-sdk/src/airavata_mft_sdk/odata/__init__.py 
b/python-sdk/src/airavata_mft_sdk/odata/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/python-sdk/src/airavata_mft_sdk/resource/ResourceService_pb2.py 
b/python-sdk/src/airavata_mft_sdk/resource/ResourceService_pb2.py
index ab5b1f2..970612b 100644
--- a/python-sdk/src/airavata_mft_sdk/resource/ResourceService_pb2.py
+++ b/python-sdk/src/airavata_mft_sdk/resource/ResourceService_pb2.py
@@ -21,10 +21,11 @@ from airavata_mft_sdk.local import LocalStorage_pb2 as 
local_dot_LocalStorage__p
 from airavata_mft_sdk.s3 import S3Storage_pb2 as s3_dot_S3Storage__pb2
 from airavata_mft_sdk.scp import SCPStorage_pb2 as scp_dot_SCPStorage__pb2
 from airavata_mft_sdk.swift import SwiftStorage_pb2 as 
swift_dot_SwiftStorage__pb2
+from airavata_mft_sdk.odata import ODataStorage_pb2 as 
odata_dot_ODataStorage__pb2
 import airavata_mft_sdk.CredCommon_pb2 as CredCommon__pb2
 
 
-DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x1eresource/ResourceService.proto\x12-org.apache.airavata.mft.resource.stubs.common\x1a\x18\x61zure/AzureStorage.proto\x1a\x14\x62ox/BoxStorage.proto\x1a\x1c\x64ropbox/DropboxStorage.proto\x1a\x14\x66tp/FTPStorage.proto\x1a\x14gcs/GCSStorage.proto\x1a\x18local/LocalStorage.proto\x1a\x12s3/S3Storage.proto\x1a\x14scp/SCPStorage.proto\x1a\x18swift/SwiftStorage.proto\x1a\x10\x43redCommon.proto\"$\n\x0c\x46ileResource\x12\x14\n\x0
 [...]
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x1eresource/ResourceService.proto\x12-org.apache.airavata.mft.resource.stubs.common\x1a\x18\x61zure/AzureStorage.proto\x1a\x14\x62ox/BoxStorage.proto\x1a\x1c\x64ropbox/DropboxStorage.proto\x1a\x14\x66tp/FTPStorage.proto\x1a\x14gcs/GCSStorage.proto\x1a\x18local/LocalStorage.proto\x1a\x12s3/S3Storage.proto\x1a\x14scp/SCPStorage.proto\x1a\x18swift/SwiftStorage.proto\x1a\x18odata/ODataStorage.proto\x1a\x10\x43redCommon.proto\"$\n
 [...]
 
 
 
@@ -106,26 +107,26 @@ if _descriptor._USE_C_DESCRIPTORS == False:
 
   DESCRIPTOR._options = None
   DESCRIPTOR._serialized_options = b'P\001'
-  _FILERESOURCE._serialized_start=315
-  _FILERESOURCE._serialized_end=351
-  _DIRECTORYRESOURCE._serialized_start=353
-  _DIRECTORYRESOURCE._serialized_end=394
-  _GENERICRESOURCE._serialized_start=397
-  _GENERICRESOURCE._serialized_end=1422
-  _GENERICRESOURCEGETREQUEST._serialized_start=1424
-  _GENERICRESOURCEGETREQUEST._serialized_end=1534
-  _GENERICRESOURCECREATEREQUEST._serialized_start=1537
-  _GENERICRESOURCECREATEREQUEST._serialized_end=2040
-  _GENERICRESOURCECREATEREQUEST_STORAGETYPE._serialized_start=1925
-  _GENERICRESOURCECREATEREQUEST_STORAGETYPE._serialized_end=2028
-  _GENERICRESOURCEUPDATEREQUEST._serialized_start=2043
-  _GENERICRESOURCEUPDATEREQUEST._serialized_end=2351
-  _GENERICRESOURCEUPDATERESPONSE._serialized_start=2353
-  _GENERICRESOURCEUPDATERESPONSE._serialized_end=2404
-  _GENERICRESOURCEDELETEREQUEST._serialized_start=2406
-  _GENERICRESOURCEDELETEREQUEST._serialized_end=2519
-  _GENERICRESOURCEDELETERESPONSE._serialized_start=2521
-  _GENERICRESOURCEDELETERESPONSE._serialized_end=2568
-  _GENERICRESOURCESERVICE._serialized_start=2571
-  _GENERICRESOURCESERVICE._serialized_end=3285
+  _FILERESOURCE._serialized_start=341
+  _FILERESOURCE._serialized_end=377
+  _DIRECTORYRESOURCE._serialized_start=379
+  _DIRECTORYRESOURCE._serialized_end=420
+  _GENERICRESOURCE._serialized_start=423
+  _GENERICRESOURCE._serialized_end=1540
+  _GENERICRESOURCEGETREQUEST._serialized_start=1542
+  _GENERICRESOURCEGETREQUEST._serialized_end=1652
+  _GENERICRESOURCECREATEREQUEST._serialized_start=1655
+  _GENERICRESOURCECREATEREQUEST._serialized_end=2169
+  _GENERICRESOURCECREATEREQUEST_STORAGETYPE._serialized_start=2043
+  _GENERICRESOURCECREATEREQUEST_STORAGETYPE._serialized_end=2157
+  _GENERICRESOURCEUPDATEREQUEST._serialized_start=2172
+  _GENERICRESOURCEUPDATEREQUEST._serialized_end=2480
+  _GENERICRESOURCEUPDATERESPONSE._serialized_start=2482
+  _GENERICRESOURCEUPDATERESPONSE._serialized_end=2533
+  _GENERICRESOURCEDELETEREQUEST._serialized_start=2535
+  _GENERICRESOURCEDELETEREQUEST._serialized_end=2648
+  _GENERICRESOURCEDELETERESPONSE._serialized_start=2650
+  _GENERICRESOURCEDELETERESPONSE._serialized_end=2697
+  _GENERICRESOURCESERVICE._serialized_start=2700
+  _GENERICRESOURCESERVICE._serialized_end=3414
 # @@protoc_insertion_point(module_scope)
diff --git 
a/python-sdk/src/airavata_mft_sdk/resourcesecretmap/StorageSecretMap_pb2.py 
b/python-sdk/src/airavata_mft_sdk/resourcesecretmap/StorageSecretMap_pb2.py
index 36a2993..7f0424f 100644
--- a/python-sdk/src/airavata_mft_sdk/resourcesecretmap/StorageSecretMap_pb2.py
+++ b/python-sdk/src/airavata_mft_sdk/resourcesecretmap/StorageSecretMap_pb2.py
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
 import airavata_mft_sdk.CredCommon_pb2 as CredCommon__pb2
 
 
-DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n(resourcesecretmap/StorageSecretMap.proto\x12\x33org.apache.airavata.mft.storage.stubs.storagesecret\x1a\x10\x43redCommon.proto\"\x87\x02\n\rStorageSecret\x12\n\n\x02id\x18\x01
 \x01(\t\x12\x11\n\tstorageId\x18\x02 \x01(\t\x12\x10\n\x08secretId\x18\x03 
\x01(\t\x12\\\n\x04type\x18\x04 
\x01(\x0e\x32N.org.apache.airavata.mft.storage.stubs.storagesecret.StorageSecret.StorageType\"g\n\x0bStorageType\x12\x06\n\x02S3\x10\x00\x12\x07\n
 [...]
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n(resourcesecretmap/StorageSecretMap.proto\x12\x33org.apache.airavata.mft.storage.stubs.storagesecret\x1a\x10\x43redCommon.proto\"\x92\x02\n\rStorageSecret\x12\n\n\x02id\x18\x01
 \x01(\t\x12\x11\n\tstorageId\x18\x02 \x01(\t\x12\x10\n\x08secretId\x18\x03 
\x01(\t\x12\\\n\x04type\x18\x04 
\x01(\x0e\x32N.org.apache.airavata.mft.storage.stubs.storagesecret.StorageSecret.StorageType\"r\n\x0bStorageType\x12\x06\n\x02S3\x10\x00\x12\x07\n
 [...]
 
 
 
@@ -98,25 +98,25 @@ if _descriptor._USE_C_DESCRIPTORS == False:
   DESCRIPTOR._options = None
   DESCRIPTOR._serialized_options = b'P\001'
   _STORAGESECRET._serialized_start=116
-  _STORAGESECRET._serialized_end=379
+  _STORAGESECRET._serialized_end=390
   _STORAGESECRET_STORAGETYPE._serialized_start=276
-  _STORAGESECRET_STORAGETYPE._serialized_end=379
-  _STORAGESECRETCREATEREQUEST._serialized_start=382
-  _STORAGESECRETCREATEREQUEST._serialized_end=604
-  _STORAGESECRETDELETEREQUEST._serialized_start=606
-  _STORAGESECRETDELETEREQUEST._serialized_end=709
-  _STORAGESECRETDELETERESPONSE._serialized_start=711
-  _STORAGESECRETDELETERESPONSE._serialized_end=756
-  _STORAGESECRETUPDATEREQUEST._serialized_start=759
-  _STORAGESECRETUPDATEREQUEST._serialized_end=941
-  _STORAGESECRETUPDATERESPONSE._serialized_start=943
-  _STORAGESECRETUPDATERESPONSE._serialized_end=1063
-  _STORAGESECRETGETREQUEST._serialized_start=1065
-  _STORAGESECRETGETREQUEST._serialized_end=1165
-  _STORAGESECRETSEARCHREQUEST._serialized_start=1168
-  _STORAGESECRETSEARCHREQUEST._serialized_end=1372
-  _STORAGESECRETSEARCHRESPONSE._serialized_start=1374
-  _STORAGESECRETSEARCHRESPONSE._serialized_end=1494
-  _STORAGESECRETSERVICE._serialized_start=1497
-  _STORAGESECRETSERVICE._serialized_end=2420
+  _STORAGESECRET_STORAGETYPE._serialized_end=390
+  _STORAGESECRETCREATEREQUEST._serialized_start=393
+  _STORAGESECRETCREATEREQUEST._serialized_end=615
+  _STORAGESECRETDELETEREQUEST._serialized_start=617
+  _STORAGESECRETDELETEREQUEST._serialized_end=720
+  _STORAGESECRETDELETERESPONSE._serialized_start=722
+  _STORAGESECRETDELETERESPONSE._serialized_end=767
+  _STORAGESECRETUPDATEREQUEST._serialized_start=770
+  _STORAGESECRETUPDATEREQUEST._serialized_end=952
+  _STORAGESECRETUPDATERESPONSE._serialized_start=954
+  _STORAGESECRETUPDATERESPONSE._serialized_end=1074
+  _STORAGESECRETGETREQUEST._serialized_start=1076
+  _STORAGESECRETGETREQUEST._serialized_end=1176
+  _STORAGESECRETSEARCHREQUEST._serialized_start=1179
+  _STORAGESECRETSEARCHREQUEST._serialized_end=1383
+  _STORAGESECRETSEARCHRESPONSE._serialized_start=1385
+  _STORAGESECRETSEARCHRESPONSE._serialized_end=1505
+  _STORAGESECRETSERVICE._serialized_start=1508
+  _STORAGESECRETSERVICE._serialized_end=2431
 # @@protoc_insertion_point(module_scope)
diff --git a/python-sdk/src/airavata_mft_sdk/s3/S3Credential_pb2.py 
b/python-sdk/src/airavata_mft_sdk/s3/S3Credential_pb2.py
index aeb5c3c..c36f6d4 100644
--- a/python-sdk/src/airavata_mft_sdk/s3/S3Credential_pb2.py
+++ b/python-sdk/src/airavata_mft_sdk/s3/S3Credential_pb2.py
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
 import airavata_mft_sdk.CredCommon_pb2 as CredCommon__pb2
 
 
-DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x15s3/S3Credential.proto\x12+org.apache.airavata.mft.credential.stubs.s3\x1a\x10\x43redCommon.proto\"B\n\x08S3Secret\x12\x10\n\x08secretId\x18\x01
 \x01(\t\x12\x11\n\taccessKey\x18\x02 \x01(\t\x12\x11\n\tsecretKey\x18\x03 
\x01(\t\"e\n\x12S3SecretGetRequest\x12\x10\n\x08secretId\x18\x01 
\x01(\t\x12=\n\nauthzToken\x18\x02 
\x01(\x0b\x32).org.apache.airavata.mft.common.AuthToken\"|\n\x15S3SecretCreateRequest\x12\x11\n\taccessKey\x
 [...]
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x15s3/S3Credential.proto\x12+org.apache.airavata.mft.credential.stubs.s3\x1a\x10\x43redCommon.proto\"X\n\x08S3Secret\x12\x10\n\x08secretId\x18\x01
 \x01(\t\x12\x11\n\taccessKey\x18\x02 \x01(\t\x12\x11\n\tsecretKey\x18\x03 
\x01(\t\x12\x14\n\x0csessionToken\x18\x04 
\x01(\t\"e\n\x12S3SecretGetRequest\x12\x10\n\x08secretId\x18\x01 
\x01(\t\x12=\n\nauthzToken\x18\x02 
\x01(\x0b\x32).org.apache.airavata.mft.common.AuthToken\"\x92\x01\ [...]
 
 
 
@@ -80,17 +80,17 @@ if _descriptor._USE_C_DESCRIPTORS == False:
   DESCRIPTOR._options = None
   DESCRIPTOR._serialized_options = b'P\001'
   _S3SECRET._serialized_start=88
-  _S3SECRET._serialized_end=154
-  _S3SECRETGETREQUEST._serialized_start=156
-  _S3SECRETGETREQUEST._serialized_end=257
-  _S3SECRETCREATEREQUEST._serialized_start=259
-  _S3SECRETCREATEREQUEST._serialized_end=383
-  _S3SECRETUPDATEREQUEST._serialized_start=386
-  _S3SECRETUPDATEREQUEST._serialized_end=528
-  _S3SECRETUPDATERESPONSE._serialized_start=530
-  _S3SECRETUPDATERESPONSE._serialized_end=572
-  _S3SECRETDELETEREQUEST._serialized_start=574
-  _S3SECRETDELETEREQUEST._serialized_end=678
-  _S3SECRETDELETERESPONSE._serialized_start=680
-  _S3SECRETDELETERESPONSE._serialized_end=720
+  _S3SECRET._serialized_end=176
+  _S3SECRETGETREQUEST._serialized_start=178
+  _S3SECRETGETREQUEST._serialized_end=279
+  _S3SECRETCREATEREQUEST._serialized_start=282
+  _S3SECRETCREATEREQUEST._serialized_end=428
+  _S3SECRETUPDATEREQUEST._serialized_start=431
+  _S3SECRETUPDATEREQUEST._serialized_end=595
+  _S3SECRETUPDATERESPONSE._serialized_start=597
+  _S3SECRETUPDATERESPONSE._serialized_end=639
+  _S3SECRETDELETEREQUEST._serialized_start=641
+  _S3SECRETDELETEREQUEST._serialized_end=745
+  _S3SECRETDELETERESPONSE._serialized_start=747
+  _S3SECRETDELETERESPONSE._serialized_end=787
 # @@protoc_insertion_point(module_scope)
diff --git a/python-sdk/src/airavata_mft_sdk/swift/SwiftCredential_pb2.py 
b/python-sdk/src/airavata_mft_sdk/swift/SwiftCredential_pb2.py
new file mode 100644
index 0000000..e7580a0
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/swift/SwiftCredential_pb2.py
@@ -0,0 +1,116 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: swift/SwiftCredential.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+import airavata_mft_sdk.CredCommon_pb2 as CredCommon__pb2
+
+
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x1bswift/SwiftCredential.proto\x12.org.apache.airavata.mft.credential.stubs.swift\x1a\x10\x43redCommon.proto\"^\n\x13SwiftPasswordSecret\x12\x10\n\x08userName\x18\x01
 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\x12\x11\n\tprojectId\x18\x03 
\x01(\t\x12\x10\n\x08\x64omainId\x18\x04 
\x01(\t\"K\n\x19SwiftAuthCredentialSecret\x12\x14\n\x0c\x63redentialId\x18\x01 
\x01(\t\x12\x18\n\x10\x63redentialSecret\x18\x02 \x01(\t\"\xf3\x01\ [...]
+
+
+
+_SWIFTPASSWORDSECRET = DESCRIPTOR.message_types_by_name['SwiftPasswordSecret']
+_SWIFTAUTHCREDENTIALSECRET = 
DESCRIPTOR.message_types_by_name['SwiftAuthCredentialSecret']
+_SWIFTSECRET = DESCRIPTOR.message_types_by_name['SwiftSecret']
+_SWIFTSECRETGETREQUEST = 
DESCRIPTOR.message_types_by_name['SwiftSecretGetRequest']
+_SWIFTSECRETCREATEREQUEST = 
DESCRIPTOR.message_types_by_name['SwiftSecretCreateRequest']
+_SWIFTSECRETUPDATEREQUEST = 
DESCRIPTOR.message_types_by_name['SwiftSecretUpdateRequest']
+_SWIFTSECRETUPDATERESPONSE = 
DESCRIPTOR.message_types_by_name['SwiftSecretUpdateResponse']
+_SWIFTSECRETDELETEREQUEST = 
DESCRIPTOR.message_types_by_name['SwiftSecretDeleteRequest']
+_SWIFTSECRETDELETERESPONSE = 
DESCRIPTOR.message_types_by_name['SwiftSecretDeleteResponse']
+SwiftPasswordSecret = 
_reflection.GeneratedProtocolMessageType('SwiftPasswordSecret', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTPASSWORDSECRET,
+  '__module__' : 'swift.SwiftCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.swift.SwiftPasswordSecret)
+  })
+_sym_db.RegisterMessage(SwiftPasswordSecret)
+
+SwiftAuthCredentialSecret = 
_reflection.GeneratedProtocolMessageType('SwiftAuthCredentialSecret', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTAUTHCREDENTIALSECRET,
+  '__module__' : 'swift.SwiftCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.swift.SwiftAuthCredentialSecret)
+  })
+_sym_db.RegisterMessage(SwiftAuthCredentialSecret)
+
+SwiftSecret = _reflection.GeneratedProtocolMessageType('SwiftSecret', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSECRET,
+  '__module__' : 'swift.SwiftCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.swift.SwiftSecret)
+  })
+_sym_db.RegisterMessage(SwiftSecret)
+
+SwiftSecretGetRequest = 
_reflection.GeneratedProtocolMessageType('SwiftSecretGetRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSECRETGETREQUEST,
+  '__module__' : 'swift.SwiftCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.swift.SwiftSecretGetRequest)
+  })
+_sym_db.RegisterMessage(SwiftSecretGetRequest)
+
+SwiftSecretCreateRequest = 
_reflection.GeneratedProtocolMessageType('SwiftSecretCreateRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSECRETCREATEREQUEST,
+  '__module__' : 'swift.SwiftCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.swift.SwiftSecretCreateRequest)
+  })
+_sym_db.RegisterMessage(SwiftSecretCreateRequest)
+
+SwiftSecretUpdateRequest = 
_reflection.GeneratedProtocolMessageType('SwiftSecretUpdateRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSECRETUPDATEREQUEST,
+  '__module__' : 'swift.SwiftCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.swift.SwiftSecretUpdateRequest)
+  })
+_sym_db.RegisterMessage(SwiftSecretUpdateRequest)
+
+SwiftSecretUpdateResponse = 
_reflection.GeneratedProtocolMessageType('SwiftSecretUpdateResponse', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSECRETUPDATERESPONSE,
+  '__module__' : 'swift.SwiftCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.swift.SwiftSecretUpdateResponse)
+  })
+_sym_db.RegisterMessage(SwiftSecretUpdateResponse)
+
+SwiftSecretDeleteRequest = 
_reflection.GeneratedProtocolMessageType('SwiftSecretDeleteRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSECRETDELETEREQUEST,
+  '__module__' : 'swift.SwiftCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.swift.SwiftSecretDeleteRequest)
+  })
+_sym_db.RegisterMessage(SwiftSecretDeleteRequest)
+
+SwiftSecretDeleteResponse = 
_reflection.GeneratedProtocolMessageType('SwiftSecretDeleteResponse', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSECRETDELETERESPONSE,
+  '__module__' : 'swift.SwiftCredential_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.credential.stubs.swift.SwiftSecretDeleteResponse)
+  })
+_sym_db.RegisterMessage(SwiftSecretDeleteResponse)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'P\001'
+  _SWIFTPASSWORDSECRET._serialized_start=97
+  _SWIFTPASSWORDSECRET._serialized_end=191
+  _SWIFTAUTHCREDENTIALSECRET._serialized_start=193
+  _SWIFTAUTHCREDENTIALSECRET._serialized_end=268
+  _SWIFTSECRET._serialized_start=271
+  _SWIFTSECRET._serialized_end=514
+  _SWIFTSECRETGETREQUEST._serialized_start=516
+  _SWIFTSECRETGETREQUEST._serialized_end=620
+  _SWIFTSECRETCREATEREQUEST._serialized_start=623
+  _SWIFTSECRETCREATEREQUEST._serialized_end=924
+  _SWIFTSECRETUPDATEREQUEST._serialized_start=927
+  _SWIFTSECRETUPDATEREQUEST._serialized_end=1246
+  _SWIFTSECRETUPDATERESPONSE._serialized_start=1248
+  _SWIFTSECRETUPDATERESPONSE._serialized_end=1293
+  _SWIFTSECRETDELETEREQUEST._serialized_start=1295
+  _SWIFTSECRETDELETEREQUEST._serialized_end=1402
+  _SWIFTSECRETDELETERESPONSE._serialized_start=1404
+  _SWIFTSECRETDELETERESPONSE._serialized_end=1447
+# @@protoc_insertion_point(module_scope)
diff --git a/python-sdk/src/airavata_mft_sdk/swift/SwiftCredential_pb2_grpc.py 
b/python-sdk/src/airavata_mft_sdk/swift/SwiftCredential_pb2_grpc.py
new file mode 100644
index 0000000..2daafff
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/swift/SwiftCredential_pb2_grpc.py
@@ -0,0 +1,4 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
diff --git a/python-sdk/src/airavata_mft_sdk/swift/SwiftSecretService_pb2.py 
b/python-sdk/src/airavata_mft_sdk/swift/SwiftSecretService_pb2.py
new file mode 100644
index 0000000..3c922fd
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/swift/SwiftSecretService_pb2.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: swift/SwiftSecretService.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from airavata_mft_sdk.swift import SwiftCredential_pb2 as 
swift_dot_SwiftCredential__pb2
+
+
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x1eswift/SwiftSecretService.proto\x12\x30org.apache.airavata.mft.credential.service.swift\x1a\x1bswift/SwiftCredential.proto2\x9e\x05\n\x12SwiftSecretService\x12\x94\x01\n\x0egetSwiftSecret\x12\x45.org.apache.airavata.mft.credential.stubs.swift.SwiftSecretGetRequest\x1a;.org.apache.airavata.mft.credential.stubs.swift.SwiftSecret\x12\x9a\x01\n\x11\x63reateSwiftSecret\x12H.org.apache.airavata.mft.credential.stubs.swift.SwiftSec
 [...]
+
+
+
+_SWIFTSECRETSERVICE = DESCRIPTOR.services_by_name['SwiftSecretService']
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'P\001'
+  _SWIFTSECRETSERVICE._serialized_start=114
+  _SWIFTSECRETSERVICE._serialized_end=784
+# @@protoc_insertion_point(module_scope)
diff --git 
a/python-sdk/src/airavata_mft_sdk/swift/SwiftSecretService_pb2_grpc.py 
b/python-sdk/src/airavata_mft_sdk/swift/SwiftSecretService_pb2_grpc.py
new file mode 100644
index 0000000..5fdafdf
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/swift/SwiftSecretService_pb2_grpc.py
@@ -0,0 +1,165 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
+from airavata_mft_sdk.swift import SwiftCredential_pb2 as 
swift_dot_SwiftCredential__pb2
+
+
+class SwiftSecretServiceStub(object):
+    """Missing associated documentation comment in .proto file."""
+
+    def __init__(self, channel):
+        """Constructor.
+
+        Args:
+            channel: A grpc.Channel.
+        """
+        self.getSwiftSecret = channel.unary_unary(
+                
'/org.apache.airavata.mft.credential.service.swift.SwiftSecretService/getSwiftSecret',
+                
request_serializer=swift_dot_SwiftCredential__pb2.SwiftSecretGetRequest.SerializeToString,
+                
response_deserializer=swift_dot_SwiftCredential__pb2.SwiftSecret.FromString,
+                )
+        self.createSwiftSecret = channel.unary_unary(
+                
'/org.apache.airavata.mft.credential.service.swift.SwiftSecretService/createSwiftSecret',
+                
request_serializer=swift_dot_SwiftCredential__pb2.SwiftSecretCreateRequest.SerializeToString,
+                
response_deserializer=swift_dot_SwiftCredential__pb2.SwiftSecret.FromString,
+                )
+        self.updateSwiftSecret = channel.unary_unary(
+                
'/org.apache.airavata.mft.credential.service.swift.SwiftSecretService/updateSwiftSecret',
+                
request_serializer=swift_dot_SwiftCredential__pb2.SwiftSecretUpdateRequest.SerializeToString,
+                
response_deserializer=swift_dot_SwiftCredential__pb2.SwiftSecretUpdateResponse.FromString,
+                )
+        self.deleteSwiftSecret = channel.unary_unary(
+                
'/org.apache.airavata.mft.credential.service.swift.SwiftSecretService/deleteSwiftSecret',
+                
request_serializer=swift_dot_SwiftCredential__pb2.SwiftSecretDeleteRequest.SerializeToString,
+                
response_deserializer=swift_dot_SwiftCredential__pb2.SwiftSecretDeleteResponse.FromString,
+                )
+
+
+class SwiftSecretServiceServicer(object):
+    """Missing associated documentation comment in .proto file."""
+
+    def getSwiftSecret(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def createSwiftSecret(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def updateSwiftSecret(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def deleteSwiftSecret(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+
+def add_SwiftSecretServiceServicer_to_server(servicer, server):
+    rpc_method_handlers = {
+            'getSwiftSecret': grpc.unary_unary_rpc_method_handler(
+                    servicer.getSwiftSecret,
+                    
request_deserializer=swift_dot_SwiftCredential__pb2.SwiftSecretGetRequest.FromString,
+                    
response_serializer=swift_dot_SwiftCredential__pb2.SwiftSecret.SerializeToString,
+            ),
+            'createSwiftSecret': grpc.unary_unary_rpc_method_handler(
+                    servicer.createSwiftSecret,
+                    
request_deserializer=swift_dot_SwiftCredential__pb2.SwiftSecretCreateRequest.FromString,
+                    
response_serializer=swift_dot_SwiftCredential__pb2.SwiftSecret.SerializeToString,
+            ),
+            'updateSwiftSecret': grpc.unary_unary_rpc_method_handler(
+                    servicer.updateSwiftSecret,
+                    
request_deserializer=swift_dot_SwiftCredential__pb2.SwiftSecretUpdateRequest.FromString,
+                    
response_serializer=swift_dot_SwiftCredential__pb2.SwiftSecretUpdateResponse.SerializeToString,
+            ),
+            'deleteSwiftSecret': grpc.unary_unary_rpc_method_handler(
+                    servicer.deleteSwiftSecret,
+                    
request_deserializer=swift_dot_SwiftCredential__pb2.SwiftSecretDeleteRequest.FromString,
+                    
response_serializer=swift_dot_SwiftCredential__pb2.SwiftSecretDeleteResponse.SerializeToString,
+            ),
+    }
+    generic_handler = grpc.method_handlers_generic_handler(
+            
'org.apache.airavata.mft.credential.service.swift.SwiftSecretService', 
rpc_method_handlers)
+    server.add_generic_rpc_handlers((generic_handler,))
+
+
+ # This class is part of an EXPERIMENTAL API.
+class SwiftSecretService(object):
+    """Missing associated documentation comment in .proto file."""
+
+    @staticmethod
+    def getSwiftSecret(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.credential.service.swift.SwiftSecretService/getSwiftSecret',
+            
swift_dot_SwiftCredential__pb2.SwiftSecretGetRequest.SerializeToString,
+            swift_dot_SwiftCredential__pb2.SwiftSecret.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def createSwiftSecret(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.credential.service.swift.SwiftSecretService/createSwiftSecret',
+            
swift_dot_SwiftCredential__pb2.SwiftSecretCreateRequest.SerializeToString,
+            swift_dot_SwiftCredential__pb2.SwiftSecret.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def updateSwiftSecret(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.credential.service.swift.SwiftSecretService/updateSwiftSecret',
+            
swift_dot_SwiftCredential__pb2.SwiftSecretUpdateRequest.SerializeToString,
+            
swift_dot_SwiftCredential__pb2.SwiftSecretUpdateResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def deleteSwiftSecret(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.credential.service.swift.SwiftSecretService/deleteSwiftSecret',
+            
swift_dot_SwiftCredential__pb2.SwiftSecretDeleteRequest.SerializeToString,
+            
swift_dot_SwiftCredential__pb2.SwiftSecretDeleteResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
diff --git a/python-sdk/src/airavata_mft_sdk/swift/SwiftStorageService_pb2.py 
b/python-sdk/src/airavata_mft_sdk/swift/SwiftStorageService_pb2.py
new file mode 100644
index 0000000..8279043
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/swift/SwiftStorageService_pb2.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: swift/SwiftStorageService.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from airavata_mft_sdk.swift import SwiftStorage_pb2 as 
swift_dot_SwiftStorage__pb2
+
+
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x1fswift/SwiftStorageService.proto\x12.org.apache.airavata.mft.resource.service.swift\x1a\x18swift/SwiftStorage.proto2\x8f\x07\n\x13SwiftStorageService\x12\xb1\x01\n\x10listSwiftStorage\x12M.org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorageListRequest\x1aN.org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorageListResponse\x12\xa3\x01\n\x0fgetSwiftStorage\x12L.org.apache.airavata.mft.resource.stubs.s
 [...]
+
+
+
+_SWIFTSTORAGESERVICE = DESCRIPTOR.services_by_name['SwiftStorageService']
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'P\001'
+  _SWIFTSTORAGESERVICE._serialized_start=110
+  _SWIFTSTORAGESERVICE._serialized_end=1021
+# @@protoc_insertion_point(module_scope)
diff --git 
a/python-sdk/src/airavata_mft_sdk/swift/SwiftStorageService_pb2_grpc.py 
b/python-sdk/src/airavata_mft_sdk/swift/SwiftStorageService_pb2_grpc.py
new file mode 100644
index 0000000..4d5293b
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/swift/SwiftStorageService_pb2_grpc.py
@@ -0,0 +1,200 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
+from airavata_mft_sdk.swift import SwiftStorage_pb2 as 
swift_dot_SwiftStorage__pb2
+
+
+class SwiftStorageServiceStub(object):
+    """Missing associated documentation comment in .proto file."""
+
+    def __init__(self, channel):
+        """Constructor.
+
+        Args:
+            channel: A grpc.Channel.
+        """
+        self.listSwiftStorage = channel.unary_unary(
+                
'/org.apache.airavata.mft.resource.service.swift.SwiftStorageService/listSwiftStorage',
+                
request_serializer=swift_dot_SwiftStorage__pb2.SwiftStorageListRequest.SerializeToString,
+                
response_deserializer=swift_dot_SwiftStorage__pb2.SwiftStorageListResponse.FromString,
+                )
+        self.getSwiftStorage = channel.unary_unary(
+                
'/org.apache.airavata.mft.resource.service.swift.SwiftStorageService/getSwiftStorage',
+                
request_serializer=swift_dot_SwiftStorage__pb2.SwiftStorageGetRequest.SerializeToString,
+                
response_deserializer=swift_dot_SwiftStorage__pb2.SwiftStorage.FromString,
+                )
+        self.createSwiftStorage = channel.unary_unary(
+                
'/org.apache.airavata.mft.resource.service.swift.SwiftStorageService/createSwiftStorage',
+                
request_serializer=swift_dot_SwiftStorage__pb2.SwiftStorageCreateRequest.SerializeToString,
+                
response_deserializer=swift_dot_SwiftStorage__pb2.SwiftStorage.FromString,
+                )
+        self.updateSwiftStorage = channel.unary_unary(
+                
'/org.apache.airavata.mft.resource.service.swift.SwiftStorageService/updateSwiftStorage',
+                
request_serializer=swift_dot_SwiftStorage__pb2.SwiftStorageUpdateRequest.SerializeToString,
+                
response_deserializer=swift_dot_SwiftStorage__pb2.SwiftStorageUpdateResponse.FromString,
+                )
+        self.deleteSwiftStorage = channel.unary_unary(
+                
'/org.apache.airavata.mft.resource.service.swift.SwiftStorageService/deleteSwiftStorage',
+                
request_serializer=swift_dot_SwiftStorage__pb2.SwiftStorageDeleteRequest.SerializeToString,
+                
response_deserializer=swift_dot_SwiftStorage__pb2.SwiftStorageDeleteResponse.FromString,
+                )
+
+
+class SwiftStorageServiceServicer(object):
+    """Missing associated documentation comment in .proto file."""
+
+    def listSwiftStorage(self, request, context):
+        """Storage
+
+        """
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def getSwiftStorage(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def createSwiftStorage(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def updateSwiftStorage(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+    def deleteSwiftStorage(self, request, context):
+        """Missing associated documentation comment in .proto file."""
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+
+def add_SwiftStorageServiceServicer_to_server(servicer, server):
+    rpc_method_handlers = {
+            'listSwiftStorage': grpc.unary_unary_rpc_method_handler(
+                    servicer.listSwiftStorage,
+                    
request_deserializer=swift_dot_SwiftStorage__pb2.SwiftStorageListRequest.FromString,
+                    
response_serializer=swift_dot_SwiftStorage__pb2.SwiftStorageListResponse.SerializeToString,
+            ),
+            'getSwiftStorage': grpc.unary_unary_rpc_method_handler(
+                    servicer.getSwiftStorage,
+                    
request_deserializer=swift_dot_SwiftStorage__pb2.SwiftStorageGetRequest.FromString,
+                    
response_serializer=swift_dot_SwiftStorage__pb2.SwiftStorage.SerializeToString,
+            ),
+            'createSwiftStorage': grpc.unary_unary_rpc_method_handler(
+                    servicer.createSwiftStorage,
+                    
request_deserializer=swift_dot_SwiftStorage__pb2.SwiftStorageCreateRequest.FromString,
+                    
response_serializer=swift_dot_SwiftStorage__pb2.SwiftStorage.SerializeToString,
+            ),
+            'updateSwiftStorage': grpc.unary_unary_rpc_method_handler(
+                    servicer.updateSwiftStorage,
+                    
request_deserializer=swift_dot_SwiftStorage__pb2.SwiftStorageUpdateRequest.FromString,
+                    
response_serializer=swift_dot_SwiftStorage__pb2.SwiftStorageUpdateResponse.SerializeToString,
+            ),
+            'deleteSwiftStorage': grpc.unary_unary_rpc_method_handler(
+                    servicer.deleteSwiftStorage,
+                    
request_deserializer=swift_dot_SwiftStorage__pb2.SwiftStorageDeleteRequest.FromString,
+                    
response_serializer=swift_dot_SwiftStorage__pb2.SwiftStorageDeleteResponse.SerializeToString,
+            ),
+    }
+    generic_handler = grpc.method_handlers_generic_handler(
+            
'org.apache.airavata.mft.resource.service.swift.SwiftStorageService', 
rpc_method_handlers)
+    server.add_generic_rpc_handlers((generic_handler,))
+
+
+ # This class is part of an EXPERIMENTAL API.
+class SwiftStorageService(object):
+    """Missing associated documentation comment in .proto file."""
+
+    @staticmethod
+    def listSwiftStorage(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.resource.service.swift.SwiftStorageService/listSwiftStorage',
+            
swift_dot_SwiftStorage__pb2.SwiftStorageListRequest.SerializeToString,
+            swift_dot_SwiftStorage__pb2.SwiftStorageListResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def getSwiftStorage(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.resource.service.swift.SwiftStorageService/getSwiftStorage',
+            
swift_dot_SwiftStorage__pb2.SwiftStorageGetRequest.SerializeToString,
+            swift_dot_SwiftStorage__pb2.SwiftStorage.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def createSwiftStorage(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.resource.service.swift.SwiftStorageService/createSwiftStorage',
+            
swift_dot_SwiftStorage__pb2.SwiftStorageCreateRequest.SerializeToString,
+            swift_dot_SwiftStorage__pb2.SwiftStorage.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def updateSwiftStorage(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.resource.service.swift.SwiftStorageService/updateSwiftStorage',
+            
swift_dot_SwiftStorage__pb2.SwiftStorageUpdateRequest.SerializeToString,
+            swift_dot_SwiftStorage__pb2.SwiftStorageUpdateResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
+
+    @staticmethod
+    def deleteSwiftStorage(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, 
'/org.apache.airavata.mft.resource.service.swift.SwiftStorageService/deleteSwiftStorage',
+            
swift_dot_SwiftStorage__pb2.SwiftStorageDeleteRequest.SerializeToString,
+            swift_dot_SwiftStorage__pb2.SwiftStorageDeleteResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, 
metadata)
diff --git a/python-sdk/src/airavata_mft_sdk/swift/SwiftStorage_pb2.py 
b/python-sdk/src/airavata_mft_sdk/swift/SwiftStorage_pb2.py
new file mode 100644
index 0000000..e6af4c6
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/swift/SwiftStorage_pb2.py
@@ -0,0 +1,115 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: swift/SwiftStorage.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = 
_descriptor_pool.Default().AddSerializedFile(b'\n\x18swift/SwiftStorage.proto\x12\x34org.apache.airavata.mft.resource.stubs.swift.storage\"}\n\x0cSwiftStorage\x12\x11\n\tstorageId\x18\x01
 \x01(\t\x12\x11\n\tcontainer\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 
\x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06region\x18\x05 
\x01(\t\x12\x17\n\x0fkeystoneVersion\x18\x06 
\x01(\x05\"8\n\x17SwiftStorageListRequest\x12\x0e\n\x06offset\x18\x01 
\x01(\x05\x12\r\n\x05limit\x [...]
+
+
+
+_SWIFTSTORAGE = DESCRIPTOR.message_types_by_name['SwiftStorage']
+_SWIFTSTORAGELISTREQUEST = 
DESCRIPTOR.message_types_by_name['SwiftStorageListRequest']
+_SWIFTSTORAGELISTRESPONSE = 
DESCRIPTOR.message_types_by_name['SwiftStorageListResponse']
+_SWIFTSTORAGEGETREQUEST = 
DESCRIPTOR.message_types_by_name['SwiftStorageGetRequest']
+_SWIFTSTORAGECREATEREQUEST = 
DESCRIPTOR.message_types_by_name['SwiftStorageCreateRequest']
+_SWIFTSTORAGEUPDATEREQUEST = 
DESCRIPTOR.message_types_by_name['SwiftStorageUpdateRequest']
+_SWIFTSTORAGEUPDATERESPONSE = 
DESCRIPTOR.message_types_by_name['SwiftStorageUpdateResponse']
+_SWIFTSTORAGEDELETEREQUEST = 
DESCRIPTOR.message_types_by_name['SwiftStorageDeleteRequest']
+_SWIFTSTORAGEDELETERESPONSE = 
DESCRIPTOR.message_types_by_name['SwiftStorageDeleteResponse']
+SwiftStorage = _reflection.GeneratedProtocolMessageType('SwiftStorage', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSTORAGE,
+  '__module__' : 'swift.SwiftStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorage)
+  })
+_sym_db.RegisterMessage(SwiftStorage)
+
+SwiftStorageListRequest = 
_reflection.GeneratedProtocolMessageType('SwiftStorageListRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSTORAGELISTREQUEST,
+  '__module__' : 'swift.SwiftStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorageListRequest)
+  })
+_sym_db.RegisterMessage(SwiftStorageListRequest)
+
+SwiftStorageListResponse = 
_reflection.GeneratedProtocolMessageType('SwiftStorageListResponse', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSTORAGELISTRESPONSE,
+  '__module__' : 'swift.SwiftStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorageListResponse)
+  })
+_sym_db.RegisterMessage(SwiftStorageListResponse)
+
+SwiftStorageGetRequest = 
_reflection.GeneratedProtocolMessageType('SwiftStorageGetRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSTORAGEGETREQUEST,
+  '__module__' : 'swift.SwiftStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorageGetRequest)
+  })
+_sym_db.RegisterMessage(SwiftStorageGetRequest)
+
+SwiftStorageCreateRequest = 
_reflection.GeneratedProtocolMessageType('SwiftStorageCreateRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSTORAGECREATEREQUEST,
+  '__module__' : 'swift.SwiftStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorageCreateRequest)
+  })
+_sym_db.RegisterMessage(SwiftStorageCreateRequest)
+
+SwiftStorageUpdateRequest = 
_reflection.GeneratedProtocolMessageType('SwiftStorageUpdateRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSTORAGEUPDATEREQUEST,
+  '__module__' : 'swift.SwiftStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorageUpdateRequest)
+  })
+_sym_db.RegisterMessage(SwiftStorageUpdateRequest)
+
+SwiftStorageUpdateResponse = 
_reflection.GeneratedProtocolMessageType('SwiftStorageUpdateResponse', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSTORAGEUPDATERESPONSE,
+  '__module__' : 'swift.SwiftStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorageUpdateResponse)
+  })
+_sym_db.RegisterMessage(SwiftStorageUpdateResponse)
+
+SwiftStorageDeleteRequest = 
_reflection.GeneratedProtocolMessageType('SwiftStorageDeleteRequest', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSTORAGEDELETEREQUEST,
+  '__module__' : 'swift.SwiftStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorageDeleteRequest)
+  })
+_sym_db.RegisterMessage(SwiftStorageDeleteRequest)
+
+SwiftStorageDeleteResponse = 
_reflection.GeneratedProtocolMessageType('SwiftStorageDeleteResponse', 
(_message.Message,), {
+  'DESCRIPTOR' : _SWIFTSTORAGEDELETERESPONSE,
+  '__module__' : 'swift.SwiftStorage_pb2'
+  # 
@@protoc_insertion_point(class_scope:org.apache.airavata.mft.resource.stubs.swift.storage.SwiftStorageDeleteResponse)
+  })
+_sym_db.RegisterMessage(SwiftStorageDeleteResponse)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'P\001'
+  _SWIFTSTORAGE._serialized_start=82
+  _SWIFTSTORAGE._serialized_end=207
+  _SWIFTSTORAGELISTREQUEST._serialized_start=209
+  _SWIFTSTORAGELISTREQUEST._serialized_end=265
+  _SWIFTSTORAGELISTRESPONSE._serialized_start=267
+  _SWIFTSTORAGELISTRESPONSE._serialized_end=379
+  _SWIFTSTORAGEGETREQUEST._serialized_start=381
+  _SWIFTSTORAGEGETREQUEST._serialized_end=424
+  _SWIFTSTORAGECREATEREQUEST._serialized_start=427
+  _SWIFTSTORAGECREATEREQUEST._serialized_end=565
+  _SWIFTSTORAGEUPDATEREQUEST._serialized_start=568
+  _SWIFTSTORAGEUPDATEREQUEST._serialized_end=706
+  _SWIFTSTORAGEUPDATERESPONSE._serialized_start=708
+  _SWIFTSTORAGEUPDATERESPONSE._serialized_end=755
+  _SWIFTSTORAGEDELETEREQUEST._serialized_start=757
+  _SWIFTSTORAGEDELETEREQUEST._serialized_end=803
+  _SWIFTSTORAGEDELETERESPONSE._serialized_start=805
+  _SWIFTSTORAGEDELETERESPONSE._serialized_end=849
+# @@protoc_insertion_point(module_scope)
diff --git a/python-sdk/src/airavata_mft_sdk/swift/SwiftStorage_pb2_grpc.py 
b/python-sdk/src/airavata_mft_sdk/swift/SwiftStorage_pb2_grpc.py
new file mode 100644
index 0000000..2daafff
--- /dev/null
+++ b/python-sdk/src/airavata_mft_sdk/swift/SwiftStorage_pb2_grpc.py
@@ -0,0 +1,4 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
diff --git a/python-sdk/src/airavata_mft_sdk/swift/__init__.py 
b/python-sdk/src/airavata_mft_sdk/swift/__init__.py
new file mode 100644
index 0000000..e69de29


Reply via email to