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  }