github.com/containerd/Containerd@v1.4.13/api/services/introspection/v1/introspection.proto (about)

     1  syntax = "proto3";
     2  
     3  package containerd.services.introspection.v1;
     4  
     5  import "github.com/containerd/containerd/api/types/platform.proto";
     6  import "google/rpc/status.proto";
     7  import "google/protobuf/empty.proto";
     8  import weak "gogoproto/gogo.proto";
     9  
    10  option go_package = "github.com/containerd/containerd/api/services/introspection/v1;introspection";
    11  
    12  service Introspection {
    13  	// Plugins returns a list of plugins in containerd.
    14  	//
    15  	// Clients can use this to detect features and capabilities when using
    16  	// containerd.
    17  	rpc Plugins(PluginsRequest) returns (PluginsResponse);
    18  	// Server returns information about the containerd server
    19  	rpc Server(google.protobuf.Empty) returns (ServerResponse);
    20  }
    21  
    22  message Plugin {
    23  	// Type defines the type of plugin.
    24  	//
    25  	// See package plugin for a list of possible values. Non core plugins may
    26  	// define their own values during registration.
    27  	string type = 1;
    28  
    29  	// ID identifies the plugin uniquely in the system.
    30  	string id = 2;
    31  
    32  	// Requires lists the plugin types required by this plugin.
    33  	repeated string requires = 3;
    34  
    35  	// Platforms enumerates the platforms this plugin will support.
    36  	//
    37  	// If values are provided here, the plugin will only be operable under the
    38  	// provided platforms.
    39  	//
    40  	// If this is empty, the plugin will work across all platforms.
    41  	//
    42  	// If the plugin prefers certain platforms over others, they should be
    43  	// listed from most to least preferred.
    44  	repeated types.Platform platforms = 4 [(gogoproto.nullable) = false];
    45  
    46  	// Exports allows plugins to provide values about state or configuration to
    47  	// interested parties.
    48  	//
    49  	// One example is exposing the configured path of a snapshotter plugin.
    50  	map<string, string> exports = 5;
    51  
    52  	// Capabilities allows plugins to communicate feature switches to allow
    53  	// clients to detect features that may not be on be default or may be
    54  	// different from version to version.
    55  	//
    56  	// Use this sparingly.
    57  	repeated string capabilities = 6;
    58  
    59  	// InitErr will be set if the plugin fails initialization.
    60  	//
    61  	// This means the plugin may have been registered but a non-terminal error
    62  	// was encountered during initialization.
    63  	//
    64  	// Plugins that have this value set cannot be used.
    65  	google.rpc.Status init_err = 7;
    66  }
    67  
    68  message PluginsRequest {
    69  	// Filters contains one or more filters using the syntax defined in the
    70  	// containerd filter package.
    71  	//
    72  	// The returned result will be those that match any of the provided
    73  	// filters. Expanded, plugins that match the following will be
    74  	// returned:
    75  	//
    76  	//   filters[0] or filters[1] or ... or filters[n-1] or filters[n]
    77  	//
    78  	// If filters is zero-length or nil, all items will be returned.
    79  	repeated string filters = 1;
    80  }
    81  
    82  message PluginsResponse {
    83  	repeated Plugin plugins = 1 [(gogoproto.nullable) = false];
    84  }
    85  
    86  message ServerResponse {
    87  	string uuid = 1 [(gogoproto.customname) = "UUID"];
    88  }