syntax = "proto3";

package xds.annotations.v3;

import "xds/annotations/v3/status.proto";

import "google/protobuf/descriptor.proto";

option go_package = "github.com/cncf/xds/go/xds/annotations/v3";

// All annotations in this file are experimental and subject to change. Their
// only consumer today is the Envoy APIs and SecuritAnnotationValidator protoc
// plugin in this repository.
option (xds.annotations.v3.file_status).work_in_progress = true;

extend google.protobuf.FieldOptions {
  // Magic number is the 28 most significant bits in the sha256sum of
  // "xds.annotations.v3.security".
  FieldSecurityAnnotation security = 99044135;
}

// These annotations indicate metadata for the purpose of understanding the
// security significance of fields.
message FieldSecurityAnnotation {
  // Field should be set in the presence of untrusted downstreams.
  bool configure_for_untrusted_downstream = 1;

  // Field should be set in the presence of untrusted upstreams.
  bool configure_for_untrusted_upstream = 2;
}
