open-nomad/plugins/base/proto/base.proto

65 lines
2 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto3";
2018-08-09 22:29:00 +00:00
package hashicorp.nomad.plugins.base.proto;
2018-08-10 17:50:09 +00:00
option go_package = "proto";
2018-08-09 20:29:05 +00:00
import "github.com/hashicorp/nomad/plugins/shared/hclspec/hcl_spec.proto";
// BasePlugin is the methods that all Nomad plugins must support.
service BasePlugin {
// PluginInfo describes the type and version of a plugin.
2018-08-07 23:16:23 +00:00
rpc PluginInfo(PluginInfoRequest) returns (PluginInfoResponse) {}
// ConfigSchema returns the schema for parsing the plugins configuration.
2018-08-07 23:16:23 +00:00
rpc ConfigSchema(ConfigSchemaRequest) returns (ConfigSchemaResponse) {}
// SetConfig is used to set the configuration.
rpc SetConfig(SetConfigRequest) returns (SetConfigResponse) {}
}
// PluginType enumerates the type of plugins Nomad supports
enum PluginType {
UNKNOWN = 0;
2018-08-10 17:50:09 +00:00
DRIVER = 2;
DEVICE = 3;
}
2018-08-07 23:16:23 +00:00
// PluginInfoRequest is used to request the plugins basic information.
message PluginInfoRequest {}
// PluginInfoResponse returns basic information about the plugin such
// that Nomad can decide whether to load the plugin or not.
message PluginInfoResponse {
// type indicates what type of plugin this is.
PluginType type = 1;
// plugin_api_version indicates the version of the Nomad Plugin API
// this plugin is built against.
string plugin_api_version = 2;
// plugin_version is the semver version of this individual plugin.
// This is divorce from Nomads development and versioning.
string plugin_version = 3;
// name is the name of the plugin
string name = 4;
}
2018-08-07 23:16:23 +00:00
// ConfigSchemaRequest is used to request the configurations schema.
message ConfigSchemaRequest {}
// ConfigSchemaResponse returns the plugins configuration schema.
message ConfigSchemaResponse {
// spec is the plugins configuration schema
hashicorp.nomad.plugins.shared.hclspec.Spec spec = 1;
}
2018-08-07 23:16:23 +00:00
// SetConfigRequest is used to set the configuration
message SetConfigRequest {
// msgpack_config is the configuration encoded as MessagePack.
bytes msgpack_config = 1;
}
// SetConfigResponse is used to respond to setting the configuration
message SetConfigResponse {}