airia 0.1.37__py3-none-any.whl → 0.1.39__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 (31) hide show
  1. airia/client/async_client.py +2 -0
  2. airia/client/attachments/async_attachments.py +54 -1
  3. airia/client/attachments/base_attachments.py +39 -0
  4. airia/client/attachments/sync_attachments.py +52 -1
  5. airia/client/data_store/__init__.py +4 -0
  6. airia/client/data_store/async_data_store.py +15 -0
  7. airia/client/data_store/store/__init__.py +4 -0
  8. airia/client/data_store/store/async_store.py +114 -0
  9. airia/client/data_store/store/base_store.py +73 -0
  10. airia/client/data_store/store/sync_store.py +115 -0
  11. airia/client/data_store/sync_data_store.py +15 -0
  12. airia/client/data_vector_search/base_data_vector_search.py +3 -1
  13. airia/client/pipelines_config/async_pipelines_config.py +6 -2
  14. airia/client/pipelines_config/base_pipelines_config.py +3 -1
  15. airia/client/pipelines_config/sync_pipelines_config.py +3 -1
  16. airia/client/sync_client.py +2 -0
  17. airia/types/api/__init__.py +1 -0
  18. airia/types/api/attachments/__init__.py +2 -1
  19. airia/types/api/attachments/get_file_url.py +19 -0
  20. airia/types/api/data_store/__init__.py +3 -0
  21. airia/types/api/data_store/store/__init__.py +11 -0
  22. airia/types/api/data_store/store/_get_files_and_folders.py +84 -0
  23. airia/types/api/library/__init__.py +1 -1
  24. airia/types/api/models/list_models.py +3 -1
  25. airia/types/api/pipelines_config/export_pipeline_definition.py +42 -36
  26. airia/types/api/tools/_tools.py +3 -1
  27. {airia-0.1.37.dist-info → airia-0.1.39.dist-info}/METADATA +1 -1
  28. {airia-0.1.37.dist-info → airia-0.1.39.dist-info}/RECORD +31 -20
  29. {airia-0.1.37.dist-info → airia-0.1.39.dist-info}/WHEEL +1 -1
  30. {airia-0.1.37.dist-info → airia-0.1.39.dist-info}/licenses/LICENSE +0 -0
  31. {airia-0.1.37.dist-info → airia-0.1.39.dist-info}/top_level.txt +0 -0
@@ -11,6 +11,7 @@ from ._request_handler import AsyncRequestHandler
11
11
  from .attachments import AsyncAttachments
12
12
  from .base_client import AiriaBaseClient
13
13
  from .conversations import AsyncConversations
14
+ from .data_store import AsyncDataStore
14
15
  from .data_vector_search import AsyncDataVectorSearch
15
16
  from .deployments import AsyncDeployments
16
17
  from .library import AsyncLibrary
@@ -70,6 +71,7 @@ class AiriaAsyncClient(AiriaBaseClient):
70
71
  self.project = AsyncProject(self._request_handler)
71
72
  self.conversations = AsyncConversations(self._request_handler)
72
73
  self.store = AsyncStore(self._request_handler)
74
+ self.data_store = AsyncDataStore(self._request_handler)
73
75
  self.deployments = AsyncDeployments(self._request_handler)
74
76
  self.data_vector_search = AsyncDataVectorSearch(self._request_handler)
75
77
  self.library = AsyncLibrary(self._request_handler)
@@ -1,7 +1,7 @@
1
1
  from typing import Optional
2
2
 
3
3
  from ...types._api_version import ApiVersion
4
- from ...types.api.attachments import AttachmentResponse
4
+ from ...types.api.attachments import AttachmentResponse, GetFileUrlResponse
5
5
  from .._request_handler import AsyncRequestHandler
6
6
  from .base_attachments import BaseAttachments
7
7
 
@@ -50,3 +50,56 @@ class AsyncAttachments(BaseAttachments):
50
50
 
51
51
  resp = await self._request_handler.make_request_multipart("POST", request_data)
52
52
  return AttachmentResponse(**resp)
53
+
54
+ async def get_file_url(
55
+ self,
56
+ file_id: str,
57
+ correlation_id: Optional[str] = None,
58
+ ) -> GetFileUrlResponse:
59
+ """
60
+ Get a refreshed signed URL for an existing attachment.
61
+
62
+ This method retrieves a new time-limited signed URL for accessing
63
+ an attachment that was previously uploaded. Useful when the original
64
+ signed URL has expired or is about to expire.
65
+
66
+ Args:
67
+ file_id: The unique identifier of the attachment
68
+ correlation_id: Optional correlation ID for request tracing. If not provided,
69
+ one will be generated automatically.
70
+
71
+ Returns:
72
+ GetFileUrlResponse: Response containing the attachment ID and refreshed signed URL.
73
+
74
+ Raises:
75
+ AiriaAPIError: If the API request fails with details about the error.
76
+ aiohttp.ClientError: For other request-related errors.
77
+
78
+ Example:
79
+ ```python
80
+ async_client = AiriaAsyncClient(api_key="your_api_key")
81
+
82
+ # First, upload a file
83
+ upload_response = await async_client.attachments.upload_file(
84
+ file_path="example.jpg"
85
+ )
86
+ file_id = upload_response.id
87
+
88
+ # Later, get a refreshed URL for the same file
89
+ url_response = await async_client.attachments.get_file_url(
90
+ file_id=file_id
91
+ )
92
+ print(f"Attachment ID: {url_response.id}")
93
+ print(f"Refreshed URL: {url_response.signed_url}")
94
+ ```
95
+ """
96
+ request_data = self._pre_get_file_url(
97
+ file_id=file_id,
98
+ correlation_id=correlation_id,
99
+ api_version=ApiVersion.V1.value,
100
+ )
101
+
102
+ resp = await self._request_handler.make_request(
103
+ "GET", request_data, return_json=True
104
+ )
105
+ return GetFileUrlResponse(**resp)
@@ -52,3 +52,42 @@ class BaseAttachments:
52
52
  )
53
53
 
54
54
  return request_data
55
+
56
+ def _pre_get_file_url(
57
+ self,
58
+ file_id: str,
59
+ correlation_id: Optional[str] = None,
60
+ api_version: str = ApiVersion.V1.value,
61
+ ):
62
+ """
63
+ Prepare request data for get file URL endpoint.
64
+
65
+ This internal method constructs the URL for refreshing a file's signed URL,
66
+ validating the API version and preparing all request components.
67
+
68
+ Args:
69
+ file_id: The unique identifier of the file
70
+ correlation_id: Optional correlation ID for tracing
71
+ api_version: API version to use for the request
72
+
73
+ Returns:
74
+ RequestData: Prepared request data for the get file URL endpoint
75
+
76
+ Raises:
77
+ ValueError: If an invalid API version is provided
78
+ """
79
+ if api_version not in ApiVersion.as_list():
80
+ raise ValueError(
81
+ f"Invalid API version: {api_version}. Valid versions are: {', '.join(ApiVersion.as_list())}"
82
+ )
83
+
84
+ url = urljoin(
85
+ self._request_handler.base_url,
86
+ f"{api_version}/upload/refresh/{file_id}",
87
+ )
88
+
89
+ request_data = self._request_handler.prepare_request(
90
+ url=url, payload=None, correlation_id=correlation_id
91
+ )
92
+
93
+ return request_data
@@ -1,7 +1,7 @@
1
1
  from typing import Optional
2
2
 
3
3
  from ...types._api_version import ApiVersion
4
- from ...types.api.attachments import AttachmentResponse
4
+ from ...types.api.attachments import AttachmentResponse, GetFileUrlResponse
5
5
  from .._request_handler import RequestHandler
6
6
  from .base_attachments import BaseAttachments
7
7
 
@@ -50,3 +50,54 @@ class Attachments(BaseAttachments):
50
50
 
51
51
  resp = self._request_handler.make_request_multipart("POST", request_data)
52
52
  return AttachmentResponse(**resp)
