qanswer_sdk 3.1509.0__py3-none-any.whl → 3.1510.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. qanswer_sdk/__init__.py +31 -24
  2. qanswer_sdk/api/__init__.py +0 -1
  3. qanswer_sdk/api/admin_api.py +914 -142
  4. qanswer_sdk/api/ai_assistant_access_rights_api.py +883 -280
  5. qanswer_sdk/api/ai_assistant_api.py +289 -61
  6. qanswer_sdk/api/branding_api.py +6 -6
  7. qanswer_sdk/api/connector_website_api.py +287 -0
  8. qanswer_sdk/api/connectors_api.py +863 -11
  9. qanswer_sdk/api/connectors_data_api.py +28 -27
  10. qanswer_sdk/api/mcp_api.py +1103 -469
  11. qanswer_sdk/api/payment_api.py +3 -3
  12. qanswer_sdk/api/socket_api.py +0 -245
  13. qanswer_sdk/api/task_ai_excel_api.py +288 -0
  14. qanswer_sdk/api/task_report_copilot_api.py +49 -122
  15. qanswer_sdk/api/tool_embedder_api.py +552 -1
  16. qanswer_sdk/api/tool_llm_api.py +1059 -10
  17. qanswer_sdk/api/unit_organizations_api.py +1240 -165
  18. qanswer_sdk/api/unit_user_api.py +506 -0
  19. qanswer_sdk/api_client.py +1 -1
  20. qanswer_sdk/configuration.py +1 -1
  21. qanswer_sdk/models/__init__.py +30 -22
  22. qanswer_sdk/models/access_pdf_payload_model.py +6 -4
  23. qanswer_sdk/models/add_qn_a_request.py +5 -3
  24. qanswer_sdk/models/{assistant_template.py → ai_assistant_clone_response.py} +9 -19
  25. qanswer_sdk/models/ai_assistant_dto.py +4 -2
  26. qanswer_sdk/models/ai_assistant_filter_dto.py +3 -1
  27. qanswer_sdk/models/{user_dataset_access_control_origin_header.py → ai_assistant_restricted_domain.py} +8 -8
  28. qanswer_sdk/models/ai_assistant_share_response.py +93 -0
  29. qanswer_sdk/models/api_key_mcp_authentication_config.py +2 -2
  30. qanswer_sdk/models/assistant_template_filter_dto.py +93 -0
  31. qanswer_sdk/models/{relation_extraction_schema.py → assistant_template_with_tools_selection_dto.py} +26 -24
  32. qanswer_sdk/models/audio_file_upload_payload.py +4 -2
  33. qanswer_sdk/models/auto_bot_description_request.py +5 -3
  34. qanswer_sdk/models/chatbot_chat_payload.py +6 -2
  35. qanswer_sdk/models/connector_type_dto.py +101 -0
  36. qanswer_sdk/models/{relation_extraction_data_input.py → connector_type_list_dto.py} +14 -14
  37. qanswer_sdk/models/conversation_message.py +37 -7
  38. qanswer_sdk/models/conversation_model.py +8 -2
  39. qanswer_sdk/models/credits_info_global_dto.py +95 -0
  40. qanswer_sdk/models/credits_info_organization_dto.py +93 -0
  41. qanswer_sdk/models/dataset_detail_kg.py +30 -10
  42. qanswer_sdk/models/dataset_schema.py +5 -1
  43. qanswer_sdk/models/dataset_update_object.py +8 -2
  44. qanswer_sdk/models/document_content_update_model.py +4 -2
  45. qanswer_sdk/models/econsilium_search_index_add_payload.py +3 -1
  46. qanswer_sdk/models/embedder_create_dto.py +9 -3
  47. qanswer_sdk/models/embedder_detailed_dto.py +9 -3
  48. qanswer_sdk/models/embedder_update_dto.py +9 -3
  49. qanswer_sdk/models/{relation_model.py → embedding_endpoint_import_failure.py} +8 -10
  50. qanswer_sdk/models/embedding_endpoint_import_response.py +99 -0
  51. qanswer_sdk/models/es_meta_data.py +98 -0
  52. qanswer_sdk/models/{get_file_es_meta_data_response.py → es_meta_data_value.py} +7 -11
  53. qanswer_sdk/models/feedback_update.py +4 -2
  54. qanswer_sdk/models/file_es_meta_data.py +31 -4
  55. qanswer_sdk/models/g_drive_download_request.py +3 -1
  56. qanswer_sdk/models/generate_ai_cells_payload.py +5 -3
  57. qanswer_sdk/models/highlight_audio_payload_model.py +6 -4
  58. qanswer_sdk/models/imap_add_payload.py +4 -2
  59. qanswer_sdk/models/list_socket_events.py +2 -2
  60. qanswer_sdk/models/llm_consumption.py +2 -2
  61. qanswer_sdk/models/llm_create_dto.py +25 -3
  62. qanswer_sdk/models/llm_detailed_dto.py +30 -4
  63. qanswer_sdk/models/llm_dto.py +18 -2
  64. qanswer_sdk/models/llm_endpoint.py +25 -3
  65. qanswer_sdk/models/llm_endpoint_import_failure.py +89 -0
  66. qanswer_sdk/models/{relation_extraction_data_output.py → llm_endpoint_import_response.py} +20 -16
  67. qanswer_sdk/models/llm_endpoint_read_input.py +25 -3
  68. qanswer_sdk/models/llm_endpoint_read_output.py +25 -3
  69. qanswer_sdk/models/llm_update_dto.py +25 -3
  70. qanswer_sdk/models/mcp_server.py +153 -0
  71. qanswer_sdk/models/mcp_server_create.py +4 -2
  72. qanswer_sdk/models/mcp_server_dto.py +6 -2
  73. qanswer_sdk/models/mcp_server_update.py +4 -2
  74. qanswer_sdk/models/mcp_tool.py +124 -0
  75. qanswer_sdk/models/mcp_tool_description_update.py +6 -4
  76. qanswer_sdk/models/mcp_tool_dto.py +3 -1
  77. qanswer_sdk/models/one_drive_download_request.py +3 -1
  78. qanswer_sdk/models/one_note_download_request.py +3 -1
  79. qanswer_sdk/models/organization_admin.py +4 -2
  80. qanswer_sdk/models/organization_filter_dto.py +4 -2
  81. qanswer_sdk/models/{relation_value_input.py → organization_mcp_server_setting.py} +29 -24
  82. qanswer_sdk/models/plan_dto.py +16 -4
  83. qanswer_sdk/models/publication_add_payload.py +4 -2
  84. qanswer_sdk/models/rag_payload.py +6 -2
  85. qanswer_sdk/models/report_copilot_generation_from_slots_payload.py +5 -3
  86. qanswer_sdk/models/report_copilot_refinement_payload.py +5 -3
  87. qanswer_sdk/models/report_copilot_slot_feedback_update.py +4 -2
  88. qanswer_sdk/models/report_template.py +3 -1
  89. qanswer_sdk/models/report_template_create_payload.py +4 -2
  90. qanswer_sdk/models/report_template_simplified.py +4 -2
  91. qanswer_sdk/models/report_template_update_payload.py +4 -2
  92. qanswer_sdk/models/report_templates_search_payload.py +104 -0
  93. qanswer_sdk/models/search_payload.py +6 -2
  94. qanswer_sdk/models/share_point_download_request.py +3 -1
  95. qanswer_sdk/models/socket_conversation_message.py +37 -7
  96. qanswer_sdk/models/template_toggle_request.py +5 -5
  97. qanswer_sdk/models/text2_sparql_payload.py +5 -1
  98. qanswer_sdk/models/thinking_block.py +91 -0
  99. qanswer_sdk/models/{subject_model.py → update_cells_payload.py} +10 -10
  100. qanswer_sdk/models/{relation_extraction_configuration.py → update_file_es_meta_data.py} +37 -26
  101. qanswer_sdk/models/{update_metadata_model.py → update_metadata_model_input.py} +7 -7
  102. qanswer_sdk/models/{relation_extraction_task_settings_update_payload.py → update_metadata_model_output.py} +14 -12
  103. qanswer_sdk/models/update_qn_a_pair_request.py +4 -2
  104. qanswer_sdk/models/{relation_extraction_template_payload.py → update_template_cells_payload.py} +19 -15
  105. qanswer_sdk/models/user.py +10 -5
  106. qanswer_sdk/models/user_credits_config_dto.py +95 -0
  107. qanswer_sdk/models/user_credits_dto.py +104 -0
  108. qanswer_sdk/models/user_dataset.py +31 -11
  109. qanswer_sdk/models/{relation_extraction_row_output.py → user_dataset_mcp_tool_selection.py} +33 -26
  110. qanswer_sdk/models/user_dataset_mcp_tool_selection_dto.py +3 -1
  111. qanswer_sdk/models/user_filter_dto.py +4 -2
  112. qanswer_sdk/models/{relation_extraction_row_input.py → user_mcp_tool_selection.py} +31 -26
  113. qanswer_sdk/models/user_mcp_tool_selection_dto.py +3 -1
  114. qanswer_sdk/models/user_profile_dto.py +16 -4
  115. qanswer_sdk/models/{value_model.py → websearch_scraping_site.py} +11 -17
  116. qanswer_sdk/models/website_add_payload.py +4 -2
  117. {qanswer_sdk-3.1509.0.dist-info → qanswer_sdk-3.1510.0.dist-info}/METADATA +2 -2
  118. {qanswer_sdk-3.1509.0.dist-info → qanswer_sdk-3.1510.0.dist-info}/RECORD +119 -112
  119. qanswer_sdk/api/task_relation_extraction_api.py +0 -3636
  120. qanswer_sdk/models/export_relation_extraction_table_request.py +0 -97
  121. qanswer_sdk/models/relation_extraction_payload.py +0 -117
  122. qanswer_sdk/models/relation_extraction_task_settings.py +0 -125
  123. qanswer_sdk/models/relation_extraction_task_update.py +0 -125
  124. qanswer_sdk/models/relation_value_output.py +0 -103
  125. qanswer_sdk/models/socket_data_extraction.py +0 -109
  126. {qanswer_sdk-3.1509.0.dist-info → qanswer_sdk-3.1510.0.dist-info}/WHEEL +0 -0
