1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// This file is @generated by prost-build.
/// **Service Mesh**: State for the whole Hub, as analyzed by the Service Mesh
/// Hub Controller.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeatureState {
    /// Output only. Results of running Service Mesh analyzers.
    #[prost(message, repeated, tag = "1")]
    pub analysis_messages: ::prost::alloc::vec::Vec<AnalysisMessage>,
}
/// **Service Mesh**: State for a single Membership, as analyzed by the Service
/// Mesh Hub Controller.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipState {
    /// Output only. Results of running Service Mesh analyzers.
    #[prost(message, repeated, tag = "1")]
    pub analysis_messages: ::prost::alloc::vec::Vec<AnalysisMessage>,
}
/// AnalysisMessageBase describes some common information that is
/// needed for all messages.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AnalysisMessageBase {
    /// Represents the specific type of a message.
    #[prost(message, optional, tag = "1")]
    pub r#type: ::core::option::Option<analysis_message_base::Type>,
    /// Represents how severe a message is.
    #[prost(enumeration = "analysis_message_base::Level", tag = "2")]
    pub level: i32,
    /// A url pointing to the Service Mesh or Istio documentation for this specific
    /// error type.
    #[prost(string, tag = "3")]
    pub documentation_url: ::prost::alloc::string::String,
}
/// Nested message and enum types in `AnalysisMessageBase`.
pub mod analysis_message_base {
    /// A unique identifier for the type of message. Display_name is intended to be
    /// human-readable, code is intended to be machine readable. There should be a
    /// one-to-one mapping between display_name and code. (i.e. do not re-use
    /// display_names or codes between message types.)
    /// See istio.analysis.v1alpha1.AnalysisMessageBase.Type
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct Type {
        /// A human-readable name for the message type. e.g. "InternalError",
        /// "PodMissingProxy". This should be the same for all messages of the same
        /// type. (This corresponds to the `name` field in open-source Istio.)
        #[prost(string, tag = "1")]
        pub display_name: ::prost::alloc::string::String,
        /// A 7 character code matching `^IST\[0-9\]{4}$` or `^ASM\[0-9\]{4}$`, intended
        /// to uniquely identify the message type. (e.g. "IST0001" is mapped to the
        /// "InternalError" message type.)
        #[prost(string, tag = "2")]
        pub code: ::prost::alloc::string::String,
    }
    /// The values here are chosen so that more severe messages get sorted higher,
    /// as well as leaving space in between to add more later
    /// See istio.analysis.v1alpha1.AnalysisMessageBase.Level
    #[derive(
        Clone,
        Copy,
        Debug,
        PartialEq,
        Eq,
        Hash,
        PartialOrd,
        Ord,
        ::prost::Enumeration
    )]
    #[repr(i32)]
    pub enum Level {
        /// Illegal. Same istio.analysis.v1alpha1.AnalysisMessageBase.Level.UNKNOWN.
        Unspecified = 0,
        /// ERROR represents a misconfiguration that must be fixed.
        Error = 3,
        /// WARNING represents a misconfiguration that should be fixed.
        Warning = 8,
        /// INFO represents an informational finding.
        Info = 12,
    }
    impl Level {
        /// String value of the enum field names used in the ProtoBuf definition.
        ///
        /// The values are not transformed in any way and thus are considered stable
        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
        pub fn as_str_name(&self) -> &'static str {
            match self {
                Level::Unspecified => "LEVEL_UNSPECIFIED",
                Level::Error => "ERROR",
                Level::Warning => "WARNING",
                Level::Info => "INFO",
            }
        }
        /// Creates an enum from field names used in the ProtoBuf definition.
        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
            match value {
                "LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
                "ERROR" => Some(Self::Error),
                "WARNING" => Some(Self::Warning),
                "INFO" => Some(Self::Info),
                _ => None,
            }
        }
    }
}
/// AnalysisMessage is a single message produced by an analyzer, and
/// it used to communicate to the end user about the state of their Service
/// Mesh configuration.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AnalysisMessage {
    /// Details common to all types of Istio and ServiceMesh analysis messages.
    #[prost(message, optional, tag = "1")]
    pub message_base: ::core::option::Option<AnalysisMessageBase>,
    /// A human readable description of what the error means. It is suitable for
    /// non-internationalize display purposes.
    #[prost(string, tag = "2")]
    pub description: ::prost::alloc::string::String,
    /// A list of strings specifying the resource identifiers that were the cause
    /// of message generation.
    /// A "path" here may be:
    /// * MEMBERSHIP_ID if the cause is a specific member cluster
    /// * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource
    /// in a cluster
    #[prost(string, repeated, tag = "3")]
    pub resource_paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    /// A UI can combine these args with a template (based on message_base.type)
    /// to produce an internationalized message.
    #[prost(message, optional, tag = "4")]
    pub args: ::core::option::Option<::prost_types::Struct>,
}