53
+
54
+ def get_file_url(
55
+ self,
56
+ file_id: str,
57
+ correlation_id: Optional[str] = None,
58
+ ) -> GetFileUrlResponse:
59
+ """
60
+ Get a refreshed signed URL for an existing attachment.
61
+
62
+ This method retrieves a new time-limited signed URL for accessing
63
+ an attachment that was previously uploaded. Useful when the original
64
+ signed URL has expired or is about to expire.
65
+
66
+ Args:
67
+ file_id: The unique identifier of the attachment
68
+ correlation_id: Optional correlation ID for request tracing. If not provided,
69
+ one will be generated automatically.
70
+
71
+ Returns:
72
+ GetFileUrlResponse: Response containing the attachment ID and refreshed signed URL.
73
+
74
+ Raises:
75
+ AiriaAPIError: If the API request fails with details about the error.
76
+ requests.RequestException: For other request-related errors.
77
+
78
+ Example:
79
+ ```python
80
+ client = AiriaClient(api_key="your_api_key")
81
+
82
+ # First, upload a file
83
+ upload_response = client.attachments.upload_file(
84
+ file_path="example.jpg"
85
+ )
86
+ file_id = upload_response.id
87
+
88
+ # Later, get a refreshed URL for the same file
89
+ url_response = client.attachments.get_file_url(
90
+ file_id=file_id
91
+ )
92
+ print(f"Attachment ID: {url_response.id}")
93
+ print(f"Refreshed URL: {url_response.signed_url}")
94
+ ```
95
+ """
96
+ request_data = self._pre_get_file_url(
97
+ file_id=file_id,
98
+ correlation_id=correlation_id,
99
+ api_version=ApiVersion.V1.value,
100
+ )
101
+
102
+ resp = self._request_handler.make_request("GET", request_data, return_json=True)
103
+ return GetFileUrlResponse(**resp)
@@ -0,0 +1,4 @@
1
+ from .async_data_store import AsyncDataStore
2
+ from .sync_data_store import DataStore
3
+
4
+ __all__ = ["DataStore", "AsyncDataStore"]
@@ -0,0 +1,15 @@
1
+ from .._request_handler import AsyncRequestHandler
2
+ from .store import AsyncStore
3
+
4
+
5
+ class AsyncDataStore:
6
+ """Async Data Store client for browsing files and folders in store connectors."""
7
+
8
+ def __init__(self, request_handler: AsyncRequestHandler):
9
+ """
10
+ Initialize the AsyncDataStore client.
11
+
12
+ Args:
13
+ request_handler: The async request handler for making API calls
14
+ """
15
+ self.store = AsyncStore(request_handler)
@@ -0,0 +1,4 @@
1
+ from .async_store import AsyncStore
2
+ from .sync_store import Store
3
+
4
+ __all__ = ["Store", "AsyncStore"]
@@ -0,0 +1,114 @@
1
+ from typing import Optional
2
+
3
+ from ....types.api.data_store.store import GetFilesAndFoldersResponse
4
+ from ..._request_handler import AsyncRequestHandler
5
+ from .base_store import BaseStore
6
+
7
+
8
+ class AsyncStore(BaseStore):
9
+ """Async Store client for browsing files and folders."""
10
+
11
+ def __init__(self, request_handler: AsyncRequestHandler):
12
+ super().__init__(request_handler)
13
+
14
+ async def get_files_and_folders(
15
+ self,
16
+ store_connector_id: str,
17
+ project_id: str,
18
+ folder_id: Optional[str] = None,
19
+ page_number: Optional[int] = None,
20
+ page_size: Optional[int] = None,
21
+ sort_by: Optional[str] = None,
22
+ sort_order: Optional[str] = None,
23
+ filter_by: Optional[str] = None,
24
+ filter_value: Optional[str] = None,
25
+ correlation_id: Optional[str] = None,
26
+ ) -> GetFilesAndFoldersResponse:
27
+ """
28
+ Retrieve files and folders from a store connector in the Airia data store.
29
+
30
+ This method retrieves information about files and folders in the specified
31
+ store connector, with optional navigation into specific folders and support
32
+ for pagination, sorting, and filtering.
33
+
34
+ Args:
35
+ store_connector_id: The unique identifier of the store connector (GUID format)
36
+ project_id: The unique identifier of the project (GUID format)
37
+ folder_id: Optional folder ID to browse within a specific folder (GUID format).
38
+ If not provided, retrieves items from the root level.
39
+ page_number: Page number for pagination (1-indexed)
40
+ page_size: Number of items per page
41
+ sort_by: Field to sort by (e.g., "lastSyncAt", "name")
42
+ sort_order: Sort order ("ASC" or "DESC")
43
+ filter_by: Field to filter by
44
+ filter_value: Value to filter by
45
+ correlation_id: Optional correlation ID for request tracing
46
+
47
+ Returns:
48
+ GetFilesAndFoldersResponse: List of files and folders with metadata and total count
49
+
50
+ Raises:
51
+ AiriaAPIError: If the API request fails, including cases where:
52
+ - The store_connector_id doesn't exist (404)
53
+ - The project_id doesn't exist (404)
54
+ - The folder_id is invalid (404)
55
+ - Authentication fails (401)
56
+ - Access is forbidden (403)
57
+ - Server errors (5xx)
58
+ ValueError: If required parameters are missing or invalid
59
+
60
+ Example:
61
+ ```python
62
+ from airia import AiriaAsyncClient
63
+
64
+ async with AiriaAsyncClient(api_key="your_api_key") as client:
65
+ # Get files and folders from root level
66
+ response = await client.data_store.store.get_files_and_folders(
67
+ store_connector_id="02b2ef8b-8bff-42c3-9ddb-e325c893176e",
68
+ project_id="0196162b-1553-71b2-8ebf-44594717936e"
69
+ )
70
+
71
+ # Browse a specific folder with pagination and sorting
72
+ response = await client.data_store.store.get_files_and_folders(
73
+ store_connector_id="02b2ef8b-8bff-42c3-9ddb-e325c893176e",
74
+ project_id="0196162b-1553-71b2-8ebf-44594717936e",
75
+ folder_id="3292db69-f365-4bb6-a2b6-a017a187fb77",
76
+ page_number=1,
77
+ page_size=50,
78
+ sort_by="lastSyncAt",
79
+ sort_order="DESC"
80
+ )
81
+
82
+ # Access the results
83
+ if response.files_and_folders:
84
+ for item in response.files_and_folders:
85
+ print(f"{item.name} ({item.type})")
86
+ if item.type == "folder":
87
+ print(f" Contains {item.file_count} files, {item.folder_count} folders")
88
+
89
+ print(f"Total items: {response.total_count}")
90
+ ```
91
+
92
+ Note:
93
+ The response includes:
94
+ - files_and_folders: List of file and folder objects with metadata
95
+ - total_count: Total number of items (useful for pagination)
96
+ """
97
+ request_data = self._pre_get_files_and_folders(
98
+ store_connector_id=store_connector_id,
99
+ project_id=project_id,
100
+ folder_id=folder_id,
101
+ page_number=page_number,
102
+ page_size=page_size,
103
+ sort_by=sort_by,
104
+ sort_order=sort_order,
105
+ filter_by=filter_by,
106
+ filter_value=filter_value,
107
+ correlation_id=correlation_id,
108
+ )
109
+
110
+ response = await self._request_handler.make_request(
111
+ "GET", request_data, return_json=True
112
+ )
113
+
114
+ return GetFilesAndFoldersResponse(**response)
@@ -0,0 +1,73 @@
1
+ from typing import Optional, Union
2
+ from urllib.parse import urljoin
3
+
4
+ from ..._request_handler import AsyncRequestHandler, RequestHandler
5
+
6
+
7
+ class BaseStore:
8
+ def __init__(self, request_handler: Union[RequestHandler, AsyncRequestHandler]):
9
+ self._request_handler = request_handler
10
+
11
+ def _pre_get_files_and_folders(
12
+ self,
13
+ store_connector_id: str,
14
+ project_id: str,
15
+ folder_id: Optional[str] = None,
16
+ page_number: Optional[int] = None,
17
+ page_size: Optional[int] = None,
18
+ sort_by: Optional[str] = None,
19
+ sort_order: Optional[str] = None,
20
+ filter_by: Optional[str] = None,
21
+ filter_value: Optional[str] = None,
22
+ correlation_id: Optional[str] = None,
23
+ ):
24
+ """
25
+ Prepare request data for get files and folders endpoint.
26
+
27
+ This internal method constructs the URL and query parameters for
28
+ retrieving files and folders from a store connector.
29
+
30
+ Args:
31
+ store_connector_id: ID of the store connector
32
+ project_id: ID of the project
33
+ folder_id: Optional folder ID to browse within a specific folder
34
+ page_number: Page number for pagination
35
+ page_size: Number of items per page
36
+ sort_by: Field to sort by
37
+ sort_order: Sort order (ASC or DESC)
38
+ filter_by: Field to filter by
39
+ filter_value: Value to filter by
40
+ correlation_id: Optional correlation ID for tracing
41
+
42
+ Returns:
43
+ RequestData: Prepared request data for the get files and folders endpoint
44
+ """
45
+ # Build URL with optional folder_id
46
+ if folder_id:
47
+ url_path = f"datastore/v1/store/{store_connector_id}/folders/{folder_id}"
48
+ else:
49
+ url_path = f"datastore/v1/store/{store_connector_id}/folders/"
50
+
51
+ url = urljoin(self._request_handler.base_url, url_path)
52
+
53
+ # Build query parameters
54
+ params = {"projectId": project_id}
55
+
56
+ if page_number is not None:
57
+ params["pagingParameters.pageNumber"] = page_number
58
+ if page_size is not None:
59
+ params["pagingParameters.pageSize"] = page_size
60
+ if sort_by is not None:
61
+ params["sortingParameters.sortBy"] = sort_by
62
+ if sort_order is not None:
63
+ params["sortingParameters.sortOrder"] = sort_order
64
+ if filter_by is not None:
65
+ params["filteringParameters.filterBy"] = filter_by
66
+ if filter_value is not None:
67
+ params["filteringParameters.filterValue"] = filter_value
68
+
69
+ request_data = self._request_handler.prepare_request(
70
+ url, params=params, payload=None, correlation_id=correlation_id
71
+ )
72
+
73
+ return request_data
@@ -0,0 +1,115 @@
1
+ from typing import Optional
2
+
3
+ from ....types.api.data_store.store import GetFilesAndFoldersResponse
4
+ from ..._request_handler import RequestHandler
5
+ from .base_store import BaseStore
6
+
7
+
8
+ class Store(BaseStore):
9
+ """Store client for browsing files and folders."""
10
+
11
+ def __init__(self, request_handler: RequestHandler):
12
+ super().__init__(request_handler)
13
+
14
+ def get_files_and_folders(
15
+ self,
16
+ store_connector_id: str,
17
+ project_id: str,
18
+ folder_id: Optional[str] = None,
19
+ page_number: Optional[int] = None,
20
+ page_size: Optional[int] = None,
21
+ sort_by: Optional[str] = None,
22
+ sort_order: Optional[str] = None,
23
+ filter_by: Optional[str] = None,
24
+ filter_value: Optional[str] = None,
25
+ correlation_id: Optional[str] = None,
26
+ ) -> GetFilesAndFoldersResponse:
27
+ """
28
+ Retrieve files and folders from a store connector in the Airia data store.
29
+
30
+ This method retrieves information about files and folders in the specified
31
+ store connector, with optional navigation into specific folders and support
32
+ for pagination, sorting, and filtering.
33
+
34
+ Args:
35
+ store_connector_id: The unique identifier of the store connector (GUID format)
36
+ project_id: The unique identifier of the project (GUID format)
37
+ folder_id: Optional folder ID to browse within a specific folder (GUID format).
38
+ If not provided, retrieves items from the root level.
39
+ page_number: Page number for pagination (1-indexed)
40
+ page_size: Number of items per page
41
+ sort_by: Field to sort by (e.g., "lastSyncAt", "name")
42
+ sort_order: Sort order ("ASC" or "DESC")
43
+ filter_by: Field to filter by
44
+ filter_value: Value to filter by
45
+ correlation_id: Optional correlation ID for request tracing
46
+
47
+ Returns:
48
+ GetFilesAndFoldersResponse: List of files and folders with metadata and total count
49
+
50
+ Raises:
51
+ AiriaAPIError: If the API request fails, including cases where:
52
+ - The store_connector_id doesn't exist (404)
53
+ - The project_id doesn't exist (404)
54
+ - The folder_id is invalid (404)
55
+ - Authentication fails (401)
56
+ - Access is forbidden (403)
57
+ - Server errors (5xx)
58
+ ValueError: If required parameters are missing or invalid
59
+
60
+ Example:
61
+ ```python
62
+ from airia import AiriaClient
63
+
64
+ client = AiriaClient(api_key="your_api_key")
65
+
66
+ # Get files and folders from root level
67
+ response = client.data_store.store.get_files_and_folders(
68
+ store_connector_id="02b2ef8b-8bff-42c3-9ddb-e325c893176e",
69
+ project_id="0196162b-1553-71b2-8ebf-44594717936e"
70
+ )
71
+
72
+ # Browse a specific folder with pagination and sorting
73
+ response = client.data_store.store.get_files_and_folders(
74
+ store_connector_id="02b2ef8b-8bff-42c3-9ddb-e325c893176e",
75
+ project_id="0196162b-1553-71b2-8ebf-44594717936e",
76
+ folder_id="3292db69-f365-4bb6-a2b6-a017a187fb77",
77
+ page_number=1,
78
+ page_size=50,
79
+ sort_by="lastSyncAt",
80
+ sort_order="DESC"
81
+ )
82
+
83
+ # Access the results
84
+ if response.files_and_folders:
85
+ for item in response.files_and_folders:
86
+ print(f"{item.name} ({item.type})")
87
+ if item.type == "folder":
88
+ print(f" Contains {item.file_count} files, {item.folder_count} folders")
89
+
90
+ print(f"Total items: {response.total_count}")
91
+ ```
92
+
93
+ Note:
94
+ The response includes:
95
+ - files_and_folders: List of file and folder objects with metadata
96
+ - total_count: Total number of items (useful for pagination)
97
+ """
98
+ request_data = self._pre_get_files_and_folders(
99
+ store_connector_id=store_connector_id,
100
+ project_id=project_id,
101
+ folder_id=folder_id,
102
+ page_number=page_number,
103
+ page_size=page_size,
104
+ sort_by=sort_by,
105
+ sort_order=sort_order,
106
+ filter_by=filter_by,
107
+ filter_value=filter_value,
108
+ correlation_id=correlation_id,
109
+ )
110
+
111
+ response = self._request_handler.make_request(
112
+ "GET", request_data, return_json=True
113
+ )
114
+
115
+ return GetFilesAndFoldersResponse(**response)
@@ -0,0 +1,15 @@
1
+ from .._request_handler import RequestHandler
2
+ from .store import Store
3
+
4
+
5
+ class DataStore:
6
+ """Data Store client for browsing files and folders in store connectors."""
7
+
8
+ def __init__(self, request_handler: RequestHandler):
9
+ """
10
+ Initialize the DataStore client.
11
+
12
+ Args:
13
+ request_handler: The request handler for making API calls
14
+ """
15
+ self.store = Store(request_handler)
@@ -48,7 +48,9 @@ class BaseDataVectorSearch:
48
48
  )