@@ -62,6 +62,7 @@ class User(BaseModel):
62
62
  user_chatbot_setting: Optional[UserChatbotSetting] = Field(default=None, alias="userChatbotSetting")
63
63
  user_llm_features: Optional[UserLlmFeatures] = Field(default=None, alias="userLlmFeatures")
64
64
  logo: Optional[Logo] = None
65
+ selected_org: Optional[Organization] = Field(default=None, alias="selectedOrg")
65
66
  user_dataset: Optional[List[UserDataset]] = Field(default=None, alias="userDataset")
66
67
  user_dataset_shared: Optional[List[UserDatasetShared]] = Field(default=None, alias="userDatasetShared")
67
68
  favorite_dataset: Optional[List[UserDataset]] = Field(default=None, alias="favoriteDataset")
@@ -79,8 +80,8 @@ class User(BaseModel):
79
80
  administered_organizations: Optional[List[Organization]] = Field(default=None, alias="administeredOrganizations")
80
81
  user_logs: Optional[List[UserLog]] = Field(default=None, alias="userLogs")
81
82
  user_info: Optional[UserInfo] = Field(default=None, alias="userInfo")
82
- credit_quota_exceeded: Optional[StrictBool] = Field(default=None, alias="creditQuotaExceeded")
83
- __properties: ClassVar[List[str]] = ["id", "name", "username", "email", "password", "origin", "enabled", "blocked", "created", "updated", "lastLogin", "stripeCustomerId", "pricingPlan", "dataPackage", "pricingPlanSubscription", "questionCreditsStart", "questionCreditsUsed", "quotaQuestionCredits", "quotaDatasetNumber", "quotaDatasetSpaceMb", "creditCapacity", "creditUsage", "language", "runningOutOfQuotaWarned", "runOutOfQuotaWarned", "removeBranding", "roles", "userChatbotSetting", "userLlmFeatures", "logo", "userDataset", "userDatasetShared", "favoriteDataset", "llmConsumptions", "embedderConsumptions", "authorizedTeamAccesses", "requestedTeamAccesses", "authorizedOrganizationAccesses", "requestedOrganizationAccesses", "verificationTokens", "refreshToken", "teams", "administeredTeams", "organizations", "administeredOrganizations", "userLogs", "userInfo", "creditQuotaExceeded"]
83
+ selected_org_id: Optional[StrictInt] = Field(default=None, alias="selectedOrgId")
84
+ __properties: ClassVar[List[str]] = ["id", "name", "username", "email", "password", "origin", "enabled", "blocked", "created", "updated", "lastLogin", "stripeCustomerId", "pricingPlan", "dataPackage", "pricingPlanSubscription", "questionCreditsStart", "questionCreditsUsed", "quotaQuestionCredits", "quotaDatasetNumber", "quotaDatasetSpaceMb", "creditCapacity", "creditUsage", "language", "runningOutOfQuotaWarned", "runOutOfQuotaWarned", "removeBranding", "roles", "userChatbotSetting", "userLlmFeatures", "logo", "selectedOrg", "userDataset", "userDatasetShared", "favoriteDataset", "llmConsumptions", "embedderConsumptions", "authorizedTeamAccesses", "requestedTeamAccesses", "authorizedOrganizationAccesses", "requestedOrganizationAccesses", "verificationTokens", "refreshToken", "teams", "administeredTeams", "organizations", "administeredOrganizations", "userLogs", "userInfo", "selectedOrgId"]
84
85
 
