// 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; }