49
49
 
50
50
  request_data = self._request_handler.prepare_request(
51
- url, correlation_id=correlation_id, params={"pageNumber": page_number, "pageSize": page_size}
51
+ url,
52
+ correlation_id=correlation_id,
53
+ params={"pageNumber": page_number, "pageSize": page_size},
52
54
  )
53
55
 
54
56
  return request_data
@@ -133,7 +133,9 @@ class AsyncPipelinesConfig(BasePipelinesConfig):
133
133
  sort_direction: Optional[Literal["ASC", "DESC"]] = None,
134
134
  filter: Optional[str] = None,
135
135
  project_id: Optional[str] = None,
136
- model_credential_source_type: Optional[Literal["UserProvided", "Library"]] = None,
136
+ model_credential_source_type: Optional[
137
+ Literal["UserProvided", "Library"]
138
+ ] = None,
137
139
  correlation_id: Optional[str] = None,
138
140
  ) -> GetPipelinesConfigResponse:
139
141
  """
@@ -267,4 +269,6 @@ class AsyncPipelinesConfig(BasePipelinesConfig):
267
269
  correlation_id=correlation_id,
268
270
  api_version=ApiVersion.V1.value,
269
271
  )
270
- await self._request_handler.make_request("DELETE", request_data, return_json=False)
272
+ await self._request_handler.make_request(
273
+ "DELETE", request_data, return_json=False
274
+ )
@@ -85,7 +85,9 @@ class BasePipelinesConfig:
85
85
  sort_direction: Optional[Literal["ASC", "DESC"]] = None,
86
86
  filter: Optional[str] = None,
87
87
  project_id: Optional[str] = None,
88
- model_credential_source_type: Optional[Literal["UserProvided", "Library"]] = None,
88
+ model_credential_source_type: Optional[
89
+ Literal["UserProvided", "Library"]
90
+ ] = None,
89
91
  correlation_id: Optional[str] = None,
90
92
  api_version: str = ApiVersion.V1.value,
91
93
  ):
@@ -133,7 +133,9 @@ class PipelinesConfig(BasePipelinesConfig):
133
133
  sort_direction: Optional[Literal["ASC", "DESC"]] = None,
134
134
  filter: Optional[str] = None,
135
135
  project_id: Optional[str] = None,
136
- model_credential_source_type: Optional[Literal["UserProvided", "Library"]] = None,
136
+ model_credential_source_type: Optional[
137
+ Literal["UserProvided", "Library"]
138
+ ] = None,
137
139
  correlation_id: Optional[str] = None,
138
140
  ) -> GetPipelinesConfigResponse:
139
141
  """
