syntax = "proto3";

import "github.com/gogo/protobuf/gogoproto/gogo.proto";
import "meta.proto";

package sensu.core.v2;

option go_package = "v2";
option (gogoproto.populate_all) = true;
option (gogoproto.equal_all) = true;
option (gogoproto.marshaler_all) = true;
option (gogoproto.unmarshaler_all) = true;
option (gogoproto.sizer_all) = true;
option (gogoproto.testgen_all) = true;

// Extension is a registered sensu extension.
message Extension {
	option (gogoproto.face) = true;
	option (gogoproto.goproto_getters) = false;

	// Metadata contains the name, namespace, labels and annotations of the extension
	ObjectMeta metadata = 1 [(gogoproto.jsontag) = "metadata,omitempty", (gogoproto.embed) = true, (gogoproto.nullable) = false];

	// URL is the URL of the gRPC service that implements the extension.
	string url = 2 [(gogoproto.customname) = "URL"];
}
