syntax = "proto3"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; option java_multiple_files = true; package org.onap.ccsdk.cds.controllerblueprints.command.api; message ExecutionInput { string requestId = 1; // Optional Id used to correlate multiple requests so that it can identify previous request information. string correlationId = 2; // Optional Blueprint Information used to identify CBA content information in shared file structure environment. Identifiers identifiers = 3; // Actual Command to Execute in Scripting Environment string command = 4; int32 timeOut = 5; // Extra Dynamic Properties for Command processing in JSON format google.protobuf.Struct properties = 6; // Request Time Stamp google.protobuf.Timestamp timestamp = 7; string subRequestId = 8; string originatorId = 9; } message PrepareEnvInput { Identifiers identifiers = 1; string requestId = 2; // Optional Id used to correlate multiple requests so that it can identify previous request information. string correlationId = 3; repeated Packages packages = 4; int32 timeOut = 5; google.protobuf.Struct properties = 6; google.protobuf.Timestamp timestamp = 7; string subRequestId = 8; string originatorId = 9; } message Identifiers { string blueprintName = 1; string blueprintVersion = 2; } message ExecutionOutput { string requestId = 1; repeated string response = 2; ResponseStatus status = 3; google.protobuf.Timestamp timestamp = 4; string payload = 5; } enum ResponseStatus { SUCCESS = 0; FAILURE = 1; } message Packages { PackageType type = 1; repeated string package = 2; } enum PackageType { pip = 0; ansible_galaxy = 1; utilities = 2; } service CommandExecutorService { rpc prepareEnv (PrepareEnvInput) returns (ExecutionOutput); rpc executeCommand (ExecutionInput) returns (ExecutionOutput); }