@@ -11,6 +11,7 @@ from ._request_handler import RequestHandler
11
11
  from .attachments import Attachments
12
12
  from .base_client import AiriaBaseClient
13
13
  from .conversations import Conversations
14
+ from .data_store import DataStore
14
15
  from .data_vector_search import DataVectorSearch
15
16
  from .deployments import Deployments
16
17
  from .library import Library
@@ -70,6 +71,7 @@ class AiriaClient(AiriaBaseClient):
70
71
  self.project = Project(self._request_handler)
71
72
  self.conversations = Conversations(self._request_handler)
72
73
  self.store = Store(self._request_handler)
74
+ self.data_store = DataStore(self._request_handler)
73
75
  self.deployments = Deployments(self._request_handler)
74
76
  self.data_vector_search = DataVectorSearch(self._request_handler)
75
77
  self.library = Library(self._request_handler)
@@ -1,4 +1,5 @@
1
1
  from . import attachments as attachments
2
+ from . import data_store as data_store
2
3
  from . import models as models
3
4
  from . import pipeline_import as pipeline_import
4
5
  from . import tools as tools
@@ -1,3 +1,4 @@
1
+ from .get_file_url import GetFileUrlResponse
1
2
  from .upload_file import AttachmentResponse
2
3
 
3
- __all__ = ["AttachmentResponse"]
4
+ __all__ = ["AttachmentResponse", "GetFileUrlResponse"]
@@ -0,0 +1,19 @@
1
+ from typing import Optional
2
+
3
+ from pydantic import BaseModel, Field
4
+
5
+
6
+ class GetFileUrlResponse(BaseModel):
7
+ """Response model for getting a refreshed file URL.
8
+
9
+ This class contains the unique identifier and a refreshed signed URL
10
+ for an existing attachment, providing time-limited access to download
11
+ the attachment.
12
+
13
+ Attributes:
14
+ id: The unique identifier of the attachment
15
+ signed_url: A refreshed signed URL of the attachment in storage
16
+ """
17
+
18
+ id: Optional[str] = None
19
+ signed_url: Optional[str] = Field(None, alias="signedUrl")
@@ -0,0 +1,3 @@
1
+ from . import store as store
2
+
3
+ __all__ = ["store"]
@@ -0,0 +1,11 @@
1
+ from ._get_files_and_folders import (
2
+ FileOrFolder,
3
+ GetFilesAndFoldersResponse,
4
+ IngestionProcessingStatus,
5
+ )
6
+
7
+ __all__ = [
8
+ "GetFilesAndFoldersResponse",
9
+ "FileOrFolder",
10
+ "IngestionProcessingStatus",
11
+ ]
@@ -0,0 +1,84 @@
1
+ """
2
+ Pydantic models for data store file and folder listing API responses.
3
+
4
+ This module defines data structures for browsing files and folders within
5
+ store connectors on the Airia platform.
6
+ """
7
+
8
+ from typing import List, Optional
9
+
10
+ from pydantic import BaseModel, Field
11
+
12
+
13
+ class IngestionProcessingStatus(BaseModel):
14
+ """Status information for file ingestion processing.
15
+
16
+ Contains details about how a file is being processed during ingestion,
17
+ including processing mode, status, and any errors encountered.
18
+
19
+ Attributes:
20
+ table_document_processing_mode: Mode used for processing table documents
21
+ user_errors: List of user-facing error messages
22
+ system_errors: List of system error messages
23
+ status: Current processing status
24
+ """
25
+
26
+ table_document_processing_mode: Optional[str] = Field(
27
+ None, alias="tableDocumentProcessingMode"
28
+ )
29
+ user_errors: Optional[List[str]] = Field(None, alias="userErrors")
30
+ system_errors: Optional[List[str]] = Field(None, alias="systemErrors")
31
+ status: Optional[str] = None
32
+
33
+
34
+ class FileOrFolder(BaseModel):
35
+ """Individual file or folder entry in a store connector.
36
+
37
+ Represents a single item (file or folder) within the data store,
38
+ including metadata, status, and nested content counts for folders.
39
+
40
+ Attributes:
41
+ id: Unique identifier for the file or folder
42
+ name: Name of the file or folder
43
+ type: Type of the item (e.g., 'file' or 'folder')
44
+ size: Size in bytes (for files)
45
+ mime_type: MIME type (for files)
46
+ file_count: Number of files (for folders)
47
+ folder_count: Number of subfolders (for folders)
48
+ file_last_updated_at: Timestamp of last update (ISO format)
49
+ status: Current status of the file or folder
50
+ ingestion_processing_statuses: List of ingestion processing status information
51
+ additional_metadata_json: Additional metadata as JSON string
52
+ """
53
+
54
+ id: Optional[str] = None
55
+ name: Optional[str] = None
56
+ type: Optional[str] = None
57
+ size: Optional[int] = None
58
+ mime_type: Optional[str] = Field(None, alias="mimeType")
59
+ file_count: Optional[int] = Field(None, alias="fileCount")
60
+ folder_count: Optional[int] = Field(None, alias="folderCount")
61
+ file_last_updated_at: Optional[str] = Field(None, alias="fileLastUpdatedAt")
62
+ status: Optional[str] = None
63
+ ingestion_processing_statuses: Optional[List[IngestionProcessingStatus]] = Field(
64
+ None, alias="ingestionProcessingStatuses"
65
+ )
66
+ additional_metadata_json: Optional[str] = Field(
67
+ None, alias="additionalMetadataJson"
68
+ )
69
+
70
+
71
+ class GetFilesAndFoldersResponse(BaseModel):
72
+ """Response model for getting files and folders from a store connector.
73
+
74
+ Contains a list of files and folders along with pagination information.
75
+
76
+ Attributes:
77
+ files_and_folders: List of file and folder objects
78
+ total_count: Total number of items available (may be greater than items returned)
79
+ """
80
+
81
+ files_and_folders: Optional[List[FileOrFolder]] = Field(
82
+ None, alias="filesAndFolders"
83
+ )
84
+ total_count: Optional[int] = Field(None, alias="totalCount")
@@ -8,4 +8,4 @@ __all__ = [
8
8
  "GetLibraryModelsResponse",
9
9
  "LibraryModel",
10
10
  "TokenPriceConversion",
11
- ]
11
+ ]
@@ -121,7 +121,9 @@ class ModelItem(BaseModel):
121
121
  has_tool_support: bool = Field(alias="hasToolSupport")
