#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Feature {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(map = "string, string", tag = "2")]
pub labels: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(message, optional, tag = "3")]
pub resource_state: ::core::option::Option<FeatureResourceState>,
#[prost(message, optional, tag = "6")]
pub state: ::core::option::Option<CommonFeatureState>,
#[prost(map = "string, message", tag = "7")]
pub membership_states: ::std::collections::HashMap<
::prost::alloc::string::String,
MembershipFeatureState,
>,
#[prost(message, optional, tag = "8")]
pub create_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag = "9")]
pub update_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag = "10")]
pub delete_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(map = "string, message", tag = "13")]
pub scope_states: ::std::collections::HashMap<
::prost::alloc::string::String,
ScopeFeatureState,
>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct FeatureResourceState {
#[prost(enumeration = "feature_resource_state::State", tag = "1")]
pub state: i32,
}
pub mod feature_resource_state {
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum State {
Unspecified = 0,
Enabling = 1,
Active = 2,
Disabling = 3,
Updating = 4,
ServiceUpdating = 5,
}
impl State {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "STATE_UNSPECIFIED",
Self::Enabling => "ENABLING",
Self::Active => "ACTIVE",
Self::Disabling => "DISABLING",
Self::Updating => "UPDATING",
Self::ServiceUpdating => "SERVICE_UPDATING",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"STATE_UNSPECIFIED" => Some(Self::Unspecified),
"ENABLING" => Some(Self::Enabling),
"ACTIVE" => Some(Self::Active),
"DISABLING" => Some(Self::Disabling),
"UPDATING" => Some(Self::Updating),
"SERVICE_UPDATING" => Some(Self::ServiceUpdating),
_ => None,
}
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeatureState {
#[prost(enumeration = "feature_state::Code", tag = "1")]
pub code: i32,
#[prost(string, tag = "2")]
pub description: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub update_time: ::core::option::Option<::pbjson_types::Timestamp>,
}
pub mod feature_state {
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Code {
Unspecified = 0,
Ok = 1,
Warning = 2,
Error = 3,
}
impl Code {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "CODE_UNSPECIFIED",
Self::Ok => "OK",
Self::Warning => "WARNING",
Self::Error => "ERROR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CODE_UNSPECIFIED" => Some(Self::Unspecified),
"OK" => Some(Self::Ok),
"WARNING" => Some(Self::Warning),
"ERROR" => Some(Self::Error),
_ => None,
}
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommonFeatureState {
#[prost(message, optional, tag = "1")]
pub state: ::core::option::Option<FeatureState>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScopeFeatureState {
#[prost(message, optional, tag = "1")]
pub state: ::core::option::Option<FeatureState>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipFeatureState {
#[prost(message, optional, tag = "1")]
pub state: ::core::option::Option<FeatureState>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Scope {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub uid: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub create_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag = "4")]
pub update_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag = "5")]
pub delete_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag = "6")]
pub state: ::core::option::Option<ScopeLifecycleState>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ScopeLifecycleState {
#[prost(enumeration = "scope_lifecycle_state::Code", tag = "1")]
pub code: i32,
}
pub mod scope_lifecycle_state {
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Code {
Unspecified = 0,
Creating = 1,
Ready = 2,
Deleting = 3,
Updating = 4,
}
impl Code {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "CODE_UNSPECIFIED",
Self::Creating => "CREATING",
Self::Ready => "READY",
Self::Deleting => "DELETING",
Self::Updating => "UPDATING",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CODE_UNSPECIFIED" => Some(Self::Unspecified),
"CREATING" => Some(Self::Creating),
"READY" => Some(Self::Ready),
"DELETING" => Some(Self::Deleting),
"UPDATING" => Some(Self::Updating),
_ => None,
}
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipBinding {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub uid: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub create_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag = "6")]
pub update_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag = "7")]
pub delete_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag = "8")]
pub state: ::core::option::Option<MembershipBindingLifecycleState>,
#[prost(oneof = "membership_binding::Target", tags = "3, 4")]
pub target: ::core::option::Option<membership_binding::Target>,
}
pub mod membership_binding {
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Target {
#[prost(string, tag = "3")]
Scope(::prost::alloc::string::String),
#[prost(bool, tag = "4")]
Fleet(bool),
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MembershipBindingLifecycleState {
#[prost(enumeration = "membership_binding_lifecycle_state::Code", tag = "1")]
pub code: i32,
}
pub mod membership_binding_lifecycle_state {
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Code {
Unspecified = 0,
Creating = 1,
Ready = 2,
Deleting = 3,
Updating = 4,
}
impl Code {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "CODE_UNSPECIFIED",
Self::Creating => "CREATING",
Self::Ready => "READY",
Self::Deleting => "DELETING",
Self::Updating => "UPDATING",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CODE_UNSPECIFIED" => Some(Self::Unspecified),
"CREATING" => Some(Self::Creating),
"READY" => Some(Self::Ready),
"DELETING" => Some(Self::Deleting),
"UPDATING" => Some(Self::Updating),
_ => None,
}
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Membership {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(map = "string, string", tag = "2")]
pub labels: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(string, tag = "3")]
pub description: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub state: ::core::option::Option<MembershipState>,
#[prost(message, optional, tag = "6")]
pub create_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag = "7")]
pub update_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(message, optional, tag = "8")]
pub delete_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(string, tag = "9")]
pub external_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "10")]
pub last_connection_time: ::core::option::Option<::pbjson_types::Timestamp>,
#[prost(string, tag = "11")]
pub unique_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "12")]
pub authority: ::core::option::Option<Authority>,
#[prost(oneof = "membership::Type", tags = "4")]
pub r#type: ::core::option::Option<membership::Type>,
}
pub mod membership {
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Type {
#[prost(message, tag = "4")]
Endpoint(super::MembershipEndpoint),
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipEndpoint {
#[prost(message, optional, tag = "2")]
pub kubernetes_metadata: ::core::option::Option<KubernetesMetadata>,
#[prost(message, optional, tag = "3")]
pub kubernetes_resource: ::core::option::Option<KubernetesResource>,
#[prost(bool, tag = "8")]
pub google_managed: bool,
#[prost(oneof = "membership_endpoint::Type", tags = "1, 4, 5, 6, 7")]
pub r#type: ::core::option::Option<membership_endpoint::Type>,
}
pub mod membership_endpoint {
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Type {
#[prost(message, tag = "1")]
GkeCluster(super::GkeCluster),
#[prost(message, tag = "4")]
OnPremCluster(super::OnPremCluster),
#[prost(message, tag = "5")]
MultiCloudCluster(super::MultiCloudCluster),
#[prost(message, tag = "6")]
EdgeCluster(super::EdgeCluster),
#[prost(message, tag = "7")]
ApplianceCluster(super::ApplianceCluster),
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KubernetesResource {
#[prost(message, repeated, tag = "2")]
pub membership_resources: ::prost::alloc::vec::Vec<ResourceManifest>,
#[prost(message, repeated, tag = "3")]
pub connect_resources: ::prost::alloc::vec::Vec<ResourceManifest>,
#[prost(message, optional, tag = "4")]
pub resource_options: ::core::option::Option<ResourceOptions>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceOptions {
#[prost(string, tag = "1")]
pub connect_version: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub v1beta1_crd: bool,
#[prost(string, tag = "3")]
pub k8s_version: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceManifest {
#[prost(string, tag = "1")]
pub manifest: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub cluster_scoped: bool,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GkeCluster {
#[prost(string, tag = "1")]
pub resource_link: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub cluster_missing: bool,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OnPremCluster {
#[prost(string, tag = "1")]
pub resource_link: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub cluster_missing: bool,
#[prost(bool, tag = "3")]
pub admin_cluster: bool,
#[prost(enumeration = "on_prem_cluster::ClusterType", tag = "4")]
pub cluster_type: i32,
}
pub mod on_prem_cluster {
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum ClusterType {
ClustertypeUnspecified = 0,
Bootstrap = 1,
Hybrid = 2,
Standalone = 3,
User = 4,
}
impl ClusterType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::ClustertypeUnspecified => "CLUSTERTYPE_UNSPECIFIED",
Self::Bootstrap => "BOOTSTRAP",
Self::Hybrid => "HYBRID",
Self::Standalone => "STANDALONE",
Self::User => "USER",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CLUSTERTYPE_UNSPECIFIED" => Some(Self::ClustertypeUnspecified),
"BOOTSTRAP" => Some(Self::Bootstrap),
"HYBRID" => Some(Self::Hybrid),
"STANDALONE" => Some(Self::Standalone),
"USER" => Some(Self::User),
_ => None,
}
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MultiCloudCluster {
#[prost(string, tag = "1")]
pub resource_link: ::prost::alloc::string::String,
#[prost(bool, tag = "2")]
pub cluster_missing: bool,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EdgeCluster {
#[prost(string, tag = "1")]
pub resource_link: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ApplianceCluster {
#[prost(string, tag = "1")]
pub resource_link: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KubernetesMetadata {
#[prost(string, tag = "1")]
pub kubernetes_api_server_version: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub node_provider_id: ::prost::alloc::string::String,
#[prost(int32, tag = "3")]
pub node_count: i32,
#[prost(int32, tag = "4")]
pub vcpu_count: i32,
#[prost(int32, tag = "5")]
pub memory_mb: i32,
#[prost(message, optional, tag = "100")]
pub update_time: ::core::option::Option<::pbjson_types::Timestamp>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MembershipState {
#[prost(enumeration = "membership_state::Code", tag = "1")]
pub code: i32,
}
pub mod membership_state {
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum Code {
Unspecified = 0,
Creating = 1,
Ready = 2,
Deleting = 3,
Updating = 4,
ServiceUpdating = 5,
}
impl Code {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "CODE_UNSPECIFIED",
Self::Creating => "CREATING",
Self::Ready => "READY",
Self::Deleting => "DELETING",
Self::Updating => "UPDATING",
Self::ServiceUpdating => "SERVICE_UPDATING",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CODE_UNSPECIFIED" => Some(Self::Unspecified),
"CREATING" => Some(Self::Creating),
"READY" => Some(Self::Ready),
"DELETING" => Some(Self::Deleting),
"UPDATING" => Some(Self::Updating),
"SERVICE_UPDATING" => Some(Self::ServiceUpdating),
_ => None,
}
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Authority {
#[prost(string, tag = "1")]
pub issuer: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub workload_identity_pool: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub identity_provider: ::prost::alloc::string::String,
#[prost(bytes = "vec", tag = "4")]
pub oidc_jwks: ::prost::alloc::vec::Vec<u8>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScopeEventData {
#[prost(message, optional, tag = "1")]
pub payload: ::core::option::Option<Scope>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipEventData {
#[prost(message, optional, tag = "1")]
pub payload: ::core::option::Option<Membership>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeatureEventData {
#[prost(message, optional, tag = "1")]
pub payload: ::core::option::Option<Feature>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipBindingEventData {
#[prost(message, optional, tag = "1")]
pub payload: ::core::option::Option<MembershipBinding>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipCreatedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<MembershipEventData>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeatureCreatedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<FeatureEventData>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipDeletedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<MembershipEventData>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeatureDeletedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<FeatureEventData>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipUpdatedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<MembershipEventData>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FeatureUpdatedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<FeatureEventData>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScopeCreatedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<ScopeEventData>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScopeDeletedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<ScopeEventData>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipBindingCreatedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<MembershipBindingEventData>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipBindingUpdatedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<MembershipBindingEventData>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(default)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MembershipBindingDeletedEvent {
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<MembershipBindingEventData>,
}