85
86
  @field_validator('pricing_plan')
86
87
  def pricing_plan_validate_enum(cls, value):
@@ -88,8 +89,8 @@ class User(BaseModel):
88
89
  if value is None:
89
90
  return value
90
91
 
91
- if value not in set(['NOT_LOGGED', 'FREE', 'BASIC', 'BASIC_DOLLAR', 'BASIC_ANNUAL', 'BASIC_ANNUAL_DOLLAR', 'PROFESSIONAL', 'PROFESSIONAL_DOLLAR', 'PROFESSIONAL_ANNUAL', 'PROFESSIONAL_ANNUAL_DOLLAR', 'CUSTOM', 'UNLIMITED']):
92
- raise ValueError("must be one of enum values ('NOT_LOGGED', 'FREE', 'BASIC', 'BASIC_DOLLAR', 'BASIC_ANNUAL', 'BASIC_ANNUAL_DOLLAR', 'PROFESSIONAL', 'PROFESSIONAL_DOLLAR', 'PROFESSIONAL_ANNUAL', 'PROFESSIONAL_ANNUAL_DOLLAR', 'CUSTOM', 'UNLIMITED')")
92
+ if value not in set(['NOT_LOGGED', 'FREE', 'WORK', 'WORK_DOLLAR', 'WORK_ANNUAL', 'WORK_ANNUAL_DOLLAR', 'BASIC', 'BASIC_DOLLAR', 'BASIC_ANNUAL', 'BASIC_ANNUAL_DOLLAR', 'PROFESSIONAL', 'PROFESSIONAL_DOLLAR', 'PROFESSIONAL_ANNUAL', 'PROFESSIONAL_ANNUAL_DOLLAR', 'CUSTOM', 'UNLIMITED']):
93
+ raise ValueError("must be one of enum values ('NOT_LOGGED', 'FREE', 'WORK', 'WORK_DOLLAR', 'WORK_ANNUAL', 'WORK_ANNUAL_DOLLAR', 'BASIC', 'BASIC_DOLLAR', 'BASIC_ANNUAL', 'BASIC_ANNUAL_DOLLAR', 'PROFESSIONAL', 'PROFESSIONAL_DOLLAR', 'PROFESSIONAL_ANNUAL', 'PROFESSIONAL_ANNUAL_DOLLAR', 'CUSTOM', 'UNLIMITED')")
93
94
  return value
94
95
 
95
96
  @field_validator('language')
@@ -157,6 +158,9 @@ class User(BaseModel):
157
158
  # override the default output from pydantic by calling `to_dict()` of logo
158
159
  if self.logo:
159
160
  _dict['logo'] = self.logo.to_dict()
161
+ # override the default output from pydantic by calling `to_dict()` of selected_org
162
+ if self.selected_org:
163
+ _dict['selectedOrg'] = self.selected_org.to_dict()
160
164
  # override the default output from pydantic by calling `to_dict()` of each item in user_dataset (list)
161
165
  _items = []
162
166
  if self.user_dataset:
@@ -310,6 +314,7 @@ class User(BaseModel):
310
314
  "userChatbotSetting": UserChatbotSetting.from_dict(obj["userChatbotSetting"]) if obj.get("userChatbotSetting") is not None else None,
311
315
  "userLlmFeatures": UserLlmFeatures.from_dict(obj["userLlmFeatures"]) if obj.get("userLlmFeatures") is not None else None,
312
316
  "logo": Logo.from_dict(obj["logo"]) if obj.get("logo") is not None else None,
317
+ "selectedOrg": Organization.from_dict(obj["selectedOrg"]) if obj.get("selectedOrg") is not None else None,
313
318
  "userDataset": [UserDataset.from_dict(_item) for _item in obj["userDataset"]] if obj.get("userDataset") is not None else None,
314
319
  "userDatasetShared": [UserDatasetShared.from_dict(_item) for _item in obj["userDatasetShared"]] if obj.get("userDatasetShared") is not None else None,
