blob: 6e36e5e70f9ace47d34abb342833592378c4052d [file] [log] [blame]
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
syntax = "proto3";
option go_package = "github.com/hashicorp/vault/sdk/logical";
package logical;
import "google/protobuf/struct.proto";
// EventPluginInfo contains data related to the plugin that generated an event.
message EventPluginInfo {
// The type of plugin this event originated from, i.e., "auth" or "secrets.
string mount_class = 1;
// Unique ID of the mount entry, e.g., "kv_957bb7d8"
string mount_accessor = 2;
// Mount path of the plugin this event originated from, e.g., "secret/"
string mount_path = 3;
// Plugin name that this event originated from, e.g., "kv"
string plugin = 4;
// Plugin version of the plugin this event originated from, e.g., "v0.13.3+builtin"
string plugin_version = 5;
// Mount version that this event originated from, i.e., if KVv2, then "2". Usually empty.
string version = 6;
}
// EventData contains event data in a CloudEvents container.
message EventData {
// ID identifies the event. It is required. The combination of
// CloudEvents Source (i.e., Vault cluster) + ID must be unique.
// Events with the same Source + ID can be assumed to be duplicates
// by consumers.
// Be careful when setting this manually that the ID contains enough
// entropy to be unique, or possibly that it is idempotent, such
// as a hash of other fields with sufficient uniqueness.
string id = 1;
// Arbitrary non-secret data. Optional.
google.protobuf.Struct metadata = 2;
// Any IDs that the event relates to, i.e., UUIDs, paths.
repeated string entity_ids = 3;
// Human-readable note.
string note = 4;
}
// EventReceived is used to consume events and includes additional metadata regarding
// the event type and plugin information.
message EventReceived {
EventData event = 1;
// namespace path
string namespace = 2;
string event_type = 3;
EventPluginInfo plugin_info = 4;
}