#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Http {
#[prost(message, repeated, tag="1")]
pub rules: ::prost::alloc::vec::Vec<HttpRule>,
#[prost(bool, tag="2")]
pub fully_decode_reserved_expansion: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HttpRule {
#[prost(string, tag="1")]
pub selector: ::prost::alloc::string::String,
#[prost(string, tag="7")]
pub body: ::prost::alloc::string::String,
#[prost(string, tag="12")]
pub response_body: ::prost::alloc::string::String,
#[prost(message, repeated, tag="11")]
pub additional_bindings: ::prost::alloc::vec::Vec<HttpRule>,
#[prost(oneof="http_rule::Pattern", tags="2, 3, 4, 5, 6, 8")]
pub pattern: ::core::option::Option<http_rule::Pattern>,
}
pub mod http_rule {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Pattern {
#[prost(string, tag="2")]
Get(::prost::alloc::string::String),
#[prost(string, tag="3")]
Put(::prost::alloc::string::String),
#[prost(string, tag="4")]
Post(::prost::alloc::string::String),
#[prost(string, tag="5")]
Delete(::prost::alloc::string::String),
#[prost(string, tag="6")]
Patch(::prost::alloc::string::String),
#[prost(message, tag="8")]
Custom(super::CustomHttpPattern),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CustomHttpPattern {
#[prost(string, tag="1")]
pub kind: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub path: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum LaunchStage {
Unspecified = 0,
Unimplemented = 6,
Prelaunch = 7,
EarlyAccess = 1,
Alpha = 2,
Beta = 3,
Ga = 4,
Deprecated = 5,
}
impl LaunchStage {
pub fn as_str_name(&self) -> &'static str {
match self {
LaunchStage::Unspecified => "LAUNCH_STAGE_UNSPECIFIED",
LaunchStage::Unimplemented => "UNIMPLEMENTED",
LaunchStage::Prelaunch => "PRELAUNCH",
LaunchStage::EarlyAccess => "EARLY_ACCESS",
LaunchStage::Alpha => "ALPHA",
LaunchStage::Beta => "BETA",
LaunchStage::Ga => "GA",
LaunchStage::Deprecated => "DEPRECATED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"LAUNCH_STAGE_UNSPECIFIED" => Some(Self::Unspecified),
"UNIMPLEMENTED" => Some(Self::Unimplemented),
"PRELAUNCH" => Some(Self::Prelaunch),
"EARLY_ACCESS" => Some(Self::EarlyAccess),
"ALPHA" => Some(Self::Alpha),
"BETA" => Some(Self::Beta),
"GA" => Some(Self::Ga),
"DEPRECATED" => Some(Self::Deprecated),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommonLanguageSettings {
#[deprecated]
#[prost(string, tag="1")]
pub reference_docs_uri: ::prost::alloc::string::String,
#[prost(enumeration="ClientLibraryDestination", repeated, tag="2")]
pub destinations: ::prost::alloc::vec::Vec<i32>,
#[prost(message, optional, tag="3")]
pub selective_gapic_generation: ::core::option::Option<SelectiveGapicGeneration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClientLibrarySettings {
#[prost(string, tag="1")]
pub version: ::prost::alloc::string::String,
#[prost(enumeration="LaunchStage", tag="2")]
pub launch_stage: i32,
#[prost(bool, tag="3")]
pub rest_numeric_enums: bool,
#[prost(message, optional, tag="21")]
pub java_settings: ::core::option::Option<JavaSettings>,
#[prost(message, optional, tag="22")]
pub cpp_settings: ::core::option::Option<CppSettings>,
#[prost(message, optional, tag="23")]
pub php_settings: ::core::option::Option<PhpSettings>,
#[prost(message, optional, tag="24")]
pub python_settings: ::core::option::Option<PythonSettings>,
#[prost(message, optional, tag="25")]
pub node_settings: ::core::option::Option<NodeSettings>,
#[prost(message, optional, tag="26")]
pub dotnet_settings: ::core::option::Option<DotnetSettings>,
#[prost(message, optional, tag="27")]
pub ruby_settings: ::core::option::Option<RubySettings>,
#[prost(message, optional, tag="28")]
pub go_settings: ::core::option::Option<GoSettings>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Publishing {
#[prost(message, repeated, tag="2")]
pub method_settings: ::prost::alloc::vec::Vec<MethodSettings>,
#[prost(string, tag="101")]
pub new_issue_uri: ::prost::alloc::string::String,
#[prost(string, tag="102")]
pub documentation_uri: ::prost::alloc::string::String,
#[prost(string, tag="103")]
pub api_short_name: ::prost::alloc::string::String,
#[prost(string, tag="104")]
pub github_label: ::prost::alloc::string::String,
#[prost(string, repeated, tag="105")]
pub codeowner_github_teams: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="106")]
pub doc_tag_prefix: ::prost::alloc::string::String,
#[prost(enumeration="ClientLibraryOrganization", tag="107")]
pub organization: i32,
#[prost(message, repeated, tag="109")]
pub library_settings: ::prost::alloc::vec::Vec<ClientLibrarySettings>,
#[prost(string, tag="110")]
pub proto_reference_documentation_uri: ::prost::alloc::string::String,
#[prost(string, tag="111")]
pub rest_reference_documentation_uri: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JavaSettings {
#[prost(string, tag="1")]
pub library_package: ::prost::alloc::string::String,
#[prost(map="string, string", tag="2")]
pub service_class_names: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(message, optional, tag="3")]
pub common: ::core::option::Option<CommonLanguageSettings>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CppSettings {
#[prost(message, optional, tag="1")]
pub common: ::core::option::Option<CommonLanguageSettings>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PhpSettings {
#[prost(message, optional, tag="1")]
pub common: ::core::option::Option<CommonLanguageSettings>,
#[prost(string, tag="2")]
pub library_package: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PythonSettings {
#[prost(message, optional, tag="1")]
pub common: ::core::option::Option<CommonLanguageSettings>,
#[prost(message, optional, tag="2")]
pub experimental_features: ::core::option::Option<python_settings::ExperimentalFeatures>,
}
pub mod python_settings {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExperimentalFeatures {
#[prost(bool, tag="1")]
pub rest_async_io_enabled: bool,
#[prost(bool, tag="2")]
pub protobuf_pythonic_types_enabled: bool,
#[prost(bool, tag="3")]
pub unversioned_package_disabled: bool,
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodeSettings {
#[prost(message, optional, tag="1")]
pub common: ::core::option::Option<CommonLanguageSettings>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DotnetSettings {
#[prost(message, optional, tag="1")]
pub common: ::core::option::Option<CommonLanguageSettings>,
#[prost(map="string, string", tag="2")]
pub renamed_services: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(map="string, string", tag="3")]
pub renamed_resources: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, repeated, tag="4")]
pub ignored_resources: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="5")]
pub forced_namespace_aliases: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="6")]
pub handwritten_signatures: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RubySettings {
#[prost(message, optional, tag="1")]
pub common: ::core::option::Option<CommonLanguageSettings>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GoSettings {
#[prost(message, optional, tag="1")]
pub common: ::core::option::Option<CommonLanguageSettings>,
#[prost(map="string, string", tag="2")]
pub renamed_services: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MethodSettings {
#[prost(string, tag="1")]
pub selector: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub long_running: ::core::option::Option<method_settings::LongRunning>,
#[prost(string, repeated, tag="3")]
pub auto_populated_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, optional, tag="4")]
pub batching: ::core::option::Option<BatchingConfigProto>,
}
pub mod method_settings {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LongRunning {
#[prost(message, optional, tag="1")]
pub initial_poll_delay: ::core::option::Option<::prost_types::Duration>,
#[prost(float, tag="2")]
pub poll_delay_multiplier: f32,
#[prost(message, optional, tag="3")]
pub max_poll_delay: ::core::option::Option<::prost_types::Duration>,
#[prost(message, optional, tag="4")]
pub total_poll_timeout: ::core::option::Option<::prost_types::Duration>,
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SelectiveGapicGeneration {
#[prost(string, repeated, tag="1")]
pub methods: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, tag="2")]
pub generate_omitted_as_internal: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchingConfigProto {
#[prost(message, optional, tag="1")]
pub thresholds: ::core::option::Option<BatchingSettingsProto>,
#[prost(message, optional, tag="2")]
pub batch_descriptor: ::core::option::Option<BatchingDescriptorProto>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchingSettingsProto {
#[prost(int32, tag="1")]
pub element_count_threshold: i32,
#[prost(int64, tag="2")]
pub request_byte_threshold: i64,
#[prost(message, optional, tag="3")]
pub delay_threshold: ::core::option::Option<::prost_types::Duration>,
#[prost(int32, tag="4")]
pub element_count_limit: i32,
#[prost(int32, tag="5")]
pub request_byte_limit: i32,
#[prost(int32, tag="6")]
pub flow_control_element_limit: i32,
#[prost(int32, tag="7")]
pub flow_control_byte_limit: i32,
#[prost(enumeration="FlowControlLimitExceededBehaviorProto", tag="8")]
pub flow_control_limit_exceeded_behavior: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchingDescriptorProto {
#[prost(string, tag="1")]
pub batched_field: ::prost::alloc::string::String,
#[prost(string, repeated, tag="2")]
pub discriminator_fields: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="3")]
pub subresponse_field: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ClientLibraryOrganization {
Unspecified = 0,
Cloud = 1,
Ads = 2,
Photos = 3,
StreetView = 4,
Shopping = 5,
Geo = 6,
GenerativeAi = 7,
}
impl ClientLibraryOrganization {
pub fn as_str_name(&self) -> &'static str {
match self {
ClientLibraryOrganization::Unspecified => "CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED",
ClientLibraryOrganization::Cloud => "CLOUD",
ClientLibraryOrganization::Ads => "ADS",
ClientLibraryOrganization::Photos => "PHOTOS",
ClientLibraryOrganization::StreetView => "STREET_VIEW",
ClientLibraryOrganization::Shopping => "SHOPPING",
ClientLibraryOrganization::Geo => "GEO",
ClientLibraryOrganization::GenerativeAi => "GENERATIVE_AI",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED" => Some(Self::Unspecified),
"CLOUD" => Some(Self::Cloud),
"ADS" => Some(Self::Ads),
"PHOTOS" => Some(Self::Photos),
"STREET_VIEW" => Some(Self::StreetView),
"SHOPPING" => Some(Self::Shopping),
"GEO" => Some(Self::Geo),
"GENERATIVE_AI" => Some(Self::GenerativeAi),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ClientLibraryDestination {
Unspecified = 0,
Github = 10,
PackageManager = 20,
}
impl ClientLibraryDestination {
pub fn as_str_name(&self) -> &'static str {
match self {
ClientLibraryDestination::Unspecified => "CLIENT_LIBRARY_DESTINATION_UNSPECIFIED",
ClientLibraryDestination::Github => "GITHUB",
ClientLibraryDestination::PackageManager => "PACKAGE_MANAGER",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CLIENT_LIBRARY_DESTINATION_UNSPECIFIED" => Some(Self::Unspecified),
"GITHUB" => Some(Self::Github),
"PACKAGE_MANAGER" => Some(Self::PackageManager),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum FlowControlLimitExceededBehaviorProto {
UnsetBehavior = 0,
ThrowException = 1,
Block = 2,
Ignore = 3,
}
impl FlowControlLimitExceededBehaviorProto {
pub fn as_str_name(&self) -> &'static str {
match self {
FlowControlLimitExceededBehaviorProto::UnsetBehavior => "UNSET_BEHAVIOR",
FlowControlLimitExceededBehaviorProto::ThrowException => "THROW_EXCEPTION",
FlowControlLimitExceededBehaviorProto::Block => "BLOCK",
FlowControlLimitExceededBehaviorProto::Ignore => "IGNORE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNSET_BEHAVIOR" => Some(Self::UnsetBehavior),
"THROW_EXCEPTION" => Some(Self::ThrowException),
"BLOCK" => Some(Self::Block),
"IGNORE" => Some(Self::Ignore),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum FieldBehavior {
Unspecified = 0,
Optional = 1,
Required = 2,
OutputOnly = 3,
InputOnly = 4,
Immutable = 5,
UnorderedList = 6,
NonEmptyDefault = 7,
Identifier = 8,
}
impl FieldBehavior {
pub fn as_str_name(&self) -> &'static str {
match self {
FieldBehavior::Unspecified => "FIELD_BEHAVIOR_UNSPECIFIED",
FieldBehavior::Optional => "OPTIONAL",
FieldBehavior::Required => "REQUIRED",
FieldBehavior::OutputOnly => "OUTPUT_ONLY",
FieldBehavior::InputOnly => "INPUT_ONLY",
FieldBehavior::Immutable => "IMMUTABLE",
FieldBehavior::UnorderedList => "UNORDERED_LIST",
FieldBehavior::NonEmptyDefault => "NON_EMPTY_DEFAULT",
FieldBehavior::Identifier => "IDENTIFIER",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"FIELD_BEHAVIOR_UNSPECIFIED" => Some(Self::Unspecified),
"OPTIONAL" => Some(Self::Optional),
"REQUIRED" => Some(Self::Required),
"OUTPUT_ONLY" => Some(Self::OutputOnly),
"INPUT_ONLY" => Some(Self::InputOnly),
"IMMUTABLE" => Some(Self::Immutable),
"UNORDERED_LIST" => Some(Self::UnorderedList),
"NON_EMPTY_DEFAULT" => Some(Self::NonEmptyDefault),
"IDENTIFIER" => Some(Self::Identifier),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldInfo {
#[prost(enumeration="field_info::Format", tag="1")]
pub format: i32,
#[prost(message, repeated, tag="2")]
pub referenced_types: ::prost::alloc::vec::Vec<TypeReference>,
}
pub mod field_info {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Format {
Unspecified = 0,
Uuid4 = 1,
Ipv4 = 2,
Ipv6 = 3,
Ipv4OrIpv6 = 4,
}
impl Format {
pub fn as_str_name(&self) -> &'static str {
match self {
Format::Unspecified => "FORMAT_UNSPECIFIED",
Format::Uuid4 => "UUID4",
Format::Ipv4 => "IPV4",
Format::Ipv6 => "IPV6",
Format::Ipv4OrIpv6 => "IPV4_OR_IPV6",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
"UUID4" => Some(Self::Uuid4),
"IPV4" => Some(Self::Ipv4),
"IPV6" => Some(Self::Ipv6),
"IPV4_OR_IPV6" => Some(Self::Ipv4OrIpv6),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TypeReference {
#[prost(string, tag="1")]
pub type_name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HttpBody {
#[prost(string, tag="1")]
pub content_type: ::prost::alloc::string::String,
#[prost(bytes="vec", tag="2")]
pub data: ::prost::alloc::vec::Vec<u8>,
#[prost(message, repeated, tag="3")]
pub extensions: ::prost::alloc::vec::Vec<::prost_types::Any>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceDescriptor {
#[prost(string, tag="1")]
pub r#type: ::prost::alloc::string::String,
#[prost(string, repeated, tag="2")]
pub pattern: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag="3")]
pub name_field: ::prost::alloc::string::String,
#[prost(enumeration="resource_descriptor::History", tag="4")]
pub history: i32,
#[prost(string, tag="5")]
pub plural: ::prost::alloc::string::String,
#[prost(string, tag="6")]
pub singular: ::prost::alloc::string::String,
#[prost(enumeration="resource_descriptor::Style", repeated, tag="10")]
pub style: ::prost::alloc::vec::Vec<i32>,
}
pub mod resource_descriptor {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum History {
Unspecified = 0,
OriginallySinglePattern = 1,
FutureMultiPattern = 2,
}
impl History {
pub fn as_str_name(&self) -> &'static str {
match self {
History::Unspecified => "HISTORY_UNSPECIFIED",
History::OriginallySinglePattern => "ORIGINALLY_SINGLE_PATTERN",
History::FutureMultiPattern => "FUTURE_MULTI_PATTERN",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"HISTORY_UNSPECIFIED" => Some(Self::Unspecified),
"ORIGINALLY_SINGLE_PATTERN" => Some(Self::OriginallySinglePattern),
"FUTURE_MULTI_PATTERN" => Some(Self::FutureMultiPattern),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Style {
Unspecified = 0,
DeclarativeFriendly = 1,
}
impl Style {
pub fn as_str_name(&self) -> &'static str {
match self {
Style::Unspecified => "STYLE_UNSPECIFIED",
Style::DeclarativeFriendly => "DECLARATIVE_FRIENDLY",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"STYLE_UNSPECIFIED" => Some(Self::Unspecified),
"DECLARATIVE_FRIENDLY" => Some(Self::DeclarativeFriendly),
_ => None,
}
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceReference {
#[prost(string, tag="1")]
pub r#type: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub child_type: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoutingRule {
#[prost(message, repeated, tag="2")]
pub routing_parameters: ::prost::alloc::vec::Vec<RoutingParameter>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoutingParameter {
#[prost(string, tag="1")]
pub field: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub path_template: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Visibility {
#[prost(message, repeated, tag="1")]
pub rules: ::prost::alloc::vec::Vec<VisibilityRule>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VisibilityRule {
#[prost(string, tag="1")]
pub selector: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub restriction: ::prost::alloc::string::String,
}