315
320
  "favoriteDataset": [UserDataset.from_dict(_item) for _item in obj["favoriteDataset"]] if obj.get("favoriteDataset") is not None else None,
@@ -327,7 +332,7 @@ class User(BaseModel):
327
332
  "administeredOrganizations": [Organization.from_dict(_item) for _item in obj["administeredOrganizations"]] if obj.get("administeredOrganizations") is not None else None,
328
333
  "userLogs": [UserLog.from_dict(_item) for _item in obj["userLogs"]] if obj.get("userLogs") is not None else None,
329
334
  "userInfo": UserInfo.from_dict(obj["userInfo"]) if obj.get("userInfo") is not None else None,
330
- "creditQuotaExceeded": obj.get("creditQuotaExceeded")
335
+ "selectedOrgId": obj.get("selectedOrgId")
331
336
  })
332
337
  return _obj
333
338
 
@@ -0,0 +1,95 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ QAnswer: Api Documentation
5
+
6
+ APIs provided by QAnswer
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class UserCreditsConfigDto(BaseModel):
26
+ """
27
+ UserCreditsConfigDto
28
+ """ # noqa: E501
29
+ username: Optional[StrictStr] = None
30
+ quota_question_credits: Optional[StrictInt] = Field(default=None, alias="quotaQuestionCredits")
31
+ quota_dataset_number: Optional[StrictInt] = Field(default=None, alias="quotaDatasetNumber")
32
+ quota_dataset_space_mb: Optional[StrictInt] = Field(default=None, alias="quotaDatasetSpaceMb")
33
+ credit_capacity: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="creditCapacity")
34
+ __properties: ClassVar[List[str]] = ["username", "quotaQuestionCredits", "quotaDatasetNumber", "quotaDatasetSpaceMb", "creditCapacity"]
35
+
36
+ model_config = ConfigDict(
37
+ populate_by_name=True,
38
+ validate_assignment=True,
39
+ protected_namespaces=(),
40
+ )
41
+
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.model_dump(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
50
+ return json.dumps(self.to_dict())
51
+
52
+ @classmethod
53
+ def from_json(cls, json_str: str) -> Optional[Self]:
54
+ """Create an instance of UserCreditsConfigDto from a JSON string"""
55
+ return cls.from_dict(json.loads(json_str))
56
+
57
+ def to_dict(self) -> Dict[str, Any]:
58
+ """Return the dictionary representation of the model using alias.
59
+
60
+ This has the following differences from calling pydantic's
61
+ `self.model_dump(by_alias=True)`:
62
+
63
+ * `None` is only added to the output dict for nullable fields that
64
+ were set at model initialization. Other fields with value `None`
65
+ are ignored.
66
+ """
67
+ excluded_fields: Set[str] = set([
68
+ ])
69
+
70
+ _dict = self.model_dump(
71
+ by_alias=True,
72
+ exclude=excluded_fields,
73
+ exclude_none=True,
74
+ )
75
+ return _dict
76
+
77
+ @classmethod
78
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
79
+ """Create an instance of UserCreditsConfigDto from a dict"""
80
+ if obj is None:
81
+ return None
82
+
83
+ if not isinstance(obj, dict):
84
+ return cls.model_validate(obj)
85
+
86
+ _obj = cls.model_validate({
87
+ "username": obj.get("username"),
88
+ "quotaQuestionCredits": obj.get("quotaQuestionCredits"),
89
+ "quotaDatasetNumber": obj.get("quotaDatasetNumber"),
90
+ "quotaDatasetSpaceMb": obj.get("quotaDatasetSpaceMb"),
91
+ "creditCapacity": obj.get("creditCapacity")
92
+ })
93
+ return _obj
94
+
95
+
@@ -0,0 +1,104 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ QAnswer: Api Documentation
5
+
6
+ APIs provided by QAnswer
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
22
+ from typing import Any, ClassVar, Dict, List, Optional, Union
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class UserCreditsDto(BaseModel):
27
+ """
28
+ UserCreditsDto
29
+ """ # noqa: E501
30
+ quota_dataset_number: Optional[StrictInt] = Field(default=None, alias="quotaDatasetNumber")
31
+ quota_dataset_number_used: Optional[StrictInt] = Field(default=None, alias="quotaDatasetNumberUsed")
32
+ quota_dataset_space_mb: Optional[StrictInt] = Field(default=None, alias="quotaDatasetSpaceMb")
33
+ quota_dataset_space_mb_used: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="quotaDatasetSpaceMbUsed")
34
+ question_credits_start: Optional[datetime] = Field(default=None, alias="questionCreditsStart")
35
+ quota_question_credits: Optional[StrictInt] = Field(default=None, alias="quotaQuestionCredits")
36
+ quota_question_credits_used: Optional[StrictInt] = Field(default=None, alias="quotaQuestionCreditsUsed")
37
+ credit_capacity: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="creditCapacity")
38
+ credit_usage: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="creditUsage")
39
+ __properties: ClassVar[List[str]] = ["quotaDatasetNumber", "quotaDatasetNumberUsed", "quotaDatasetSpaceMb", "quotaDatasetSpaceMbUsed", "questionCreditsStart", "quotaQuestionCredits", "quotaQuestionCreditsUsed", "creditCapacity", "creditUsage"]
40
+
41
+ model_config = ConfigDict(
42
+ populate_by_name=True,
43
+ validate_assignment=True,
44
+ protected_namespaces=(),
45
+ )
46
+
47
+
48
+ def to_str(self) -> str:
49
+ """Returns the string representation of the model using alias"""
50
+ return pprint.pformat(self.model_dump(by_alias=True))
51
+
52
+ def to_json(self) -> str:
53
+ """Returns the JSON representation of the model using alias"""
54
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
55
+ return json.dumps(self.to_dict())
56
+
57
+ @classmethod
58
+ def from_json(cls, json_str: str) -> Optional[Self]:
59
+ """Create an instance of UserCreditsDto from a JSON string"""
60
+ return cls.from_dict(json.loads(json_str))
61
+
62
+ def to_dict(self) -> Dict[str, Any]:
63
+ """Return the dictionary representation of the model using alias.
64
+
65
+ This has the following differences from calling pydantic's
66
+ `self.model_dump(by_alias=True)`:
67
+
68
+ * `None` is only added to the output dict for nullable fields that
69
+ were set at model initialization. Other fields with value `None`
70
+ are ignored.
71
+ """
72
+ excluded_fields: Set[str] = set([
73
+ ])
74
+
75
+ _dict = self.model_dump(
76
+ by_alias=True,
77
+ exclude=excluded_fields,
78
+ exclude_none=True,
79
+ )
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
84
+ """Create an instance of UserCreditsDto from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return cls.model_validate(obj)
90
+
91
+ _obj = cls.model_validate({
92
+ "quotaDatasetNumber": obj.get("quotaDatasetNumber"),
93
+ "quotaDatasetNumberUsed": obj.get("quotaDatasetNumberUsed"),
94
+ "quotaDatasetSpaceMb": obj.get("quotaDatasetSpaceMb"),
95
+ "quotaDatasetSpaceMbUsed": obj.get("quotaDatasetSpaceMbUsed"),
96
+ "questionCreditsStart": obj.get("questionCreditsStart"),
97
+ "quotaQuestionCredits": obj.get("quotaQuestionCredits"),
98
+ "quotaQuestionCreditsUsed": obj.get("quotaQuestionCreditsUsed"),
99
+ "creditCapacity": obj.get("creditCapacity"),
100
+ "creditUsage": obj.get("creditUsage")
101
+ })
102
+ return _obj
103
+
104
+
@@ -46,11 +46,13 @@ class UserDataset(BaseModel):
46
46
  shared_users: Optional[List[UserDatasetShared]] = Field(default=None, alias="sharedUsers")
47
47
  shared_team_accesses: Optional[List[SharedTeamAccess]] = Field(default=None, alias="sharedTeamAccesses")
48
48
  shared_organization_accesses: Optional[List[SharedOrganizationAccess]] = Field(default=None, alias="sharedOrganizationAccesses")
49
- access_control_origin_headers: Optional[List[UserDatasetAccessControlOriginHeader]] = Field(default=None, alias="accessControlOriginHeaders")
49
+ mcp_tool_selections: Optional[List[UserDatasetMcpToolSelection]] = Field(default=None, alias="mcpToolSelections")
50
+ ai_assistant_restricted_domains: Optional[List[AiAssistantRestrictedDomain]] = Field(default=None, alias="aiAssistantRestrictedDomains")
50
51
  entity_description: Optional[EntityDescription] = Field(default=None, alias="entityDescription")
51
52
  logo: Optional[Logo] = None
52
53
  llm_consumptions: Optional[List[LlmConsumption]] = Field(default=None, alias="llmConsumptions")
53
- __properties: ClassVar[List[str]] = ["id", "dataset", "name", "description", "user", "uploaded", "indexed", "access", "accessType", "size", "created", "indexType", "languages", "assistantTemplatePublished", "sharedUsers", "sharedTeamAccesses", "sharedOrganizationAccesses", "accessControlOriginHeaders", "entityDescription", "logo", "llmConsumptions"]
54
+ embedder_consumptions: Optional[List[EmbedderConsumption]] = Field(default=None, alias="embedderConsumptions")
55
+ __properties: ClassVar[List[str]] = ["id", "dataset", "name", "description", "user", "uploaded", "indexed", "access", "accessType", "size", "created", "indexType", "languages", "assistantTemplatePublished", "sharedUsers", "sharedTeamAccesses", "sharedOrganizationAccesses", "mcpToolSelections", "aiAssistantRestrictedDomains", "entityDescription", "logo", "llmConsumptions", "embedderConsumptions"]
54
56
 
55
57
  @field_validator('access_type')
56
58
  def access_type_validate_enum(cls, value):
@@ -125,13 +127,20 @@ class UserDataset(BaseModel):
125
127
  if _item_shared_organization_accesses:
126
128
  _items.append(_item_shared_organization_accesses.to_dict())
127
129
  _dict['sharedOrganizationAccesses'] = _items
128
- # override the default output from pydantic by calling `to_dict()` of each item in access_control_origin_headers (list)
130
+ # override the default output from pydantic by calling `to_dict()` of each item in mcp_tool_selections (list)
129
131
  _items = []
130
- if self.access_control_origin_headers:
131
- for _item_access_control_origin_headers in self.access_control_origin_headers:
132
- if _item_access_control_origin_headers:
133
- _items.append(_item_access_control_origin_headers.to_dict())
134
- _dict['accessControlOriginHeaders'] = _items
132
+ if self.mcp_tool_selections:
133
+ for _item_mcp_tool_selections in self.mcp_tool_selections:
134
+ if _item_mcp_tool_selections:
135
+ _items.append(_item_mcp_tool_selections.to_dict())
136
+ _dict['mcpToolSelections'] = _items
137
+ # override the default output from pydantic by calling `to_dict()` of each item in ai_assistant_restricted_domains (list)
138
+ _items = []
139
+ if self.ai_assistant_restricted_domains:
140
+ for _item_ai_assistant_restricted_domains in self.ai_assistant_restricted_domains:
141
+ if _item_ai_assistant_restricted_domains:
142
+ _items.append(_item_ai_assistant_restricted_domains.to_dict())
143
+ _dict['aiAssistantRestrictedDomains'] = _items
135
144
  # override the default output from pydantic by calling `to_dict()` of entity_description
136
145
  if self.entity_description:
137
146
  _dict['entityDescription'] = self.entity_description.to_dict()
@@ -145,6 +154,13 @@ class UserDataset(BaseModel):
145
154
  if _item_llm_consumptions:
146
155
  _items.append(_item_llm_consumptions.to_dict())
147
156
  _dict['llmConsumptions'] = _items
157
+ # override the default output from pydantic by calling `to_dict()` of each item in embedder_consumptions (list)
158
+ _items = []
159
+ if self.embedder_consumptions:
160
+ for _item_embedder_consumptions in self.embedder_consumptions:
161
+ if _item_embedder_consumptions:
162
+ _items.append(_item_embedder_consumptions.to_dict())
163
+ _dict['embedderConsumptions'] = _items
148
164
  return _dict
149
165
 
150
166
  @classmethod
@@ -174,18 +190,22 @@ class UserDataset(BaseModel):
174
190
  "sharedUsers": [UserDatasetShared.from_dict(_item) for _item in obj["sharedUsers"]] if obj.get("sharedUsers") is not None else None,
175
191
  "sharedTeamAccesses": [SharedTeamAccess.from_dict(_item) for _item in obj["sharedTeamAccesses"]] if obj.get("sharedTeamAccesses") is not None else None,
176
192
  "sharedOrganizationAccesses": [SharedOrganizationAccess.from_dict(_item) for _item in obj["sharedOrganizationAccesses"]] if obj.get("sharedOrganizationAccesses") is not None else None,
177
- "accessControlOriginHeaders": [UserDatasetAccessControlOriginHeader.from_dict(_item) for _item in obj["accessControlOriginHeaders"]] if obj.get("accessControlOriginHeaders") is not None else None,
193
+ "mcpToolSelections": [UserDatasetMcpToolSelection.from_dict(_item) for _item in obj["mcpToolSelections"]] if obj.get("mcpToolSelections") is not None else None,
194
+ "aiAssistantRestrictedDomains": [AiAssistantRestrictedDomain.from_dict(_item) for _item in obj["aiAssistantRestrictedDomains"]] if obj.get("aiAssistantRestrictedDomains") is not None else None,
178
195
  "entityDescription": EntityDescription.from_dict(obj["entityDescription"]) if obj.get("entityDescription") is not None else None,
179
196
  "logo": Logo.from_dict(obj["logo"]) if obj.get("logo") is not None else None,
180
- "llmConsumptions": [LlmConsumption.from_dict(_item) for _item in obj["llmConsumptions"]] if obj.get("llmConsumptions") is not None else None
197
+ "llmConsumptions": [LlmConsumption.from_dict(_item) for _item in obj["llmConsumptions"]] if obj.get("llmConsumptions") is not None else None,
198
+ "embedderConsumptions": [EmbedderConsumption.from_dict(_item) for _item in obj["embedderConsumptions"]] if obj.get("embedderConsumptions") is not None else None
181
199
  })
182
200
  return _obj
183
201
 
202
+ from qanswer_sdk.models.ai_assistant_restricted_domain import AiAssistantRestrictedDomain
203
+ from qanswer_sdk.models.embedder_consumption import EmbedderConsumption
184
204
  from qanswer_sdk.models.llm_consumption import LlmConsumption
185
205
  from qanswer_sdk.models.shared_organization_access import SharedOrganizationAccess
186
206
  from qanswer_sdk.models.shared_team_access import SharedTeamAccess
187
207
  from qanswer_sdk.models.user import User
188
- from qanswer_sdk.models.user_dataset_access_control_origin_header import UserDatasetAccessControlOriginHeader
208
+ from qanswer_sdk.models.user_dataset_mcp_tool_selection import UserDatasetMcpToolSelection
189
209
  from qanswer_sdk.models.user_dataset_shared import UserDatasetShared
190
210
  # TODO: Rewrite to not use raise_errors
191
211
  UserDataset.model_rebuild(raise_errors=False)
@@ -17,22 +17,25 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, StrictInt
20
+ from datetime import datetime
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
21
22
  from typing import Any, ClassVar, Dict, List, Optional
22
- from qanswer_sdk.models.relation_value_output import RelationValueOutput
23
- from qanswer_sdk.models.subject_model import SubjectModel
24
23
  from typing import Optional, Set
25
24
  from typing_extensions import Self
26
25
 
27
- class RelationExtractionRowOutput(BaseModel):
26
+ class UserDatasetMcpToolSelection(BaseModel):
28
27
  """