122
122
  has_stream_support: bool = Field(alias="hasStreamSupport")
123
123
  library_model_id: Optional[str] = Field(None, alias="libraryModelId")
124
- user_provided_details: Optional[ModelUserProvidedDetails] = Field(None, alias="userProvidedDetails")
124
+ user_provided_details: Optional[ModelUserProvidedDetails] = Field(
125
+ None, alias="userProvidedDetails"
126
+ )
125
127
  allow_airia_credentials: bool = Field(alias="allowAiriaCredentials")
126
128
  allow_byok_credentials: bool = Field(alias="allowBYOKCredentials")
127
129
  price_type: str = Field(alias="priceType")
@@ -85,9 +85,7 @@ class ExportCredentials(BaseModel):
85
85
  description="Gets or sets the administrative scope.",
86
86
  alias="administrativeScope",
87
87
  )
88
- origin: Optional[str] = Field(
89
- None, description="Gets or sets the origin."
90
- )
88
+ origin: Optional[str] = Field(None, description="Gets or sets the origin.")
91
89
  custom_credentials: Optional[ExportCustomCredentials] = Field(
92
90
  None,
93
91
  description="Gets or sets the custom credentials.",
@@ -204,9 +202,7 @@ class ExportJsonFormatterStepConfiguration(BaseModel):
204
202
  template: The JSON formatter template
205
203
  """
206
204
 
207
- template: str = Field(
208
- ..., description="Gets the JSON formatter template."
209
- )
205
+ template: str = Field(..., description="Gets the JSON formatter template.")
210
206
 
211
207
 
212
208
  class ExportConditionalBranchConfigDefinition(BaseModel):
@@ -220,7 +216,7 @@ class ExportConditionalBranchConfigDefinition(BaseModel):
220
216
  id: str = Field(..., description="Gets or sets the Id.")
221
217
  label: Optional[str] = Field(
222
218
  None,
223
- description="Gets or sets the route label (e.g., \"Route 1\", \"High Priority\").",
219
+ description='Gets or sets the route label (e.g., "Route 1", "High Priority").',
224
220
  )
225
221
 
226
222
 
@@ -398,7 +394,9 @@ class ExportPipelineStep(BaseModel):
398
394
  None, description="Gets or sets the code.", alias="pythonCodeBlockId"
399
395
  )
400
396
  approval_request_id: Optional[str] = Field(
401
- None, description="Gets or sets the approval request ID.", alias="approvalRequestId"
397
+ None,
398
+ description="Gets or sets the approval request ID.",
399
+ alias="approvalRequestId",
402
400
  )
403
401
  webhook_approval_request_id: Optional[str] = Field(
404
402
  None,
@@ -431,7 +429,9 @@ class ExportPipelineStep(BaseModel):
431
429
  description="Gets or sets the loop step configuration.",
432
430
  alias="loopStepConfiguration",
433
431
  )
434
- json_formatter_step_configuration: Optional[ExportJsonFormatterStepConfiguration] = Field(
432
+ json_formatter_step_configuration: Optional[
433
+ ExportJsonFormatterStepConfiguration
434
+ ] = Field(
435
435
  None,
436
436
  description="Gets or sets the JSON formatter step configuration.",
437
437
  alias="jsonFormatterStepConfiguration",
@@ -627,9 +627,7 @@ class ExportPipeline(BaseModel):
627
627
  description="Gets or sets the markdown description.",
628
628
  alias="markdownDescription",
629
629
  )
630
- tagline: Optional[str] = Field(
631
- None, description="Gets or sets the tagline."
632
- )
630
+ tagline: Optional[str] = Field(None, description="Gets or sets the tagline.")
633
631
  video_link: Optional[str] = Field(
634
632
  None, description="Gets or sets the video link.", alias="videoLink"
635
633
  )
@@ -719,7 +717,9 @@ class ExportVectorStore(BaseModel):
719
717
  None, description="Gets or sets the credential ID.", alias="credentialId"
720
718
  )
721
719
  configuration_json: Optional[str] = Field(
722
- None, description="Gets or sets the configuration JSON.", alias="configurationJson"
720
+ None,
721
+ description="Gets or sets the configuration JSON.",
722
+ alias="configurationJson",
723
723
  )
724
724
  sparse_vector_enabled: bool = Field(
725
725
  ...,
@@ -727,7 +727,9 @@ class ExportVectorStore(BaseModel):
727
727
  alias="sparseVectorEnabled",
728
728
  )
729
729
  embedding_provider: str = Field(
730
- ..., description="Gets or sets the embedding provider.", alias="embeddingProvider"
730
+ ...,
731
+ description="Gets or sets the embedding provider.",
732
+ alias="embeddingProvider",
731
733
  )
732
734
  embedding_configuration_json: Optional[str] = Field(
733
735
  None,
@@ -1045,9 +1047,7 @@ class ExportTool(BaseModel):
1045
1047
  description="Gets or sets a value indicating what the credential type is when the tool use user based credentials.",
1046
1048
  alias="useUserCredentialsType",
1047
1049
  )
1048
- provider: Optional[str] = Field(
1049
- None, description="Gets or sets the provider."
1050
- )
1050
+ provider: Optional[str] = Field(None, description="Gets or sets the provider.")
1051
1051
  body_type: Optional[str] = Field(
1052
1052
  None, description="Gets or sets the body type.", alias="bodyType"
1053
1053
  )
@@ -1543,9 +1543,7 @@ class ExportMetadata(BaseModel):
1543
1543
  readiness: Optional[str] = Field(
1544
1544
  None, description="Gets or sets the readiness level."
1545
1545
  )
1546
- department: Optional[str] = Field(
1547
- None, description="Gets or sets the department."
1548
- )
1546
+ department: Optional[str] = Field(None, description="Gets or sets the department.")
1549
1547
  agent_last_updated: Optional[str] = Field(
1550
1548
  None,
1551
1549
  description="Gets or sets the timestamp when the agent was last updated.",
@@ -1585,7 +1583,9 @@ class ExportApprovalRequest(BaseModel):
1585
1583
  alias="denialDescription",
1586
1584
  )
1587
1585
  approved_handle_id: str = Field(
1588
- ..., description="Gets or sets the approved handle ID.", alias="approvedHandleId"
1586
+ ...,
1587
+ description="Gets or sets the approved handle ID.",
1588
+ alias="approvedHandleId",
1589
1589
  )
1590
1590
  denied_handle_id: str = Field(
1591
1591
  ..., description="Gets or sets the denied handle ID.", alias="deniedHandleId"
@@ -1626,7 +1626,9 @@ class ExportWebhookApprovalRequest(BaseModel):
1626
1626
  description="Gets or sets the optional Message to include in the webhook payload.",
1627
1627
  )
1628
1628
  approved_handle_id: str = Field(
1629
- ..., description="Gets the approved handle identifier.", alias="approvedHandleId"
1629
+ ...,
1630
+ description="Gets the approved handle identifier.",
1631
+ alias="approvedHandleId",
1630
1632
  )
1631
1633
  denied_handle_id: str = Field(
1632
1634
  ..., description="Gets the denied handle identifier.", alias="deniedHandleId"
@@ -1694,9 +1696,13 @@ class ExportAgentCardSkill(BaseModel):
1694
1696
 
1695
1697
  id: str = Field(..., description="Gets or sets the ID.")
1696
1698
  name: str = Field(..., description="Gets or sets the name.")
1697
- description: Optional[str] = Field(None, description="Gets or sets the description.")
1699
+ description: Optional[str] = Field(
1700
+ None, description="Gets or sets the description."
1701
+ )
1698
1702
  tags: Optional[List[str]] = Field(None, description="Gets or sets the tags.")
1699
- examples: Optional[List[str]] = Field(None, description="Gets or sets the examples.")
1703
+ examples: Optional[List[str]] = Field(
1704
+ None, description="Gets or sets the examples."
1705
+ )
1700
1706
  input_modes: Optional[List[str]] = Field(
1701
1707
  None, description="Gets or sets the input modes.", alias="inputModes"
1702
1708
  )
@@ -1736,7 +1742,9 @@ class ExportAgentCard(BaseModel):
1736
1742
  )
1737
1743
  version: str = Field(..., description="Gets or sets the version.")
1738
1744
  documentation_url: Optional[str] = Field(
1739
- None, description="Gets or sets the documentation URL.", alias="documentationUrl"
1745
+ None,
1746
+ description="Gets or sets the documentation URL.",
1747
+ alias="documentationUrl",
1740
1748
  )
1741
1749
  capabilities: Optional[ExportAgentCardCapabilities] = Field(
1742
1750
  None, description="Gets or sets the capabilities."
@@ -1745,7 +1753,9 @@ class ExportAgentCard(BaseModel):
1745
1753
  None, description="Gets or sets the authentication."
1746
1754
  )
1747
1755
  default_input_modes: List[str] = Field(
1748
- ..., description="Gets or sets the default input modes.", alias="defaultInputModes"
1756
+ ...,
1757
+ description="Gets or sets the default input modes.",
1758
+ alias="defaultInputModes",
1749
1759
  )
1750
1760
  default_output_modes: List[str] = Field(
1751
1761
  ...,
@@ -1804,9 +1814,7 @@ class ExportMCPAnnotations(BaseModel):
1804
1814
  description="Gets or sets a value indicating whether the tool is read-only.",
1805
1815
  alias="readOnlyHint",
1806
1816
  )
1807
- title: Optional[str] = Field(
1808
- None, description="Gets or sets the tool title."
1809
- )
1817
+ title: Optional[str] = Field(None, description="Gets or sets the tool title.")
1810
1818
 
1811
1819
 
1812
1820
  class ExportToolInterface(BaseModel):
@@ -1879,7 +1887,7 @@ class ExportSDKStepCredentialReference(BaseModel):
1879
1887
 
1880
1888
  property_name: str = Field(
1881
1889
  ...,
1882
- description="Gets or sets the property name in the parameters class (e.g., \"CredentialId\").",
1890
+ description='Gets or sets the property name in the parameters class (e.g., "CredentialId").',
1883
1891
  alias="propertyName",
1884
1892
  )
1885
1893
  original_credential_id: str = Field(
@@ -1922,21 +1930,19 @@ class ExportSDKStepDefinition(BaseModel):
1922
1930
  ...,
1923
1931
  description="Gets or sets the unique identifier of the SDK step.",
1924
1932
  )
1925
- name: str = Field(
1926
- ..., description="Gets or sets the name of the SDK step."
1927
- )
1933
+ name: str = Field(..., description="Gets or sets the name of the SDK step.")
1928
1934
  sdk_step_type: str = Field(
1929
1935
  ...,
1930
- description="Gets or sets the type of SDK step (e.g., \"HttpRequest\", \"OneDrive_ListItems\").",
1936
+ description='Gets or sets the type of SDK step (e.g., "HttpRequest", "OneDrive_ListItems").',
1931
1937
  alias="sdkStepType",
1932
1938
  )
1933
1939
  category: str = Field(
1934
1940
  ...,
1935
- description="Gets or sets the SDK step category (e.g., \"Actions\", \"Logic\").",
1941
+ description='Gets or sets the SDK step category (e.g., "Actions", "Logic").',
1936
1942
  )
1937
1943
  group: str = Field(
1938
1944
  ...,
1939
- description="Gets or sets the SDK step group (e.g., \"Http\", \"OneDrive\").",
1945
+ description='Gets or sets the SDK step group (e.g., "Http", "OneDrive").',
1940
1946
  )
1941
1947
  version: str = Field(
1942
1948
  ...,
@@ -106,7 +106,9 @@ class ToolCredential(BaseModel):
106
106
  expires_on: Optional[datetime] = Field(None, alias="expiresOn")
107
107
  administrative_scope: str = Field(alias="administrativeScope")
108
108
  user_id: Optional[str] = Field(None, alias="userId")
109
- credential_data: List[CredentialEntry] = Field(default_factory=list, alias="credentialData")
109
+ credential_data: List[CredentialEntry] = Field(
110
+ default_factory=list, alias="credentialData"
111
+ )
110
112
  custom_credentials: Optional[dict] = Field(None, alias="customCredentials")
111
113
  custom_credentials_id: Optional[str] = Field(None, alias="customCredentialsId")
112
114
  tenant_id: Optional[str] = Field(None, alias="tenantId")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airia
3
- Version: 0.1.37
3
+ Version: 0.1.39
4
4
  Summary: Python SDK for Airia API
5
5
  Author-email: Airia LLC <support@airia.com>
6
6
  License: MIT
@@ -3,24 +3,31 @@ airia/constants.py,sha256=oKABowOTsJPIQ1AgtVpNN73oKuhh1DekBC5axYSm8lY,647
3
3
  airia/exceptions.py,sha256=l1FCKlWC6tONvAxSxv4YEAXjpHEM-eQQQ3mEtSkJvhc,1233
4
4
  airia/logs.py,sha256=V5YSAq6TPGT0AxOUCwIxy69Zu8jQubzhhjf8deC0rSw,8370
5
5
  airia/client/__init__.py,sha256=6gSQ9bl7j79q1HPE0o5py3IRdkwWWuU_7J4h05Dd2o8,127
6
- airia/client/async_client.py,sha256=am58aQ-VGgu7GYAo4aJfyNOmULQy2FgzvqzfEzx5S0A,7529
6
+ airia/client/async_client.py,sha256=gPNSgsKwkimMEKjUvEJqMH_aXqZ32hzHtCW0O7H5yog,7632
7
7
  airia/client/base_client.py,sha256=bEs75GIUZ2DSfV2JLcRTq0VGGgf0HjcgsDeuBLYhuq0,3181
8
- airia/client/sync_client.py,sha256=C7UA9_AWcSAgVEMpznLzScuPm5LefH-_RB6bQzTUvHk,7338
8
+ airia/client/sync_client.py,sha256=YqyeoT9l8ypiRri7SrieR8U7yclazoe8u_XHuTNd6LQ,7431
9
9
  airia/client/_request_handler/__init__.py,sha256=FOdJMfzjN0Tw0TeD8mDJwHgte70Fw_j08EljtfulCvw,157
10
10
  airia/client/_request_handler/async_request_handler.py,sha256=TqjiyMG88PCsXL0lzIFpXkzP-GljtDvNpp8KSR_7d7Q,11556
11
11
  airia/client/_request_handler/base_request_handler.py,sha256=-_RhSb0nAKZf5-oNZM9jyeIcnbqX58Ht1a66qmlPuGA,3515
12
12
  airia/client/_request_handler/sync_request_handler.py,sha256=ce5ryMJRFhtyhnlL_Zspjf_MSiHOTvz75nA9LfhsUbc,10668
13
13
  airia/client/attachments/__init__.py,sha256=EId17aIpzEs6Qw1R2DNzetpxYDJZDzLN4J_IrH2wYE8,137
14
- airia/client/attachments/async_attachments.py,sha256=FhMQdQBM5zCrxwcTdje39fEvvVOH3lyryBMuIoMWb4o,1771
15
- airia/client/attachments/base_attachments.py,sha256=Gaqtm5Gc-vSm8uoJT-qm6yawUR0LhIcg6_CPR0-NELY,1777
16
- airia/client/attachments/sync_attachments.py,sha256=ffyIXJAlwJzmdM4HqAqCwHETMUfCiB23ymgoy2Li7fI,1727
14
+ airia/client/attachments/async_attachments.py,sha256=9LxvEnlFbovGPCLHElj4RJVrxzWtEKTmECrIUULZw1c,3690
15
+ airia/client/attachments/base_attachments.py,sha256=teFeI2fbIxgmGw6MF3x-9YXi7iaJL-g6vs52YI9saC8,3053
16
+ airia/client/attachments/sync_attachments.py,sha256=_2ZJ5ovoDHwLqsahYI355X8ZMAhPAX3UqWxZGVmog7g,3583
17
17
  airia/client/conversations/__init__.py,sha256=5gbcHEYLHOn5cK95tlM52GPOmar8gpyK-BivyASmFEo,149
18
18
  airia/client/conversations/async_conversations.py,sha256=XbSErt_6RKcQwDdGHKr_roSf2EkxhR6ogBiN3oMFNhk,7448
19
19
  airia/client/conversations/base_conversations.py,sha256=YpIvA66xFZbOC4L8P17pISCqyWlJvju34FHX7Pcj8Aw,4848
20
20
  airia/client/conversations/sync_conversations.py,sha256=IelRpGuoV0sBwOfZd44igV3i5P35Hv-zzZwCC7y6mlA,7200
21
+ airia/client/data_store/__init__.py,sha256=MqbqpIQE2OaUQjCb8wJJbxuShfzhNwBmRc7AXhpdSPE,127
22
+ airia/client/data_store/async_data_store.py,sha256=R_iYEuztOL6lojlNekyiF9ZfNlRxbPoxSge0Oxzme24,464
23
+ airia/client/data_store/sync_data_store.py,sha256=2aCb8RRqRSMSHQgIjLy-mK1mp2a8X58HRA4nQtcSIwY,422
24
+ airia/client/data_store/store/__init__.py,sha256=-rbtYQ8PTaFA6Fs2dm7Db2C3RDNvagaK3iE4PpLRcjg,101
25
+ airia/client/data_store/store/async_store.py,sha256=iqYrsAkR9c6PA_uTDkT7HQQzrL-EfSGpL_J1-TYAqLA,4744
26
+ airia/client/data_store/store/base_store.py,sha256=R7wn29Ch9oaXdxx8Xn2JB1vMYXI8UadBoCFB5AcdPHI,2746
27
+ airia/client/data_store/store/sync_store.py,sha256=IK7wQU-HxJaXsqGkRJn1W5CSoyVkp9lZMbMncYnaZRY,4589
21
28
  airia/client/data_vector_search/__init__.py,sha256=RmeB9wdIWubjnmoco321dx0T2h5tV0-rTsuHQdXOwI0,171
22
29
  airia/client/data_vector_search/async_data_vector_search.py,sha256=aeI963entUS3hSZGfKwFOYl2fKMWLHn74P4EQUHh4v8,3347
23
- airia/client/data_vector_search/base_data_vector_search.py,sha256=bMKsi90zHGFR74ckKInORJtdvrrAmJZmzuChMSgeDhQ,1889
30
+ airia/client/data_vector_search/base_data_vector_search.py,sha256=Zha55-mqzYgNE2-R6kP8ubQXPK0T_0-XiMAE1FRkr6Y,1914
24
31
  airia/client/data_vector_search/sync_data_vector_search.py,sha256=le3C4ttzlsZQlLi6g5SG6jkpJpGpTve1Dd-Ou7UB7NU,3094
25
32
  airia/client/deployments/__init__.py,sha256=Xu_MqbeUrtqYE4tH6hbmvUk8eQScWJ6MEyYFlVEwlRw,310
26
33
  airia/client/deployments/async_deployments.py,sha256=VUeRU448xXXaitbDMwz7NNHU09tllyd4h9_m_l1HElY,5366
@@ -43,9 +50,9 @@ airia/client/pipeline_import/async_pipeline_import.py,sha256=BC6HkkMNiU7_7H8vAhX
43
50
  airia/client/pipeline_import/base_pipeline_import.py,sha256=_6AHf_bL3RABDaIQN3-ivL3Z8NR1l0J7A4S0ilJCluY,3844
44
51
  airia/client/pipeline_import/sync_pipeline_import.py,sha256=SaF8uIWGFhk5i0e45JGY2WXLVNyJPq4WXwUA78m7Yv8,7000
45
52
  airia/client/pipelines_config/__init__.py,sha256=Mjn3ie-bQo6zjayxrJDvoJG2vKis72yGt_CQkvtREw4,163
46
- airia/client/pipelines_config/async_pipelines_config.py,sha256=EYrm7NU9RfPThdte-gkiGXq4CqaDj7_hMPv1ib-imuM,10935
47
- airia/client/pipelines_config/base_pipelines_config.py,sha256=UIc2ubAErFk6dpUvghvNb9ga-n9AQn4abwKd5KtXrA0,6459
48
- airia/client/pipelines_config/sync_pipelines_config.py,sha256=y-iFDkIeooXdpPqXu1kAjnR9GRKR4dxlurW4EBrLyMk,10796
53
+ airia/client/pipelines_config/async_pipelines_config.py,sha256=p0oTu95bvZ3Fs-dpTKVIGBA_hB_vX_MFeoQg_iYFi_4,10979
54
+ airia/client/pipelines_config/base_pipelines_config.py,sha256=zGfsA4OBbydiufBEK3jsY3Ci4zKUh3C2gxDIVmP4NdM,6481
55
+ airia/client/pipelines_config/sync_pipelines_config.py,sha256=oKFA4HhPOi7_L2xzQ7MVv5Xh3k4VyCPkL5JhdwXU7Mg,10818
49
56
  airia/client/project/__init__.py,sha256=GGEGfxtNzSO_BMAJ8Wfo8ZTq8BIdR6MHf6gSwhPv9mE,113
50
57
  airia/client/project/async_project.py,sha256=MTX2rvoltXL26_qvn_Wn5MkiTdpbRZHZRwbt4zAdFjE,5734
51
58
  airia/client/project/base_project.py,sha256=HFoxeHgvCYOwUhLPF2xYGwF5e1A9WXpCrOWAjRkHWBY,3389
@@ -62,27 +69,31 @@ airia/types/__init__.py,sha256=fbNw1eto8l-qgz-W2QG32i-zQY7WiWZY3JR6fL2HsKM,235
62
69
  airia/types/_api_version.py,sha256=Uzom6O2ZG92HN_Z2h-lTydmO2XYX9RVs4Yi4DJmXytE,255
63
70
  airia/types/_request_data.py,sha256=q8t7KfO2WvgbPVYPvPWiwYb8LyP0kovlOgHFhZIU6ns,1278
64
71
  airia/types/_structured_output.py,sha256=j_uqBMl5SmDNv0v_FrAli0ugQoLzhZKT_YGLHvWc2A0,5357
65
- airia/types/api/__init__.py,sha256=hAkcgB07FFdYUqGAP9-7CUFTBTYUOn6DFRH4wMo2PoM,150
66
- airia/types/api/attachments/__init__.py,sha256=zFSCwsmPr05I7NJRG6MCWME3AKhBpL0MhgOBOaF7rok,78
72
+ airia/types/api/__init__.py,sha256=9ORtzlH5iQRbO72EbIPaOwi10G2uvuxTnh4WhuQu6Ps,189
73
+ airia/types/api/attachments/__init__.py,sha256=DDkYf2Lmh67Q1YM-E9x80QQ-La285AwZsR2_OECHoOM,145
74
+ airia/types/api/attachments/get_file_url.py,sha256=CdAAp0wiyCE8yeXAbHt0zbCwVgw-c19UmJgcWuV5msk,572
67
75
  airia/types/api/attachments/upload_file.py,sha256=XBCm1lZJAloFxmyp_3fbtuJ9Y28O-mbAfwy6D0EvTgQ,457
68
76
  airia/types/api/conversations/__init__.py,sha256=W6GlNVZCAY5eViJOoPl1bY9_etRBWeUnYZJJt7WHtfI,269
69
77
  airia/types/api/conversations/_conversations.py,sha256=O7VHs2_Ykg0s6Phe0sAVvbO7YVu6d6R2M2-JkWAipxI,4845
78
+ airia/types/api/data_store/__init__.py,sha256=Kv5Vle9HNrCQv0bXRfFZ6zp4BHzGtmwy1slycJKo7jw,50
79
+ airia/types/api/data_store/store/__init__.py,sha256=wmdNMDUUsIGy8SWOrvH_QS9_cniSPvZt5re4OuIPp7k,223
80
+ airia/types/api/data_store/store/_get_files_and_folders.py,sha256=mkwabQdWFlwLqKDgRZFTZDmVTss52VB0LRd66TepZpA,3161
70
81
  airia/types/api/data_vector_search/__init__.py,sha256=TXomyrDRlsFmiBWUNoSyD3-dSK5ahYHvn9-s8CIS5xI,112
71
82
  airia/types/api/data_vector_search/get_file_chunks.py,sha256=ywP1zH_OXnyP5ZyJ_epaZWRLvOxC72RnL235ySYSZA0,1597
72
83
  airia/types/api/deployments/__init__.py,sha256=ONQgkKr_8i6FhcBsHyzT4mYOP_H0OPUAsxvxroZWBMU,538
73
84
  airia/types/api/deployments/get_deployment.py,sha256=KBr9edTu-e-tC3u9bpAdz0CMWzk0DFQxusrVU6OZ7mc,4398
74
85
  airia/types/api/deployments/get_deployments.py,sha256=5Dm7pTkEFmIZ4p4Scle9x9p3Nqy5tnXxeft3H4O_Fa8,8718
75
- airia/types/api/library/__init__.py,sha256=b2TLWT90EhQ41f8LcGMtvzEftd3ol_eKc41ian6zXX8,201
86
+ airia/types/api/library/__init__.py,sha256=Yka_tt95gouqaMayQ1zVR5Ps-JBGgjSXfsTSVhAygSo,202
76
87
  airia/types/api/library/_library_models.py,sha256=d0YbmKNuUDXrieSRZh1IkhW_2aKrnaU08yuxqij98Dg,10486
77
88
  airia/types/api/models/__init__.py,sha256=bm4Rn86Tuk7q3988bJ_gvS5zY7t-sqCFt1BYb0nS7Xo,224
78
- airia/types/api/models/list_models.py,sha256=r4xpRhoawG8VLmNwVSZRsS__K6bCv-HTVVw2c_ClJow,5483
89
+ airia/types/api/models/list_models.py,sha256=HlwyxlCNCT4wH0L7nQn7faqUz_6P9iirlzdUYbMvlhg,5497
79
90
  airia/types/api/pipeline_execution/__init__.py,sha256=SSuwWyW3IXRv-3cGUwuKp-yC7utOqqsZGkdpydi12NU,910
80
91
  airia/types/api/pipeline_execution/_pipeline_execution.py,sha256=Y167Tdt0XHY2ZGV-Ji0DlBog2KRJDtCIeseXAb-cyyo,6889
81
92
  airia/types/api/pipeline_execution/get_pipeline_execution.py,sha256=Mkp3bV9sajVq4GARVyJviFWPR2BEtLCbZZLHTgQqcSI,2925
82
93
  airia/types/api/pipeline_import/__init__.py,sha256=5m8e4faOYGCEFLQWJgj-v5H4NXPNtnlAKAxA4tGJUbw,267
83
94
  airia/types/api/pipeline_import/create_agent_from_pipeline_definition.py,sha256=vn2aZGPnahmstHYKKMMN1hyTMRWFa2uAjpAYGwaI2xg,4394
84
95
  airia/types/api/pipelines_config/__init__.py,sha256=6nxX-y1cAp66aupdzG_EvHeizBNoJ56i5nhRQIp2kbg,2752
85
- airia/types/api/pipelines_config/export_pipeline_definition.py,sha256=2rrniWhNihzyDK-w8ppYMxksl-hdqisWQFdfogiiZYw,79193
96
+ airia/types/api/pipelines_config/export_pipeline_definition.py,sha256=J7yzIank3VFnC-NgYZ6mXCi7sggdQV0pcXbKAynhAtw,79238
86
97
  airia/types/api/pipelines_config/get_pipeline_config.py,sha256=gvyp_xGpxr3Elcsu04JSQRPDvjmxRCPDAAR0rbE-oGs,23538
87
98
  airia/types/api/pipelines_config/get_pipelines_config.py,sha256=RbiX5zISxzGRxzPGHe7QpO-Ro-0woQsPGLxtiP4Y4K4,15955
88
99
  airia/types/api/project/__init__.py,sha256=ervHvCeqt08JkMRsSrG1ZnQshE70of-8kf4VeW2HG9c,113
@@ -91,12 +102,12 @@ airia/types/api/store/__init__.py,sha256=BgViwV_SHE9cxtilPnA2xWRk6MkAbxYxansmGeZ
91
102
  airia/types/api/store/get_file.py,sha256=Li3CpWUktQruNeoKSTlHJPXzNMaysG_Zy-fXGji8zs8,6174
92
103
  airia/types/api/store/get_files.py,sha256=v22zmOuTSFqzrS73L5JL_FgBeF5a5wutv1nK4IHAoW0,700
93
104
  airia/types/api/tools/__init__.py,sha256=r4jcHknQcLIb3jVkGR5lcmuapHqln7-rot3EBCNmZtI,146
94
- airia/types/api/tools/_tools.py,sha256=PSJYFok7yQdE4it55iQmbryFzKN54nT6N161X1Rkp5U,9241
105
+ airia/types/api/tools/_tools.py,sha256=AcnzgOes_xjdw1BaiiSE0p2o495Xp02zAwNGQMu2sXg,9255
95
106
  airia/types/sse/__init__.py,sha256=KWnNTfsQnthfrU128pUX6ounvSS7DvjC-Y21FE-OdMk,1863
96
107
  airia/types/sse/sse_messages.py,sha256=asq9KG5plT2XSgQMz-Nqo0WcKlXvE8UT3E-WLhCegPk,30244
97
108
  airia/utils/sse_parser.py,sha256=XCTkuaroYWaVQOgBq8VpbseQYSAVruF69AvKUwZQKTA,4251
98
- airia-0.1.37.dist-info/licenses/LICENSE,sha256=R3ClUMMKPRItIcZ0svzyj2taZZnFYw568YDNzN9KQ1Q,1066
99
- airia-0.1.37.dist-info/METADATA,sha256=JIQioSlT7ZRhwTVDMaVEtdncWYlZhODaWScapoYJdfY,4949
100
- airia-0.1.37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
101
- airia-0.1.37.dist-info/top_level.txt,sha256=qUQEKfs_hdOYTwjKj1JZbRhS5YeXDNaKQaVTrzabS6w,6
102
- airia-0.1.37.dist-info/RECORD,,
109
+ airia-0.1.39.dist-info/licenses/LICENSE,sha256=R3ClUMMKPRItIcZ0svzyj2taZZnFYw568YDNzN9KQ1Q,1066
110
+ airia-0.1.39.dist-info/METADATA,sha256=LFp3lWJ5Q6uN0G3zHaGiVl8Q55uJtPNxUc6uZnvqv88,4949
111
+ airia-0.1.39.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
112
+ airia-0.1.39.dist-info/top_level.txt,sha256=qUQEKfs_hdOYTwjKj1JZbRhS5YeXDNaKQaVTrzabS6w,6
113
+ airia-0.1.39.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5