Add GRPC Blueprint Processing API

Change-Id: Id2c31e8db2b5ede6a992d923f695ce1e0e14b450
Issue-ID: CCSDK-799
Signed-off-by: Muthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
diff --git a/components/model-catalog/api-definition/proto/BluePrintManagement.proto b/components/model-catalog/api-definition/proto/BluePrintManagement.proto
new file mode 100644
index 0000000..55f9466
--- /dev/null
+++ b/components/model-catalog/api-definition/proto/BluePrintManagement.proto
@@ -0,0 +1,56 @@
+syntax = "proto3";
+option java_multiple_files = true;
+package org.onap.ccsdk.apps.controllerblueprints.management.api;
+
+message BluePrintUploadInput {
+    CommonHeader commonHeader = 1;
+    string blueprintName = 2;
+    string blueprintVersion = 3;
+    FileChunk fileChunk = 4;
+}
+
+message FileChunk {
+    bytes chunk = 1;
+}
+
+message BluePrintUploadOutput {
+    CommonHeader commonHeader = 1;
+    Status status = 3;
+}
+
+message BluePrintRemoveInput {
+    CommonHeader commonHeader = 1;
+    string blueprintName = 2;
+    string blueprintVersion = 3;
+}
+
+message BluePrintRemoveOutput {
+    CommonHeader commonHeader = 1;
+    Status status = 3;
+}
+
+message CommonHeader {
+    string timestamp = 1;
+    string originatorId = 23;
+    string requestId = 3;
+    string subRequestId = 4;
+}
+
+message ActionIdentifiers {
+    string blueprintName = 1;
+    string blueprintVersion = 2;
+    string actionName = 3;
+    string mode = 4;
+}
+
+message Status {
+    string timestamp = 1;
+    int32 code = 2;
+    string message = 3;
+    string errorMessage = 4;
+}
+
+service BluePrintManagementService {
+    rpc uploadBlueprint (BluePrintUploadInput) returns (BluePrintUploadOutput);
+    rpc removeBlueprint (BluePrintRemoveInput) returns (BluePrintRemoveOutput);
+}
diff --git a/components/model-catalog/api-definition/proto/BluePrintProcessing.proto b/components/model-catalog/api-definition/proto/BluePrintProcessing.proto
new file mode 100644
index 0000000..8fa4a13
--- /dev/null
+++ b/components/model-catalog/api-definition/proto/BluePrintProcessing.proto
@@ -0,0 +1,49 @@
+syntax = "proto3";
+import "google/protobuf/struct.proto";
+option java_multiple_files = true;
+package org.onap.ccsdk.apps.controllerblueprints.processing.api;
+
+message ExecutionServiceInput {
+    CommonHeader commonHeader = 1;
+    ActionIdentifiers actionIdentifiers = 2;
+    google.protobuf.Struct payload = 3;
+}
+
+message ExecutionServiceOutput {
+    CommonHeader commonHeader = 1;
+    ActionIdentifiers actionIdentifiers = 2;
+    Status status = 3;
+    google.protobuf.Struct payload = 4;
+}
+
+message CommonHeader {
+    string timestamp = 1;
+    string originatorId = 23;
+    string requestId = 3;
+    string subRequestId = 4;
+    Flag flag = 5;
+}
+
+message Flag {
+    bool isForce = 1;
+    int32 ttl = 2;
+}
+
+message ActionIdentifiers {
+    string blueprintName = 1;
+    string blueprintVersion = 2;
+    string actionName = 3;
+    string mode = 4;
+}
+
+message Status {
+    int32 code = 1;
+    string errorMessage = 2;
+    string message = 3;
+    string eventType = 4;
+    string timestamp = 5;
+}
+
+service BluePrintProcessingService {
+    rpc process (ExecutionServiceInput) returns (stream ExecutionServiceOutput);
+}
diff --git a/components/parent/pom.xml b/components/parent/pom.xml
index 5c46208..03656eb 100644
--- a/components/parent/pom.xml
+++ b/components/parent/pom.xml
@@ -35,6 +35,7 @@
         <kotlin.maven.version>1.3.10</kotlin.maven.version>
         <kotlin.couroutines.version>1.0.1</kotlin.couroutines.version>
         <grpc.version>1.16.1</grpc.version>
+        <protobuff.java.utils.version>3.6.1</protobuff.java.utils.version>
         <eelf.version>1.0.0</eelf.version>
         <guava.version>26.0-jre</guava.version>
         <springfox.swagger2.version>2.9.2</springfox.swagger2.version>
@@ -155,6 +156,11 @@
                 <artifactId>grpc-stub</artifactId>
                 <version>${grpc.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.google.protobuf</groupId>
+                <artifactId>protobuf-java-util</artifactId>
+                <version>${protobuff.java.utils.version}</version>
+            </dependency>
 
 
             <!-- Database -->
@@ -256,6 +262,24 @@
             <groupId>com.fasterxml.jackson.module</groupId>
             <artifactId>jackson-module-kotlin</artifactId>
         </dependency>
+        <!-- GRPC Dependencies -->
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-protobuf</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-stub</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.protobuf</groupId>
+            <artifactId>protobuf-java-util</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>