29
- RelationExtractionRowOutput
28
+ UserDatasetMcpToolSelection
30
29
  """ # noqa: E501
31
- subject: Optional[SubjectModel] = None
32
- relations: Optional[List[RelationValueOutput]] = None
33
- index: Optional[StrictInt] = None
34
- row_id: Optional[StrictInt] = None
35
- __properties: ClassVar[List[str]] = ["subject", "relations", "index", "row_id"]
30
+ id: Optional[StrictInt] = None
31
+ user_dataset: Optional[UserDataset] = Field(default=None, alias="userDataset")
32
+ mcp_tool: Optional[McpTool] = Field(default=None, alias="mcpTool")
33
+ enabled: Optional[StrictBool] = None
34
+ ask_for_confirmation: Optional[StrictBool] = Field(default=None, alias="askForConfirmation")
35
+ created: Optional[datetime] = None
36
+ updated: Optional[datetime] = None
37
+ server_uid: Optional[StrictStr] = Field(default=None, alias="serverUid")
38
+ __properties: ClassVar[List[str]] = ["id", "userDataset", "mcpTool", "enabled", "askForConfirmation", "created", "updated", "serverUid"]
36
39
 
37
40
  model_config = ConfigDict(
38
41
  populate_by_name=True,
@@ -52,7 +55,7 @@ class RelationExtractionRowOutput(BaseModel):
52
55
 
53
56
  @classmethod
54
57
  def from_json(cls, json_str: str) -> Optional[Self]:
55
- """Create an instance of RelationExtractionRowOutput from a JSON string"""
58
+ """Create an instance of UserDatasetMcpToolSelection from a JSON string"""
56
59
  return cls.from_dict(json.loads(json_str))
57
60
 
58
61
  def to_dict(self) -> Dict[str, Any]:
@@ -73,21 +76,17 @@ class RelationExtractionRowOutput(BaseModel):
73
76
  exclude=excluded_fields,
74
77
  exclude_none=True,
75
78
  )
76
- # override the default output from pydantic by calling `to_dict()` of subject
77
- if self.subject:
78
- _dict['subject'] = self.subject.to_dict()
79
- # override the default output from pydantic by calling `to_dict()` of each item in relations (list)
80
- _items = []
81
- if self.relations:
82
- for _item_relations in self.relations:
83
- if _item_relations:
84
- _items.append(_item_relations.to_dict())
85
- _dict['relations'] = _items
79
+ # override the default output from pydantic by calling `to_dict()` of user_dataset
80
+ if self.user_dataset:
81
+ _dict['userDataset'] = self.user_dataset.to_dict()
82
+ # override the default output from pydantic by calling `to_dict()` of mcp_tool
83
+ if self.mcp_tool:
84
+ _dict['mcpTool'] = self.mcp_tool.to_dict()
86
85
  return _dict
87
86
 
88
87
  @classmethod
89
88
  def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
90
- """Create an instance of RelationExtractionRowOutput from a dict"""
89
+ """Create an instance of UserDatasetMcpToolSelection from a dict"""
91
90
  if obj is None:
92
91
  return None
93
92
 
@@ -95,11 +94,19 @@ class RelationExtractionRowOutput(BaseModel):
95
94
  return cls.model_validate(obj)
96
95
 
97
96
  _obj = cls.model_validate({
98
- "subject": SubjectModel.from_dict(obj["subject"]) if obj.get("subject") is not None else None,
99
- "relations": [RelationValueOutput.from_dict(_item) for _item in obj["relations"]] if obj.get("relations") is not None else None,
100
- "index": obj.get("index"),
101
- "row_id": obj.get("row_id")
97
+ "id": obj.get("id"),
98
+ "userDataset": UserDataset.from_dict(obj["userDataset"]) if obj.get("userDataset") is not None else None,
99
+ "mcpTool": McpTool.from_dict(obj["mcpTool"]) if obj.get("mcpTool") is not None else None,
100
+ "enabled": obj.get("enabled"),
101
+ "askForConfirmation": obj.get("askForConfirmation"),
102
+ "created": obj.get("created"),
103
+ "updated": obj.get("updated"),
104
+ "serverUid": obj.get("serverUid")
102
105
  })
103
106
  return _obj
104
107
 
108
+ from qanswer_sdk.models.mcp_tool import McpTool
109
+ from qanswer_sdk.models.user_dataset import UserDataset
110
+ # TODO: Rewrite to not use raise_errors
111
+ UserDatasetMcpToolSelection.model_rebuild(raise_errors=False)
105
112
 
@@ -30,11 +30,12 @@ class UserDatasetMcpToolSelectionDto(BaseModel):
30
30
  id: Optional[StrictInt] = None
31
31
  assistant_id: Optional[StrictInt] = Field(default=None, alias="assistantId")
32
32
  tool_uid: Optional[StrictStr] = Field(default=None, alias="toolUid")
33
+ server_uid: Optional[StrictStr] = Field(default=None, alias="serverUid")
33
34
  enabled: Optional[StrictBool] = None
34
35
  ask_for_confirmation: Optional[StrictBool] = Field(default=None, alias="askForConfirmation")
35
36
  created: Optional[datetime] = None
36
37
  updated: Optional[datetime] = None
37
- __properties: ClassVar[List[str]] = ["id", "assistantId", "toolUid", "enabled", "askForConfirmation", "created", "updated"]
38
+ __properties: ClassVar[List[str]] = ["id", "assistantId", "toolUid", "serverUid", "enabled", "askForConfirmation", "created", "updated"]
38
39
 
39
40
  model_config = ConfigDict(
40
41
  populate_by_name=True,
@@ -90,6 +91,7 @@ class UserDatasetMcpToolSelectionDto(BaseModel):
90
91
  "id": obj.get("id"),
91
92
  "assistantId": obj.get("assistantId"),
92
93
  "toolUid": obj.get("toolUid"),
94
+ "serverUid": obj.get("serverUid"),
93
95
  "enabled": obj.get("enabled"),
94
96
  "askForConfirmation": obj.get("askForConfirmation"),
95
97
  "created": obj.get("created"),
@@ -34,7 +34,8 @@ class UserFilterDto(BaseModel):
34
34
  size: Optional[StrictInt] = None
35
35
  sort_by: Optional[StrictStr] = Field(default=None, alias="sortBy")
36
36
  sort_dir: Optional[StrictStr] = Field(default=None, alias="sortDir")
37
- __properties: ClassVar[List[str]] = ["search", "userId", "organizationId", "teamId", "page", "size", "sortBy", "sortDir"]
37
+ only_org_id: Optional[StrictInt] = Field(default=None, alias="onlyOrgId")
38
+ __properties: ClassVar[List[str]] = ["search", "userId", "organizationId", "teamId", "page", "size", "sortBy", "sortDir", "onlyOrgId"]
38
39
 
39
40
  model_config = ConfigDict(
40
41
  populate_by_name=True,
@@ -94,7 +95,8 @@ class UserFilterDto(BaseModel):
94
95
  "page": obj.get("page"),
95
96
  "size": obj.get("size"),
96
97
  "sortBy": obj.get("sortBy"),
97
- "sortDir": obj.get("sortDir")
98
+ "sortDir": obj.get("sortDir"),
99
+ "onlyOrgId": obj.get("onlyOrgId")
98
100
  })
99
101
  return _obj
100
102
 
@@ -17,22 +17,24 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, StrictInt
20
+ from datetime import datetime
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt
21
22
  from typing import Any, ClassVar, Dict, List, Optional
22
- from qanswer_sdk.models.relation_value_input import RelationValueInput
23
- from qanswer_sdk.models.subject_model import SubjectModel
24
23
  from typing import Optional, Set
25
24
  from typing_extensions import Self
26
25
 
27
- class RelationExtractionRowInput(BaseModel):
26
+ class UserMcpToolSelection(BaseModel):
28
27
  """
