#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigMain {
#[prost(string, optional, tag = "1")]
pub env: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub site_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub site_url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "5")]
pub enable_link_previews: ::core::option::Option<bool>,
#[prost(string, optional, tag = "6")]
pub restrict_link_previews: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "7")]
pub enable_client_performance_debugging: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "8")]
pub enable_gif_picker: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "9")]
pub enable_custom_emoji: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "10")]
pub enable_emoji_picker: ::core::option::Option<bool>,
#[prost(int64, optional, tag = "11")]
pub time_between_user_typing_updates_milliseconds: ::core::option::Option<i64>,
#[prost(bool, optional, tag = "12")]
pub enable_file_search: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "13")]
pub enable_user_typing_messages: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "14")]
pub enable_user_statuses: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "15")]
pub enable_email_invitations: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "16")]
pub enable_svgs: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "17")]
pub allow_persistent_notifications: ::core::option::Option<bool>,
#[prost(int32, optional, tag = "18")]
pub persistent_notification_interval_minutes: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "19")]
pub persistent_notification_max_count: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "20")]
pub persistent_notification_max_recipients: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "21")]
pub feature_flag_sync_interval_seconds: ::core::option::Option<i32>,
#[prost(bool, optional, tag = "22")]
pub allow_synced_drafts: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigServices {
#[prost(string, optional, tag = "1")]
pub common_service_grpc_url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub user_service_grpc_url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub products_service_grpc_url: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "4")]
pub jaeger_collector_url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "5")]
pub common_service_prometheus_url: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "6")]
pub user_service_prometheus_url: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "7")]
pub products_service_prometheus_url: ::core::option::Option<
::prost::alloc::string::String,
>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigSecurity {
#[prost(map = "string, string", tag = "1")]
pub restricted_usernames: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(int32, optional, tag = "2")]
pub maximum_login_attempts: ::core::option::Option<i32>,
#[prost(bool, optional, tag = "3")]
pub enable_insecure_outgoing_connections: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "4")]
pub enable_multifactor_authentication: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "5")]
pub enforce_multifactor_authentication: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "6")]
pub enable_oauth_service_provider: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "7")]
pub enable_outgoing_oauth_connections: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "8")]
pub terminate_sessions_on_password_change: ::core::option::Option<bool>,
#[prost(int32, optional, tag = "9")]
pub session_length_web_in_hours: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "10")]
pub session_length_mobile_in_hours: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "11")]
pub session_length_sso_in_hours: ::core::option::Option<i32>,
#[prost(string, optional, tag = "12")]
pub allow_cors_from: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "13")]
pub cors_exposed_headers: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "14")]
pub cors_allow_credentials: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "15")]
pub cors_debug: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "16")]
pub allow_cookies_for_subdomains: ::core::option::Option<bool>,
#[prost(int32, optional, tag = "17")]
pub session_cache_in_minutes: ::core::option::Option<i32>,
#[prost(string, optional, tag = "18")]
pub email_confirmation_url: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CacheConfig {
#[prost(string, optional, tag = "1")]
pub cache_type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub redis_address: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub redis_password: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "4")]
pub redis_db: ::core::option::Option<i32>,
#[prost(string, optional, tag = "5")]
pub redis_cache_prefix: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "6")]
pub disable_client_cache: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigMetrics {
#[prost(bool, optional, tag = "1")]
pub enable: ::core::option::Option<bool>,
#[prost(int32, optional, tag = "2")]
pub block_profile_rate: ::core::option::Option<i32>,
#[prost(string, optional, tag = "3")]
pub listen_address: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "4")]
pub enable_client_metrics: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "5")]
pub enable_notification_metrics: ::core::option::Option<bool>,
#[prost(string, repeated, tag = "6")]
pub client_side_user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigSso {
#[prost(bool, optional, tag = "1")]
pub enable: ::core::option::Option<bool>,
#[prost(string, optional, tag = "2")]
pub secret: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub scope: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "5")]
pub auth_endpoint: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "6")]
pub token_endpoint: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "7")]
pub user_api_endpoint: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "8")]
pub discovery_endpoint: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "9")]
pub button_text: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "10")]
pub button_color: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigSql {
#[prost(string, optional, tag = "1")]
pub driver_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub data_source: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "3")]
pub max_idle_conns: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "4")]
pub conn_max_lifetime_milliseconds: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "5")]
pub conn_max_idle_time_milliseconds: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "6")]
pub max_open_conns: ::core::option::Option<i32>,
#[prost(bool, optional, tag = "7")]
pub trace: ::core::option::Option<bool>,
#[prost(string, optional, tag = "8")]
pub at_rest_encrypt_key: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "9")]
pub query_timeout: ::core::option::Option<i32>,
#[prost(bool, optional, tag = "10")]
pub disable_database_search: ::core::option::Option<bool>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ConfigPassword {
#[prost(int32, optional, tag = "1")]
pub minimum_length: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "2")]
pub maximum_length: ::core::option::Option<i32>,
#[prost(bool, optional, tag = "3")]
pub lowercase: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "4")]
pub number: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "5")]
pub uppercase: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "6")]
pub symbol: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "7")]
pub enable_forgot_link: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigFile {
#[prost(bool, optional, tag = "1")]
pub enable_file_attachments: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "2")]
pub enable_mobile_upload: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "3")]
pub enable_mobile_download: ::core::option::Option<bool>,
#[prost(int64, optional, tag = "4")]
pub max_file_size: ::core::option::Option<i64>,
#[prost(int64, optional, tag = "5")]
pub max_image_resolution: ::core::option::Option<i64>,
#[prost(int64, optional, tag = "6")]
pub max_image_decoder_concurrency: ::core::option::Option<i64>,
#[prost(string, optional, tag = "7")]
pub driver_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "8")]
pub directory: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "9")]
pub enable_public_link: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "10")]
pub extract_content: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "11")]
pub archive_recursion: ::core::option::Option<bool>,
#[prost(string, optional, tag = "12")]
pub public_link_salt: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "13")]
pub initial_font: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "14")]
pub amazon_s3_access_key_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "15")]
pub amazon_s3_secret_access_key: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "16")]
pub amazon_s3_bucket: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "17")]
pub amazon_s3_path_prefix: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "18")]
pub amazon_s3_region: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "19")]
pub amazon_s3_endpoint: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "20")]
pub amazon_s3_ssl: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "21")]
pub amazon_s3_sign_v2: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "22")]
pub amazon_s3_sse: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "23")]
pub amazon_s3_trace: ::core::option::Option<bool>,
#[prost(int64, optional, tag = "24")]
pub amazon_s3_request_timeout_milliseconds: ::core::option::Option<i64>,
#[prost(int64, optional, tag = "25")]
pub amazon_s3_upload_part_size_bytes: ::core::option::Option<i64>,
#[prost(string, optional, tag = "26")]
pub amazon_s3_storage_class: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigEmail {
#[prost(bool, optional, tag = "1")]
pub send_email_notifications: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "2")]
pub require_email_verification: ::core::option::Option<bool>,
#[prost(string, optional, tag = "3")]
pub feedback_email: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub reply_to_address: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "5")]
pub enable_smtp_auth: ::core::option::Option<bool>,
#[prost(string, optional, tag = "6")]
pub smtp_username: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "7")]
pub smtp_password: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "8")]
pub smtp_server: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "9")]
pub smtp_port: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "10")]
pub smtp_server_timeout: ::core::option::Option<i32>,
#[prost(string, optional, tag = "11")]
pub connection_security: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "12")]
pub send_push_notifications: ::core::option::Option<bool>,
#[prost(string, optional, tag = "13")]
pub push_notification_server: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "14")]
pub push_notification_contents: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(int32, optional, tag = "15")]
pub push_notification_buffer: ::core::option::Option<i32>,
#[prost(bool, optional, tag = "16")]
pub enable_email_batching: ::core::option::Option<bool>,
#[prost(int32, optional, tag = "17")]
pub email_batching_buffer_size: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "18")]
pub email_batching_interval: ::core::option::Option<i32>,
#[prost(bool, optional, tag = "19")]
pub skip_server_certificate_verification: ::core::option::Option<bool>,
#[prost(string, optional, tag = "20")]
pub email_notification_contents_type: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "21")]
pub login_button_color: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "22")]
pub login_button_border_color: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "23")]
pub login_button_text_color: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "24")]
pub rate_limiting_memory_size: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "25")]
pub rate_limiting_per_hour: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "26")]
pub rate_limiting_max_burst: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigRateLimit {
#[prost(bool, optional, tag = "1")]
pub enable: ::core::option::Option<bool>,
#[prost(int32, optional, tag = "2")]
pub per_sec: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "3")]
pub max_burst: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "4")]
pub memory_store_size: ::core::option::Option<i32>,
#[prost(bool, optional, tag = "5")]
pub vary_by_remote_addr: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "6")]
pub vary_by_user: ::core::option::Option<bool>,
#[prost(string, tag = "7")]
pub vary_by_header: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ConfigPrivacy {
#[prost(bool, optional, tag = "1")]
pub show_email_address: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "2")]
pub show_full_name: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigSupport {
#[prost(string, optional, tag = "1")]
pub terms_of_service_link: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub privacy_policy_link: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub about_link: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub help_link: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "5")]
pub report_a_problem_link: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "6")]
pub forgot_password_link: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "7")]
pub support_email: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigLocalization {
#[prost(string, optional, tag = "1")]
pub default_server_locale: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub default_client_locale: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub available_locales: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigLdap {
#[prost(bool, optional, tag = "1")]
pub enable: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "2")]
pub enable_sync: ::core::option::Option<bool>,
#[prost(string, optional, tag = "3")]
pub ldap_server: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "4")]
pub ldap_port: ::core::option::Option<i32>,
#[prost(string, optional, tag = "5")]
pub connection_security: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "6")]
pub base_dn: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "7")]
pub bind_username: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "8")]
pub bind_password: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "9")]
pub maximum_login_attempts: ::core::option::Option<i32>,
#[prost(string, optional, tag = "10")]
pub user_filter: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "11")]
pub group_filter: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "12")]
pub enable_admin_filter: ::core::option::Option<bool>,
#[prost(string, optional, tag = "13")]
pub admin_filter: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "14")]
pub group_display_name_attribute: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "15")]
pub group_id_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "16")]
pub first_name_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "17")]
pub last_name_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "18")]
pub email_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "19")]
pub username_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "20")]
pub nickname_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "21")]
pub id_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "22")]
pub position_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "23")]
pub login_id_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "24")]
pub picture_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "25")]
pub sync_interval_minutes: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "26")]
pub query_timeout: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "27")]
pub max_page_size: ::core::option::Option<i32>,
#[prost(string, optional, tag = "28")]
pub login_field_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "29")]
pub login_button_color: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "30")]
pub login_button_border_color: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "31")]
pub login_button_text_color: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigSaml {
#[prost(bool, optional, tag = "1")]
pub enable: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "2")]
pub enable_sync_with_ldap: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "3")]
pub enable_sync_with_ldap_include_auth: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "4")]
pub ignore_guests_ldap_sync: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "5")]
pub verify: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "6")]
pub encrypt: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "7")]
pub sign_request: ::core::option::Option<bool>,
#[prost(string, optional, tag = "8")]
pub idp_url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "9")]
pub idp_descriptor_url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "10")]
pub idp_metadata_url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "11")]
pub service_provider_identifier: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "12")]
pub assertion_consumer_service_url: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "13")]
pub signature_algorithm: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "14")]
pub canonical_algorithm: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "15")]
pub scoping_idp_provider_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "16")]
pub scoping_idp_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "17")]
pub idp_certificate_file: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "18")]
pub public_certificate_file: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "19")]
pub private_key_file: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "20")]
pub id_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "21")]
pub enable_admin_attribute: ::core::option::Option<bool>,
#[prost(string, optional, tag = "22")]
pub admin_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "23")]
pub first_name_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "24")]
pub last_name_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "25")]
pub email_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "26")]
pub username_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "27")]
pub nickname_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "28")]
pub locale_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "29")]
pub position_attribute: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "30")]
pub login_button_text: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "31")]
pub login_button_color: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "32")]
pub login_button_border_color: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "33")]
pub login_button_text_color: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigNativeApp {
#[prost(string, repeated, tag = "1")]
pub app_custom_url_schemes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub app_download_link: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub android_app_download_link: ::core::option::Option<
::prost::alloc::string::String,
>,
#[prost(string, optional, tag = "4")]
pub ios_app_download_link: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "5")]
pub mobile_external_browser: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "6")]
pub mobile_enable_biometrics: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "7")]
pub mobile_prevent_screen_capture: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "8")]
pub mobile_jailbreak_protection: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigMeilisearch {
#[prost(string, optional, tag = "1")]
pub server_url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub master_key: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "3")]
pub enable_indexing: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "4")]
pub enable_searching: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "5")]
pub enable_autocomplete: ::core::option::Option<bool>,
#[prost(int32, optional, tag = "6")]
pub batch_size: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "7")]
pub request_timeout_seconds: ::core::option::Option<i32>,
#[prost(string, optional, tag = "8")]
pub index_prefix: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "9")]
pub search_cutoff_ms: ::core::option::Option<i32>,
#[prost(bool, optional, tag = "10")]
pub enable_typo_tolerance: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigBleve {
#[prost(string, optional, tag = "1")]
pub index_dir: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "2")]
pub enable_indexing: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "3")]
pub enable_searching: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "4")]
pub enable_autocomplete: ::core::option::Option<bool>,
#[prost(int32, optional, tag = "5")]
pub bulk_indexing_time_window_seconds: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "6")]
pub batch_size: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigDataRetention {
#[prost(bool, optional, tag = "1")]
pub enable_message_deletion: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "2")]
pub enable_file_deletion: ::core::option::Option<bool>,
#[prost(bool, optional, tag = "3")]
pub enable_boards_deletion: ::core::option::Option<bool>,
#[prost(int32, optional, tag = "4")]
pub message_retention_hours: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "5")]
pub file_retention_hours: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "6")]
pub boards_retention_days: ::core::option::Option<i32>,
#[prost(string, optional, tag = "7")]
pub deletion_job_start_time: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "8")]
pub batch_size: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "9")]
pub time_between_batches_milliseconds: ::core::option::Option<i32>,
#[prost(int32, optional, tag = "10")]
pub retention_ids_batch_size: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigImageProxy {
#[prost(bool, optional, tag = "1")]
pub enable: ::core::option::Option<bool>,
#[prost(string, optional, tag = "2")]
pub image_proxy_type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub remote_image_proxy_url: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub remote_image_proxy_options: ::core::option::Option<
::prost::alloc::string::String,
>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Config {
#[prost(message, optional, tag = "1")]
pub main: ::core::option::Option<ConfigMain>,
#[prost(message, optional, tag = "2")]
pub services: ::core::option::Option<ConfigServices>,
#[prost(message, optional, tag = "3")]
pub security: ::core::option::Option<ConfigSecurity>,
#[prost(message, optional, tag = "4")]
pub cache: ::core::option::Option<CacheConfig>,
#[prost(message, optional, tag = "5")]
pub metrics: ::core::option::Option<ConfigMetrics>,
#[prost(message, optional, tag = "6")]
pub sso: ::core::option::Option<ConfigSso>,
#[prost(message, optional, tag = "7")]
pub sql: ::core::option::Option<ConfigSql>,
#[prost(message, optional, tag = "8")]
pub password: ::core::option::Option<ConfigPassword>,
#[prost(message, optional, tag = "9")]
pub file: ::core::option::Option<ConfigFile>,
#[prost(message, optional, tag = "10")]
pub email: ::core::option::Option<ConfigEmail>,
#[prost(message, optional, tag = "11")]
pub rate_limit: ::core::option::Option<ConfigRateLimit>,
#[prost(message, optional, tag = "12")]
pub privacy: ::core::option::Option<ConfigPrivacy>,
#[prost(message, optional, tag = "13")]
pub support: ::core::option::Option<ConfigSupport>,
#[prost(message, optional, tag = "14")]
pub localization: ::core::option::Option<ConfigLocalization>,
#[prost(message, optional, tag = "15")]
pub ldap: ::core::option::Option<ConfigLdap>,
#[prost(message, optional, tag = "16")]
pub saml: ::core::option::Option<ConfigSaml>,
#[prost(message, optional, tag = "17")]
pub native_app: ::core::option::Option<ConfigNativeApp>,
#[prost(message, optional, tag = "18")]
pub meilisearch: ::core::option::Option<ConfigMeilisearch>,
#[prost(message, optional, tag = "19")]
pub bleve: ::core::option::Option<ConfigBleve>,
#[prost(message, optional, tag = "20")]
pub data_retention: ::core::option::Option<ConfigDataRetention>,
#[prost(message, optional, tag = "21")]
pub image_proxy: ::core::option::Option<ConfigImageProxy>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ConfigGetRequest {}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigGetResponse {
#[prost(oneof = "config_get_response::Response", tags = "1, 2")]
pub response: ::core::option::Option<config_get_response::Response>,
}
pub mod config_get_response {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Response {
#[prost(message, tag = "1")]
Data(super::Config),
#[prost(message, tag = "2")]
Error(super::super::super::shared::v1::AppError),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigUpdateRequest {
#[prost(message, optional, tag = "1")]
pub config: ::core::option::Option<Config>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigUpdateResponse {
#[prost(oneof = "config_update_response::Response", tags = "1, 2")]
pub response: ::core::option::Option<config_update_response::Response>,
}
pub mod config_update_response {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Response {
#[prost(message, tag = "1")]
Data(super::Config),
#[prost(message, tag = "2")]
Error(super::super::super::shared::v1::AppError),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigListenerResponse {
#[prost(oneof = "config_listener_response::Response", tags = "1, 2")]
pub response: ::core::option::Option<config_listener_response::Response>,
}
pub mod config_listener_response {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Response {
#[prost(message, tag = "1")]
Data(super::Config),
#[prost(message, tag = "2")]
Error(super::super::super::shared::v1::AppError),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigListenerRequest {
#[prost(string, tag = "1")]
pub client_id: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TranslationsGetRequest {}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TranslationsGetResponse {
#[prost(map = "string, message", tag = "1")]
pub data: ::std::collections::HashMap<
::prost::alloc::string::String,
TranslationElements,
>,
#[prost(message, optional, tag = "2")]
pub error: ::core::option::Option<super::super::shared::v1::AppError>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TranslationsForLangGetRequest {
#[prost(string, tag = "1")]
pub lang: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TranslationsForLangGetResponse {
#[prost(oneof = "translations_for_lang_get_response::Response", tags = "1, 2")]
pub response: ::core::option::Option<translations_for_lang_get_response::Response>,
}
pub mod translations_for_lang_get_response {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Response {
#[prost(message, tag = "1")]
Data(super::TranslationElements),
#[prost(message, tag = "2")]
Error(super::super::super::shared::v1::AppError),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TranslationElement {
#[prost(string, tag = "1")]
pub id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub tr: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TranslationElements {
#[prost(message, repeated, tag = "1")]
pub trans: ::prost::alloc::vec::Vec<TranslationElement>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PingRequest {}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PingResponse {}
pub mod common_service_client {
#![allow(
unused_variables,
dead_code,
missing_docs,
clippy::wildcard_imports,
clippy::let_unit_value,
)]
use tonic::codegen::*;
use tonic::codegen::http::Uri;
#[derive(Debug, Clone)]
pub struct CommonServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl CommonServiceClient<tonic::transport::Channel> {
pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
where
D: TryInto<tonic::transport::Endpoint>,
D::Error: Into<StdError>,
{
let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
Ok(Self::new(conn))
}
}
impl<T> CommonServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::Body>,
T::Error: Into<StdError>,
T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
<T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_origin(inner: T, origin: Uri) -> Self {
let inner = tonic::client::Grpc::with_origin(inner, origin);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> CommonServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T::ResponseBody: Default,
T: tonic::codegen::Service<
http::Request<tonic::body::Body>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<
http::Request<tonic::body::Body>,
>>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
{
CommonServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.send_compressed(encoding);
self
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.inner = self.inner.accept_compressed(encoding);
self
}
#[must_use]
pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
self.inner = self.inner.max_decoding_message_size(limit);
self
}
#[must_use]
pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
self.inner = self.inner.max_encoding_message_size(limit);
self
}
pub async fn ping(
&mut self,
request: impl tonic::IntoRequest<super::PingRequest>,
) -> std::result::Result<tonic::Response<super::PingResponse>, tonic::Status> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/common.v1.CommonService/Ping",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(GrpcMethod::new("common.v1.CommonService", "Ping"));
self.inner.unary(req, path, codec).await
}
pub async fn config_get(
&mut self,
request: impl tonic::IntoRequest<super::ConfigGetRequest>,
) -> std::result::Result<
tonic::Response<super::ConfigGetResponse>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/common.v1.CommonService/ConfigGet",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(GrpcMethod::new("common.v1.CommonService", "ConfigGet"));
self.inner.unary(req, path, codec).await
}
pub async fn config_update(
&mut self,
request: impl tonic::IntoRequest<super::ConfigUpdateRequest>,
) -> std::result::Result<
tonic::Response<super::ConfigUpdateResponse>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/common.v1.CommonService/ConfigUpdate",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(GrpcMethod::new("common.v1.CommonService", "ConfigUpdate"));
self.inner.unary(req, path, codec).await
}
pub async fn config_listener(
&mut self,
request: impl tonic::IntoRequest<super::ConfigListenerRequest>,
) -> std::result::Result<
tonic::Response<tonic::codec::Streaming<super::ConfigListenerResponse>>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/common.v1.CommonService/ConfigListener",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(GrpcMethod::new("common.v1.CommonService", "ConfigListener"));
self.inner.server_streaming(req, path, codec).await
}
pub async fn translations_get(
&mut self,
request: impl tonic::IntoRequest<super::TranslationsGetRequest>,
) -> std::result::Result<
tonic::Response<super::TranslationsGetResponse>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/common.v1.CommonService/TranslationsGet",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(GrpcMethod::new("common.v1.CommonService", "TranslationsGet"));
self.inner.unary(req, path, codec).await
}
pub async fn translations_for_lang_get(
&mut self,
request: impl tonic::IntoRequest<super::TranslationsForLangGetRequest>,
) -> std::result::Result<
tonic::Response<super::TranslationsForLangGetResponse>,
tonic::Status,
> {
self.inner
.ready()
.await
.map_err(|e| {
tonic::Status::unknown(
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/common.v1.CommonService/TranslationsForLangGet",
);
let mut req = request.into_request();
req.extensions_mut()
.insert(
GrpcMethod::new("common.v1.CommonService", "TranslationsForLangGet"),
);
self.inner.unary(req, path, codec).await
}
}
}
pub mod common_service_server {
#![allow(
unused_variables,
dead_code,
missing_docs,
clippy::wildcard_imports,
clippy::let_unit_value,
)]
use tonic::codegen::*;
#[async_trait]
pub trait CommonService: std::marker::Send + std::marker::Sync + 'static {
async fn ping(
&self,
request: tonic::Request<super::PingRequest>,
) -> std::result::Result<tonic::Response<super::PingResponse>, tonic::Status>;
async fn config_get(
&self,
request: tonic::Request<super::ConfigGetRequest>,
) -> std::result::Result<
tonic::Response<super::ConfigGetResponse>,
tonic::Status,
>;
async fn config_update(
&self,
request: tonic::Request<super::ConfigUpdateRequest>,
) -> std::result::Result<
tonic::Response<super::ConfigUpdateResponse>,
tonic::Status,
>;
type ConfigListenerStream: tonic::codegen::tokio_stream::Stream<
Item = std::result::Result<super::ConfigListenerResponse, tonic::Status>,
>
+ std::marker::Send
+ 'static;
async fn config_listener(
&self,
request: tonic::Request<super::ConfigListenerRequest>,
) -> std::result::Result<
tonic::Response<Self::ConfigListenerStream>,
tonic::Status,
>;
async fn translations_get(
&self,
request: tonic::Request<super::TranslationsGetRequest>,
) -> std::result::Result<
tonic::Response<super::TranslationsGetResponse>,
tonic::Status,
>;
async fn translations_for_lang_get(
&self,
request: tonic::Request<super::TranslationsForLangGetRequest>,
) -> std::result::Result<
tonic::Response<super::TranslationsForLangGetResponse>,
tonic::Status,
>;
}
#[derive(Debug)]
pub struct CommonServiceServer<T> {
inner: Arc<T>,
accept_compression_encodings: EnabledCompressionEncodings,
send_compression_encodings: EnabledCompressionEncodings,
max_decoding_message_size: Option<usize>,
max_encoding_message_size: Option<usize>,
}
impl<T> CommonServiceServer<T> {
pub fn new(inner: T) -> Self {
Self::from_arc(Arc::new(inner))
}
pub fn from_arc(inner: Arc<T>) -> Self {
Self {
inner,
accept_compression_encodings: Default::default(),
send_compression_encodings: Default::default(),
max_decoding_message_size: None,
max_encoding_message_size: None,
}
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> InterceptedService<Self, F>
where
F: tonic::service::Interceptor,
{
InterceptedService::new(Self::new(inner), interceptor)
}
#[must_use]
pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.accept_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
self.send_compression_encodings.enable(encoding);
self
}
#[must_use]
pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
self.max_decoding_message_size = Some(limit);
self
}
#[must_use]
pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
self.max_encoding_message_size = Some(limit);
self
}
}
impl<T, B> tonic::codegen::Service<http::Request<B>> for CommonServiceServer<T>
where
T: CommonService,
B: Body + std::marker::Send + 'static,
B::Error: Into<StdError> + std::marker::Send + 'static,
{
type Response = http::Response<tonic::body::Body>;
type Error = std::convert::Infallible;
type Future = BoxFuture<Self::Response, Self::Error>;
fn poll_ready(
&mut self,
_cx: &mut Context<'_>,
) -> Poll<std::result::Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: http::Request<B>) -> Self::Future {
match req.uri().path() {
"/common.v1.CommonService/Ping" => {
#[allow(non_camel_case_types)]
struct PingSvc<T: CommonService>(pub Arc<T>);
impl<
T: CommonService,
> tonic::server::UnaryService<super::PingRequest> for PingSvc<T> {
type Response = super::PingResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::PingRequest>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as CommonService>::ping(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = PingSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/common.v1.CommonService/ConfigGet" => {
#[allow(non_camel_case_types)]
struct ConfigGetSvc<T: CommonService>(pub Arc<T>);
impl<
T: CommonService,
> tonic::server::UnaryService<super::ConfigGetRequest>
for ConfigGetSvc<T> {
type Response = super::ConfigGetResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::ConfigGetRequest>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as CommonService>::config_get(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = ConfigGetSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/common.v1.CommonService/ConfigUpdate" => {
#[allow(non_camel_case_types)]
struct ConfigUpdateSvc<T: CommonService>(pub Arc<T>);
impl<
T: CommonService,
> tonic::server::UnaryService<super::ConfigUpdateRequest>
for ConfigUpdateSvc<T> {
type Response = super::ConfigUpdateResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::ConfigUpdateRequest>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as CommonService>::config_update(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = ConfigUpdateSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/common.v1.CommonService/ConfigListener" => {
#[allow(non_camel_case_types)]
struct ConfigListenerSvc<T: CommonService>(pub Arc<T>);
impl<
T: CommonService,
> tonic::server::ServerStreamingService<super::ConfigListenerRequest>
for ConfigListenerSvc<T> {
type Response = super::ConfigListenerResponse;
type ResponseStream = T::ConfigListenerStream;
type Future = BoxFuture<
tonic::Response<Self::ResponseStream>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::ConfigListenerRequest>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as CommonService>::config_listener(&inner, request).await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = ConfigListenerSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.server_streaming(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/common.v1.CommonService/TranslationsGet" => {
#[allow(non_camel_case_types)]
struct TranslationsGetSvc<T: CommonService>(pub Arc<T>);
impl<
T: CommonService,
> tonic::server::UnaryService<super::TranslationsGetRequest>
for TranslationsGetSvc<T> {
type Response = super::TranslationsGetResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::TranslationsGetRequest>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as CommonService>::translations_get(&inner, request)
.await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = TranslationsGetSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
"/common.v1.CommonService/TranslationsForLangGet" => {
#[allow(non_camel_case_types)]
struct TranslationsForLangGetSvc<T: CommonService>(pub Arc<T>);
impl<
T: CommonService,
> tonic::server::UnaryService<super::TranslationsForLangGetRequest>
for TranslationsForLangGetSvc<T> {
type Response = super::TranslationsForLangGetResponse;
type Future = BoxFuture<
tonic::Response<Self::Response>,
tonic::Status,
>;
fn call(
&mut self,
request: tonic::Request<super::TranslationsForLangGetRequest>,
) -> Self::Future {
let inner = Arc::clone(&self.0);
let fut = async move {
<T as CommonService>::translations_for_lang_get(
&inner,
request,
)
.await
};
Box::pin(fut)
}
}
let accept_compression_encodings = self.accept_compression_encodings;
let send_compression_encodings = self.send_compression_encodings;
let max_decoding_message_size = self.max_decoding_message_size;
let max_encoding_message_size = self.max_encoding_message_size;
let inner = self.inner.clone();
let fut = async move {
let method = TranslationsForLangGetSvc(inner);
let codec = tonic::codec::ProstCodec::default();
let mut grpc = tonic::server::Grpc::new(codec)
.apply_compression_config(
accept_compression_encodings,
send_compression_encodings,
)
.apply_max_message_size_config(
max_decoding_message_size,
max_encoding_message_size,
);
let res = grpc.unary(method, req).await;
Ok(res)
};
Box::pin(fut)
}
_ => {
Box::pin(async move {
let mut response = http::Response::new(
tonic::body::Body::default(),
);
let headers = response.headers_mut();
headers
.insert(
tonic::Status::GRPC_STATUS,
(tonic::Code::Unimplemented as i32).into(),
);
headers
.insert(
http::header::CONTENT_TYPE,
tonic::metadata::GRPC_CONTENT_TYPE,
);
Ok(response)
})
}
}
}
}
impl<T> Clone for CommonServiceServer<T> {
fn clone(&self) -> Self {
let inner = self.inner.clone();
Self {
inner,
accept_compression_encodings: self.accept_compression_encodings,
send_compression_encodings: self.send_compression_encodings,
max_decoding_message_size: self.max_decoding_message_size,
max_encoding_message_size: self.max_encoding_message_size,
}
}
}
pub const SERVICE_NAME: &str = "common.v1.CommonService";
impl<T> tonic::server::NamedService for CommonServiceServer<T> {
const NAME: &'static str = SERVICE_NAME;
}
}