go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers-sdk/v1/plugin/plugin.proto (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 syntax = "proto3"; 5 package cnquery.providers.v1; 6 option go_package = "go.mondoo.com/cnquery/providers-sdk/v1/plugin"; 7 8 import "providers-sdk/v1/inventory/inventory.proto"; 9 import "providers-sdk/v1/upstream/upstream.proto"; 10 import "llx/llx.proto"; 11 12 message ParseCLIReq { 13 string connector = 1; 14 repeated string args = 2; 15 map<string,cnquery.llx.Primitive> flags = 3; 16 } 17 18 message ParseCLIRes { 19 // inventory after parsing of CLI; no connection, no discovery, no resolution 20 Asset asset = 1; 21 } 22 23 message ConnectReq { 24 bytes features = 2; 25 // The one primary targeted asset for the connection 26 Asset asset = 3; 27 bool has_recording = 20; 28 uint32 callback_server = 21; 29 mondoo.cnquery.upstream.v1.UpstreamConfig upstream = 22; 30 } 31 32 message ConnectRes { 33 uint32 id = 1; 34 string name = 2; 35 // the connected asset with additional information from this connection 36 Asset asset = 3; 37 // inventory of other discovered assets 38 Inventory inventory = 4; 39 } 40 41 message ShutdownReq { 42 } 43 44 message ShutdownRes { 45 } 46 47 message DataReq { 48 uint32 connection = 1; 49 string resource = 3; 50 string resource_id = 4; 51 string field = 5; 52 map<string,cnquery.llx.Primitive> args = 6; 53 } 54 55 message DataRes { 56 cnquery.llx.Primitive data = 1; 57 string error = 2; 58 // The ID uniquely identifies this request and all associated callbacks 59 string id = 3; 60 } 61 62 message CollectRes {} 63 64 message StoreReq { 65 uint32 connection = 1; 66 repeated ResourceData resources = 2; 67 } 68 69 message ResourceData { 70 string name = 3; 71 string id = 4; 72 map<string, cnquery.llx.Result> fields = 5; 73 } 74 75 message StoreRes {} 76 77 service ProviderPlugin { 78 rpc ParseCLI(ParseCLIReq) returns (ParseCLIRes); 79 rpc Connect(ConnectReq) returns (ConnectRes); 80 rpc MockConnect(ConnectReq) returns (ConnectRes); 81 rpc Shutdown(ShutdownReq) returns (ShutdownRes); 82 rpc GetData(DataReq) returns (DataRes); 83 rpc StoreData(StoreReq) returns (StoreRes); 84 } 85 86 service ProviderCallback { 87 rpc Collect(DataRes) returns (CollectRes); 88 rpc GetRecording(DataReq) returns (ResourceData); 89 rpc GetData(DataReq) returns (DataRes); 90 }