29
- RelationExtractionRowInput
28
+ UserMcpToolSelection
30
29
  """ # noqa: E501
31
- subject: Optional[SubjectModel] = None
32
- relations: Optional[List[RelationValueInput]] = None
33
- index: Optional[StrictInt] = None
34
- row_id: Optional[StrictInt] = None
35
- __properties: ClassVar[List[str]] = ["subject", "relations", "index", "row_id"]
30
+ id: Optional[StrictInt] = None
31
+ user: Optional[User] = None
32
+ mcp_tool: Optional[McpTool] = Field(default=None, alias="mcpTool")
33
+ enabled: Optional[StrictBool] = None
34
+ ask_for_confirmation: Optional[StrictBool] = Field(default=None, alias="askForConfirmation")
35
+ created: Optional[datetime] = None
36
+ updated: Optional[datetime] = None
37
+ __properties: ClassVar[List[str]] = ["id", "user", "mcpTool", "enabled", "askForConfirmation", "created", "updated"]
36
38
 
37
39
  model_config = ConfigDict(
38
40
  populate_by_name=True,
@@ -52,7 +54,7 @@ class RelationExtractionRowInput(BaseModel):
52
54
 
53
55
  @classmethod
54
56
  def from_json(cls, json_str: str) -> Optional[Self]:
55
- """Create an instance of RelationExtractionRowInput from a JSON string"""
57
+ """Create an instance of UserMcpToolSelection from a JSON string"""
56
58
  return cls.from_dict(json.loads(json_str))
57
59
 
58
60
  def to_dict(self) -> Dict[str, Any]:
@@ -73,21 +75,17 @@ class RelationExtractionRowInput(BaseModel):
73
75
  exclude=excluded_fields,
74
76
  exclude_none=True,
75
77
  )
76
- # override the default output from pydantic by calling `to_dict()` of subject
77
- if self.subject:
78
- _dict['subject'] = self.subject.to_dict()
79
- # override the default output from pydantic by calling `to_dict()` of each item in relations (list)
80
- _items = []
81
- if self.relations:
82
- for _item_relations in self.relations:
83
- if _item_relations:
84
- _items.append(_item_relations.to_dict())
85
- _dict['relations'] = _items
78
+ # override the default output from pydantic by calling `to_dict()` of user
79
+ if self.user:
80
+ _dict['user'] = self.user.to_dict()
81
+ # override the default output from pydantic by calling `to_dict()` of mcp_tool
82
+ if self.mcp_tool:
83
+ _dict['mcpTool'] = self.mcp_tool.to_dict()
86
84
  return _dict
87
85
 
88
86
  @classmethod
89
87
  def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
90
- """Create an instance of RelationExtractionRowInput from a dict"""
88
+ """Create an instance of UserMcpToolSelection from a dict"""
91
89
  if obj is None:
92
90
  return None
93
91
 
@@ -95,11 +93,18 @@ class RelationExtractionRowInput(BaseModel):
95
93
  return cls.model_validate(obj)
96
94
 
97
95
  _obj = cls.model_validate({
98
- "subject": SubjectModel.from_dict(obj["subject"]) if obj.get("subject") is not None else None,
99
- "relations": [RelationValueInput.from_dict(_item) for _item in obj["relations"]] if obj.get("relations") is not None else None,
100
- "index": obj.get("index"),
101
- "row_id": obj.get("row_id")
96
+ "id": obj.get("id"),
97
+ "user": User.from_dict(obj["user"]) if obj.get("user") is not None else None,
98
+ "mcpTool": McpTool.from_dict(obj["mcpTool"]) if obj.get("mcpTool") is not None else None,
99
+ "enabled": obj.get("enabled"),
100
+ "askForConfirmation": obj.get("askForConfirmation"),
101
+ "created": obj.get("created"),
102
+ "updated": obj.get("updated")
102
103
  })
103
104
  return _obj
104
105
 
106
+ from qanswer_sdk.models.mcp_tool import McpTool
107
+ from qanswer_sdk.models.user import User
108
+ # TODO: Rewrite to not use raise_errors
109
+ UserMcpToolSelection.model_rebuild(raise_errors=False)
105
110
 
@@ -29,11 +29,12 @@ class UserMcpToolSelectionDto(BaseModel):
29
29
  """ # noqa: E501
