11@startuml classes
22set namespaceSeparator none
33class "A2AStateConfiguration" as src.models.config.A2AStateConfiguration {
4- config
4+ config : Optional[SQLiteDatabaseConfiguration | PostgreSQLDatabaseConfiguration]
55 postgres : Optional[PostgreSQLDatabaseConfiguration]
66 sqlite : Optional[SQLiteDatabaseConfiguration]
7- storage_type
7+ storage_type : Literal['memory', 'sqlite', 'postgres']
88 check_a2a_state_configuration() -> Self
99}
1010class "APIKeyTokenConfiguration" as src.models.config.APIKeyTokenConfiguration {
11- api_key
11+ api_key : Optional[SecretStr]
1212}
1313class "AccessRule" as src.models.config.AccessRule {
14- actions : list[Action]
15- role : str
14+ actions : Optional[ list[Action] ]
15+ role : Optional[ str]
1616}
1717class "Action" as src.models.config.Action {
1818 name
1919}
2020class "AuthenticationConfiguration" as src.models.config.AuthenticationConfiguration {
2121 api_key_config : Optional[APIKeyTokenConfiguration]
22- api_key_configuration
22+ api_key_configuration : APIKeyTokenConfiguration
2323 jwk_config : Optional[JwkConfiguration]
24- jwk_configuration
24+ jwk_configuration : JwkConfiguration
2525 k8s_ca_cert_path : Optional[FilePath]
2626 k8s_cluster_api : Optional[AnyHttpUrl]
2727 module : str
2828 rh_identity_config : Optional[RHIdentityConfiguration]
29- rh_identity_configuration
30- skip_for_health_probes : bool
29+ rh_identity_configuration : RHIdentityConfiguration
30+ skip_for_health_probes : Optional[ bool]
3131 skip_tls_verification : bool
3232 check_authentication_model() -> Self
3333}
3434class "AuthorizationConfiguration" as src.models.config.AuthorizationConfiguration {
35- access_rules : list[AccessRule]
35+ access_rules : Optional[ list[AccessRule] ]
3636}
3737class "AzureEntraIdConfiguration" as src.models.config.AzureEntraIdConfiguration {
38- client_id
39- client_secret
40- scope : str
41- tenant_id
38+ client_id : SecretStr
39+ client_secret : SecretStr
40+ scope : Optional[ str]
41+ tenant_id : SecretStr
4242}
4343class "ByokRag" as src.models.config.ByokRag {
44- db_path : str
45- embedding_dimension
46- embedding_model : str
47- rag_id : str
48- rag_type : str
49- score_multiplier : float
50- vector_db_id : str
44+ db_path : Optional[ str]
45+ embedding_dimension : Optional[PositiveInt]
46+ embedding_model : Optional[ str]
47+ rag_id : Optional[ str]
48+ rag_type : Optional[ str]
49+ score_multiplier : Optional[ float]
50+ vector_db_id : Optional[ str]
5151}
5252class "CORSConfiguration" as src.models.config.CORSConfiguration {
53- allow_credentials : bool
54- allow_headers : list[str]
55- allow_methods : list[str]
56- allow_origins : list[str]
53+ allow_credentials : Optional[ bool]
54+ allow_headers : Optional[ list[str] ]
55+ allow_methods : Optional[ list[str] ]
56+ allow_origins : Optional[ list[str] ]
5757 check_cors_configuration() -> Self
5858}
5959class "Configuration" as src.models.config.Configuration {
60- a2a_state
61- authentication
60+ a2a_state : Optional[A2AStateConfiguration]
61+ authentication : Optional[AuthenticationConfiguration]
6262 authorization : Optional[AuthorizationConfiguration]
6363 azure_entra_id : Optional[AzureEntraIdConfiguration]
64- byok_rag : list[ByokRag]
65- conversation_cache
64+ byok_rag : Optional[ list[ByokRag] ]
65+ conversation_cache : Optional[ConversationHistoryConfiguration]
6666 customization : Optional[Customization]
67- database
68- deployment_environment : str
69- inference
70- llama_stack
71- mcp_servers : list[ModelContextProtocolServer]
72- name : str
73- okp
74- quota_handlers
75- rag
76- service
67+ database : Optional[DatabaseConfiguration]
68+ deployment_environment : Optional[ str]
69+ inference : Optional[InferenceConfiguration]
70+ llama_stack : Optional[LlamaStackConfiguration]
71+ mcp_servers : Optional[ list[ModelContextProtocolServer] ]
72+ name : Optional[ str]
73+ okp : Optional[OkpConfiguration]
74+ quota_handlers : Optional[QuotaHandlersConfiguration]
75+ rag : Optional[RagConfiguration]
76+ service : Optional[ServiceConfiguration]
7777 splunk : Optional[SplunkConfiguration]
78- user_data_collection
78+ user_data_collection : Optional[UserDataCollection]
7979 dump(filename: str | Path) -> None
8080 validate_mcp_auth_headers() -> Self
8181}
8282class "ConfigurationBase" as src.models.config.ConfigurationBase {
83- model_config
83+ model_config : ConfigDict
8484}
8585class "ConversationHistoryConfiguration" as src.models.config.ConversationHistoryConfiguration {
8686 memory : Optional[InMemoryCacheConfig]
@@ -90,13 +90,14 @@ class "ConversationHistoryConfiguration" as src.models.config.ConversationHistor
9090 check_cache_configuration() -> Self
9191}
9292class "CustomProfile" as src.models.config.CustomProfile {
93- path : str
94- prompts : dict[str, str]
93+ path : Optional[ str]
94+ prompts : Optional[ dict[str, str] ]
9595 get_prompts() -> dict[str, str]
9696}
9797class "Customization" as src.models.config.Customization {
9898 agent_card_config : Optional[dict[str, Any]]
9999 agent_card_path : Optional[FilePath]
100+ allow_verbose_infer : bool
100101 custom_profile : Optional[CustomProfile]
101102 disable_query_system_prompt : bool
102103 disable_shield_ids_override : bool
@@ -106,14 +107,14 @@ class "Customization" as src.models.config.Customization {
106107 check_customization_model() -> Self
107108}
108109class "DatabaseConfiguration" as src.models.config.DatabaseConfiguration {
109- config
110- db_type
110+ config : SQLiteDatabaseConfiguration | PostgreSQLDatabaseConfiguration
111+ db_type : Literal['sqlite', 'postgres']
111112 postgres : Optional[PostgreSQLDatabaseConfiguration]
112113 sqlite : Optional[SQLiteDatabaseConfiguration]
113114 check_database_configuration() -> Self
114115}
115116class "InMemoryCacheConfig" as src.models.config.InMemoryCacheConfig {
116- max_entries
117+ max_entries : Optional[PositiveInt]
117118}
118119class "InferenceConfiguration" as src.models.config.InferenceConfiguration {
119120 default_model : Optional[str]
@@ -124,111 +125,113 @@ class "JsonPathOperator" as src.models.config.JsonPathOperator {
124125 name
125126}
126127class "JwkConfiguration" as src.models.config.JwkConfiguration {
127- jwt_configuration
128- url
128+ jwt_configuration : Optional[JwtConfiguration]
129+ url : Optional[AnyHttpUrl]
129130}
130131class "JwtConfiguration" as src.models.config.JwtConfiguration {
131- role_rules : list[JwtRoleRule]
132- user_id_claim : str
133- username_claim : str
132+ role_rules : Optional[ list[JwtRoleRule] ]
133+ user_id_claim : Optional[ str]
134+ username_claim : Optional[ str]
134135}
135136class "JwtRoleRule" as src.models.config.JwtRoleRule {
136- compiled_regex
137- jsonpath : str
138- negate : bool
139- operator
140- roles : list[str]
141- value : Any
137+ compiled_regex : Optional[Pattern[str]]
138+ jsonpath : Optional[ str]
139+ negate : Optional[ bool]
140+ operator : Optional[JsonPathOperator]
141+ roles : Optional[ list[str] ]
142+ value : Optional[ Any]
142143 check_jsonpath() -> Self
143144 check_regex_pattern() -> Self
144145 check_roles() -> Self
145146}
146147class "LlamaStackConfiguration" as src.models.config.LlamaStackConfiguration {
147148 api_key : Optional[SecretStr]
148149 library_client_config_path : Optional[str]
149- timeout
150+ timeout : Optional[PositiveInt]
150151 url : Optional[AnyHttpUrl]
151152 use_as_library_client : Optional[bool]
152153 check_llama_stack_model() -> Self
153154}
154155class "ModelContextProtocolServer" as src.models.config.ModelContextProtocolServer {
155- authorization_headers : dict[str, str]
156- headers : list[str]
157- name : str
158- provider_id : str
159- resolved_authorization_headers
156+ authorization_headers : Optional[ dict[str, str] ]
157+ headers : Optional[ list[str] ]
158+ name : Optional[ str]
159+ provider_id : Optional[ str]
160+ resolved_authorization_headers : dict[str, str]
160161 timeout : Optional[PositiveInt]
161- url : str
162+ url : Optional[ str]
162163 resolve_auth_headers() -> Self
163164 validate_headers(value: list[str]) -> list[str]
164165}
165166class "OkpConfiguration" as src.models.config.OkpConfiguration {
166167 chunk_filter_query : Optional[str]
167- offline : bool
168+ offline : Optional[bool]
169+ rhokp_url : Optional[str]
168170}
169171class "PostgreSQLDatabaseConfiguration" as src.models.config.PostgreSQLDatabaseConfiguration {
170172 ca_cert_path : Optional[FilePath]
171- db : str
172- gss_encmode : str
173- host : str
173+ db : Optional[ str]
174+ gss_encmode : Optional[ str]
175+ host : Optional[ str]
174176 namespace : Optional[str]
175- password
176- port
177- ssl_mode : str
178- user : str
177+ password : Optional[SecretStr]
178+ port : Optional[PositiveInt]
179+ ssl_mode : Optional[ str]
180+ user : Optional[ str]
179181 check_postgres_configuration() -> Self
180182}
181183class "QuotaHandlersConfiguration" as src.models.config.QuotaHandlersConfiguration {
182- enable_token_history : bool
183- limiters : list[QuotaLimiterConfiguration]
184+ enable_token_history : Optional[ bool]
185+ limiters : Optional[ list[QuotaLimiterConfiguration] ]
184186 postgres : Optional[PostgreSQLDatabaseConfiguration]
185- scheduler
187+ scheduler : Optional[QuotaSchedulerConfiguration]
186188 sqlite : Optional[SQLiteDatabaseConfiguration]
187189}
188190class "QuotaLimiterConfiguration" as src.models.config.QuotaLimiterConfiguration {
189- initial_quota
190- name : str
191- period : str
192- quota_increase
193- type : Literal['user_limiter', 'cluster_limiter']
191+ initial_quota : Optional[NonNegativeInt]
192+ name : Optional[ str]
193+ period : Optional[ str]
194+ quota_increase : Optional[NonNegativeInt]
195+ type : Optional[ Literal['user_limiter', 'cluster_limiter'] ]
194196}
195197class "QuotaSchedulerConfiguration" as src.models.config.QuotaSchedulerConfiguration {
196- database_reconnection_count
197- database_reconnection_delay
198- period
198+ database_reconnection_count : Optional[PositiveInt]
199+ database_reconnection_delay : Optional[PositiveInt]
200+ period : Optional[PositiveInt]
199201}
200202class "RHIdentityConfiguration" as src.models.config.RHIdentityConfiguration {
203+ max_header_size : Optional[PositiveInt]
201204 required_entitlements : Optional[list[str]]
202205}
203206class "RagConfiguration" as src.models.config.RagConfiguration {
204- inline : list[str]
205- tool : list[str]
207+ inline : Optional[ list[str] ]
208+ tool : Optional[ list[str] ]
206209}
207210class "SQLiteDatabaseConfiguration" as src.models.config.SQLiteDatabaseConfiguration {
208- db_path : str
211+ db_path : Optional[ str]
209212}
210213class "ServiceConfiguration" as src.models.config.ServiceConfiguration {
211- access_log : bool
212- auth_enabled : bool
214+ access_log : Optional[ bool]
215+ auth_enabled : Optional[ bool]
213216 base_url : Optional[str]
214- color_log : bool
215- cors
216- host : str
217- port
218- root_path : str
219- tls_config
220- workers
217+ color_log : Optional[ bool]
218+ cors : Optional[CORSConfiguration]
219+ host : Optional[ str]
220+ port : Optional[PositiveInt]
221+ root_path : Optional[ str]
222+ tls_config : Optional[TLSConfiguration]
223+ workers : Optional[PositiveInt]
221224 check_service_configuration() -> Self
222225 validate_root_path(value: str) -> str
223226}
224227class "SplunkConfiguration" as src.models.config.SplunkConfiguration {
225- enabled : bool
228+ enabled : Optional[ bool]
226229 index : Optional[str]
227- source : str
228- timeout
230+ source : Optional[ str]
231+ timeout : Optional[PositiveInt]
229232 token_path : Optional[FilePath]
230233 url : Optional[str]
231- verify_ssl : bool
234+ verify_ssl : Optional[ bool]
232235 check_splunk_configuration() -> Self
233236}
234237class "TLSConfiguration" as src.models.config.TLSConfiguration {
@@ -238,9 +241,9 @@ class "TLSConfiguration" as src.models.config.TLSConfiguration {
238241 check_tls_configuration() -> Self
239242}
240243class "UserDataCollection" as src.models.config.UserDataCollection {
241- feedback_enabled : bool
244+ feedback_enabled : Optional[ bool]
242245 feedback_storage : Optional[str]
243- transcripts_enabled : bool
246+ transcripts_enabled : Optional[ bool]
244247 transcripts_storage : Optional[str]
245248 check_storage_location_is_set_when_needed() -> Self
246249}
@@ -275,22 +278,6 @@ src.models.config.ServiceConfiguration --|> src.models.config.ConfigurationBase
275278src . models . config . SplunkConfiguration --|> src . models . config . ConfigurationBase
276279src . models . config . TLSConfiguration --|> src . models . config . ConfigurationBase
277280src . models . config . UserDataCollection --|> src . models . config . ConfigurationBase
278- src . models . config . A2AStateConfiguration --* src . models . config . Configuration : a2a_state
279- src . models . config . AuthenticationConfiguration --* src . models . config . Configuration : authentication
280- src . models . config . CORSConfiguration --* src . models . config . ServiceConfiguration : cors
281- src . models . config . ConversationHistoryConfiguration --* src . models . config . Configuration : conversation_cache
282281src . models . config . CustomProfile --* src . models . config . Customization : custom_profile
283- src . models . config . DatabaseConfiguration --* src . models . config . Configuration : database
284- src . models . config . InferenceConfiguration --* src . models . config . Configuration : inference
285- src . models . config . JsonPathOperator --* src . models . config . JwtRoleRule : operator
286- src . models . config . JwtConfiguration --* src . models . config . JwkConfiguration : jwt_configuration
287- src . models . config . LlamaStackConfiguration --* src . models . config . Configuration : llama_stack
288- src . models . config . OkpConfiguration --* src . models . config . Configuration : okp
289- src . models . config . QuotaHandlersConfiguration --* src . models . config . Configuration : quota_handlers
290- src . models . config . QuotaSchedulerConfiguration --* src . models . config . QuotaHandlersConfiguration : scheduler
291- src . models . config . RagConfiguration --* src . models . config . Configuration : rag
292282src . models . config . SQLiteDatabaseConfiguration --* src . models . config . DatabaseConfiguration : sqlite
293- src . models . config . ServiceConfiguration --* src . models . config . Configuration : service
294- src . models . config . TLSConfiguration --* src . models . config . ServiceConfiguration : tls_config
295- src . models . config . UserDataCollection --* src . models . config . Configuration : user_data_collection
296283@enduml
0 commit comments