#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExtraValue {
#[prost(string, repeated, tag = "1")]
pub items: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldSelectorAttributes {
#[prost(string, optional, tag = "1")]
pub raw_selector: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "2")]
pub requirements: ::prost::alloc::vec::Vec<
super::super::super::apimachinery::pkg::apis::meta::v1::FieldSelectorRequirement,
>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LabelSelectorAttributes {
#[prost(string, optional, tag = "1")]
pub raw_selector: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "2")]
pub requirements: ::prost::alloc::vec::Vec<
super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelectorRequirement,
>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LocalSubjectAccessReview {
#[prost(message, optional, tag = "1")]
pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
#[prost(message, optional, tag = "2")]
pub spec: ::core::option::Option<SubjectAccessReviewSpec>,
#[prost(message, optional, tag = "3")]
pub status: ::core::option::Option<SubjectAccessReviewStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NonResourceAttributes {
#[prost(string, optional, tag = "1")]
pub path: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub verb: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NonResourceRule {
#[prost(string, repeated, tag = "1")]
pub verbs: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag = "2")]
pub non_resource_ur_ls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceAttributes {
#[prost(string, optional, tag = "1")]
pub namespace: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub verb: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub group: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub version: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "5")]
pub resource: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "6")]
pub subresource: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "7")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag = "8")]
pub field_selector: ::core::option::Option<FieldSelectorAttributes>,
#[prost(message, optional, tag = "9")]
pub label_selector: ::core::option::Option<LabelSelectorAttributes>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceRule {
#[prost(string, repeated, tag = "1")]
pub verbs: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag = "2")]
pub api_groups: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag = "3")]
pub resources: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag = "4")]
pub resource_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SelfSubjectAccessReview {
#[prost(message, optional, tag = "1")]
pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
#[prost(message, optional, tag = "2")]
pub spec: ::core::option::Option<SelfSubjectAccessReviewSpec>,
#[prost(message, optional, tag = "3")]
pub status: ::core::option::Option<SubjectAccessReviewStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SelfSubjectAccessReviewSpec {
#[prost(message, optional, tag = "1")]
pub resource_attributes: ::core::option::Option<ResourceAttributes>,
#[prost(message, optional, tag = "2")]
pub non_resource_attributes: ::core::option::Option<NonResourceAttributes>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SelfSubjectRulesReview {
#[prost(message, optional, tag = "1")]
pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
#[prost(message, optional, tag = "2")]
pub spec: ::core::option::Option<SelfSubjectRulesReviewSpec>,
#[prost(message, optional, tag = "3")]
pub status: ::core::option::Option<SubjectRulesReviewStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SelfSubjectRulesReviewSpec {
#[prost(string, optional, tag = "1")]
pub namespace: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubjectAccessReview {
#[prost(message, optional, tag = "1")]
pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
#[prost(message, optional, tag = "2")]
pub spec: ::core::option::Option<SubjectAccessReviewSpec>,
#[prost(message, optional, tag = "3")]
pub status: ::core::option::Option<SubjectAccessReviewStatus>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubjectAccessReviewSpec {
#[prost(message, optional, tag = "1")]
pub resource_attributes: ::core::option::Option<ResourceAttributes>,
#[prost(message, optional, tag = "2")]
pub non_resource_attributes: ::core::option::Option<NonResourceAttributes>,
#[prost(string, optional, tag = "3")]
pub user: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, repeated, tag = "4")]
pub groups: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(btree_map = "string, message", tag = "5")]
pub extra: ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, ExtraValue>,
#[prost(string, optional, tag = "6")]
pub uid: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubjectAccessReviewStatus {
#[prost(bool, optional, tag = "1")]
pub allowed: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "4")]
pub denied: ::core::option::Option<bool>,
#[prost(string, optional, tag = "2")]
pub reason: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub evaluation_error: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubjectRulesReviewStatus {
#[prost(message, repeated, tag = "1")]
pub resource_rules: ::prost::alloc::vec::Vec<ResourceRule>,
#[prost(message, repeated, tag = "2")]
pub non_resource_rules: ::prost::alloc::vec::Vec<NonResourceRule>,
#[prost(bool, optional, tag = "3")]
pub incomplete: ::core::option::Option<bool>,
#[prost(string, optional, tag = "4")]
pub evaluation_error: ::core::option::Option<::prost::alloc::string::String>,
}
impl crate::Resource for LocalSubjectAccessReview {
const API_VERSION: &'static str = "authorization.k8s.io/v1";
const GROUP: &'static str = "authorization.k8s.io";
const VERSION: &'static str = "v1";
const KIND: &'static str = "LocalSubjectAccessReview";
const URL_PATH_SEGMENT: &'static str = "localsubjectaccessreviews";
type Scope = crate::NamespaceResourceScope;
}
impl crate::Metadata for LocalSubjectAccessReview {
type Ty = crate::apimachinery::pkg::apis::meta::v1::ObjectMeta;
fn metadata(&self) -> Option<&<Self as crate::Metadata>::Ty> {
self.metadata.as_ref()
}
fn metadata_mut(&mut self) -> Option<&mut <Self as crate::Metadata>::Ty> {
self.metadata.as_mut()
}
}
impl crate::HasSpec for LocalSubjectAccessReview {
type Spec = crate::api::authorization::v1::SubjectAccessReviewSpec;
fn spec(&self) -> Option<&<Self as crate::HasSpec>::Spec> {
self.spec.as_ref()
}
fn spec_mut(&mut self) -> Option<&mut <Self as crate::HasSpec>::Spec> {
self.spec.as_mut()
}
}
impl crate::HasStatus for LocalSubjectAccessReview {
type Status = crate::api::authorization::v1::SubjectAccessReviewStatus;
fn status(&self) -> Option<&<Self as crate::HasStatus>::Status> {
self.status.as_ref()
}
fn status_mut(&mut self) -> Option<&mut <Self as crate::HasStatus>::Status> {
self.status.as_mut()
}
}
impl crate::Resource for SelfSubjectAccessReview {
const API_VERSION: &'static str = "authorization.k8s.io/v1";
const GROUP: &'static str = "authorization.k8s.io";
const VERSION: &'static str = "v1";
const KIND: &'static str = "SelfSubjectAccessReview";
const URL_PATH_SEGMENT: &'static str = "selfsubjectaccessreviews";
type Scope = crate::ClusterResourceScope;
}
impl crate::Metadata for SelfSubjectAccessReview {
type Ty = crate::apimachinery::pkg::apis::meta::v1::ObjectMeta;
fn metadata(&self) -> Option<&<Self as crate::Metadata>::Ty> {
self.metadata.as_ref()
}
fn metadata_mut(&mut self) -> Option<&mut <Self as crate::Metadata>::Ty> {
self.metadata.as_mut()
}
}
impl crate::HasSpec for SelfSubjectAccessReview {
type Spec = crate::api::authorization::v1::SelfSubjectAccessReviewSpec;
fn spec(&self) -> Option<&<Self as crate::HasSpec>::Spec> {
self.spec.as_ref()
}
fn spec_mut(&mut self) -> Option<&mut <Self as crate::HasSpec>::Spec> {
self.spec.as_mut()
}
}
impl crate::HasStatus for SelfSubjectAccessReview {
type Status = crate::api::authorization::v1::SubjectAccessReviewStatus;
fn status(&self) -> Option<&<Self as crate::HasStatus>::Status> {
self.status.as_ref()
}
fn status_mut(&mut self) -> Option<&mut <Self as crate::HasStatus>::Status> {
self.status.as_mut()
}
}
impl crate::Resource for SelfSubjectRulesReview {
const API_VERSION: &'static str = "authorization.k8s.io/v1";
const GROUP: &'static str = "authorization.k8s.io";
const VERSION: &'static str = "v1";
const KIND: &'static str = "SelfSubjectRulesReview";
const URL_PATH_SEGMENT: &'static str = "selfsubjectrulesreviews";
type Scope = crate::ClusterResourceScope;
}
impl crate::Metadata for SelfSubjectRulesReview {
type Ty = crate::apimachinery::pkg::apis::meta::v1::ObjectMeta;
fn metadata(&self) -> Option<&<Self as crate::Metadata>::Ty> {
self.metadata.as_ref()
}
fn metadata_mut(&mut self) -> Option<&mut <Self as crate::Metadata>::Ty> {
self.metadata.as_mut()
}
}
impl crate::HasSpec for SelfSubjectRulesReview {
type Spec = crate::api::authorization::v1::SelfSubjectRulesReviewSpec;
fn spec(&self) -> Option<&<Self as crate::HasSpec>::Spec> {
self.spec.as_ref()
}
fn spec_mut(&mut self) -> Option<&mut <Self as crate::HasSpec>::Spec> {
self.spec.as_mut()
}
}
impl crate::HasStatus for SelfSubjectRulesReview {
type Status = crate::api::authorization::v1::SubjectRulesReviewStatus;
fn status(&self) -> Option<&<Self as crate::HasStatus>::Status> {
self.status.as_ref()
}
fn status_mut(&mut self) -> Option<&mut <Self as crate::HasStatus>::Status> {
self.status.as_mut()
}
}
impl crate::Resource for SubjectAccessReview {
const API_VERSION: &'static str = "authorization.k8s.io/v1";
const GROUP: &'static str = "authorization.k8s.io";
const VERSION: &'static str = "v1";
const KIND: &'static str = "SubjectAccessReview";
const URL_PATH_SEGMENT: &'static str = "subjectaccessreviews";
type Scope = crate::ClusterResourceScope;
}
impl crate::Metadata for SubjectAccessReview {
type Ty = crate::apimachinery::pkg::apis::meta::v1::ObjectMeta;
fn metadata(&self) -> Option<&<Self as crate::Metadata>::Ty> {
self.metadata.as_ref()
}
fn metadata_mut(&mut self) -> Option<&mut <Self as crate::Metadata>::Ty> {
self.metadata.as_mut()
}
}
impl crate::HasSpec for SubjectAccessReview {
type Spec = crate::api::authorization::v1::SubjectAccessReviewSpec;
fn spec(&self) -> Option<&<Self as crate::HasSpec>::Spec> {
self.spec.as_ref()
}
fn spec_mut(&mut self) -> Option<&mut <Self as crate::HasSpec>::Spec> {
self.spec.as_mut()
}
}
impl crate::HasStatus for SubjectAccessReview {
type Status = crate::api::authorization::v1::SubjectAccessReviewStatus;
fn status(&self) -> Option<&<Self as crate::HasStatus>::Status> {
self.status.as_ref()
}
fn status_mut(&mut self) -> Option<&mut <Self as crate::HasStatus>::Status> {
self.status.as_mut()
}
}