30
30
  id: Optional[StrictInt] = None
31
31
  tool_uid: Optional[StrictStr] = Field(default=None, alias="toolUid")
32
+ server_uid: Optional[StrictStr] = Field(default=None, alias="serverUid")
32
33
  enabled: Optional[StrictBool] = None
33
34
  ask_for_confirmation: Optional[StrictBool] = Field(default=None, alias="askForConfirmation")
34
35
  created: Optional[datetime] = None
35
36
  updated: Optional[datetime] = None
36
- __properties: ClassVar[List[str]] = ["id", "toolUid", "enabled", "askForConfirmation", "created", "updated"]
37
+ __properties: ClassVar[List[str]] = ["id", "toolUid", "serverUid", "enabled", "askForConfirmation", "created", "updated"]
37
38
 
38
39
  model_config = ConfigDict(
39
40
  populate_by_name=True,
@@ -88,6 +89,7 @@ class UserMcpToolSelectionDto(BaseModel):
88
89
  _obj = cls.model_validate({
89
90
  "id": obj.get("id"),
90
91
  "toolUid": obj.get("toolUid"),
92
+ "serverUid": obj.get("serverUid"),
91
93
  "enabled": obj.get("enabled"),
92
94
  "askForConfirmation": obj.get("askForConfirmation"),
93
95
  "created": obj.get("created"),