syntax = "proto3";

package envoy.annotations;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/annotations";

import "google/protobuf/descriptor.proto";

// [#protodoc-title: Deprecation]
// Adds annotations for deprecated fields and enums to allow tagging proto
// fields as fatal by default and the minor version on which the field was
// deprecated. One Envoy release after deprecation, deprecated fields will be
// disallowed by default, a state which is reversible with
// :ref:`runtime overrides <config_runtime_deprecation>`.

// Magic number in this file derived from top 28bit of SHA256 digest of
// "envoy.annotation.disallowed_by_default" and "envoy.annotation.deprecated_at_minor_version"
extend google.protobuf.FieldOptions {
  bool disallowed_by_default = 189503207;

  // The API major and minor version on which the field was deprecated
  // (e.g., "3.5" for major version 3 and minor version 5).
  string deprecated_at_minor_version = 157299826;
}

// Magic number in this file derived from top 28bit of SHA256 digest of
// "envoy.annotation.disallowed_by_default_enum" and
// "envoy.annotation.deprecated_at_minor_version_eum"
extend google.protobuf.EnumValueOptions {
  bool disallowed_by_default_enum = 70100853;

  // The API major and minor version on which the enum value was deprecated
  // (e.g., "3.5" for major version 3 and minor version 5).
  string deprecated_at_minor_version_enum = 181198657;
}
