h2ogpte 1.6.43rc7__py3-none-any.whl → 1.6.44rc9__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.
h2ogpte/__init__.py CHANGED
@@ -3,7 +3,7 @@ from h2ogpte.h2ogpte import H2OGPTE
3
3
  from h2ogpte.h2ogpte_async import H2OGPTEAsync
4
4
  from h2ogpte.session_async import SessionAsync
5
5
 
6
- __version__ = "1.6.43rc7"
6
+ __version__ = "1.6.44rc9"
7
7
 
8
8
  __all__ = [
9
9
  "H2OGPTE",
h2ogpte/connectors.py CHANGED
@@ -49,22 +49,28 @@ def create_ingest_job_from_cloud_storage(
49
49
  class S3Credential:
50
50
  def __init__(
51
51
  self,
52
- access_key_id: str,
53
- secret_access_key: str,
52
+ access_key_id: str = None,
53
+ secret_access_key: str = None,
54
54
  session_token: str = None,
55
55
  role_arn: str = None,
56
+ external_id: str = None,
57
+ use_irsa: bool = False,
56
58
  ):
57
59
  """
58
60
  Creates an object with S3 credentials.
59
- :param access_key_id: Access Key ID
60
- :param secret_access_key: Secret Access Key
61
+ :param access_key_id: Access Key ID (not required when using IRSA)
62
+ :param secret_access_key: Secret Access Key (not required when using IRSA)
61
63
  :param session_token: Session Token (optional)
62
64
  :param role_arn: Role providing access to the S3 storage
65
+ :param external_id: External ID for cross-account role assumption (optional)
66
+ :param use_irsa: Enable IAM Roles for Service Accounts (IRSA) - set to True to use pod service account
63
67
  """
64
68
  self.access_key_id = access_key_id
65
69
  self.secret_access_key = secret_access_key
66
70
  self.session_token = session_token
67
71
  self.role_arn = role_arn
72
+ self.external_id = external_id
73
+ self.use_irsa = use_irsa
68
74
 
69
75
 
70
76
  def create_ingest_job_from_s3(
h2ogpte/h2ogpte.py CHANGED
@@ -1249,6 +1249,22 @@ class H2OGPTE(H2OGPTESyncBase):
1249
1249
  )
1250
1250
  return collection_id
1251
1251
 
1252
+ def reset_all_collection_expirations(self):
1253
+ """
1254
+ Reset any expiry dates and inactivity intervals that have been set for all collections (admin only). This will also reset any archived collections back to active.
1255
+ """
1256
+
1257
+ header = self._get_auth_header()
1258
+ with self._RESTClient(self) as rest_client:
1259
+ result = _get_result(
1260
+ lambda: _rest_to_client_exceptions(
1261
+ lambda: rest_client.collection_api.reset_all_collection_expirations(
1262
+ _headers=header,
1263
+ )
1264
+ )
1265
+ )
1266
+ return result
1267
+
1252
1268
  def set_collection_size_limit(
1253
1269
  self, collection_id: str, limit: Union[int, str]
1254
1270
  ) -> str:
@@ -6389,6 +6405,22 @@ class H2OGPTE(H2OGPTESyncBase):
6389
6405
  )
6390
6406
  return result
6391
6407
 
6408
+ def remove_permissions_from_role(
6409
+ self, role_id: str, permission_name: str
6410
+ ) -> Result:
6411
+ header = self._get_auth_header()
6412
+ with self._RESTClient(self) as rest_client:
6413
+ result = _get_result(
6414
+ lambda: _rest_to_client_exceptions(
6415
+ lambda: rest_client.permission_api.remove_permission_from_role(
6416
+ role_id=role_id,
6417
+ permission_name=permission_name,
6418
+ _headers=header,
6419
+ )
6420
+ )
6421
+ )
6422
+ return result
6423
+
6392
6424
  def set_global_configuration(
6393
6425
  self,
6394
6426
  key_name: str,
@@ -6927,6 +6959,37 @@ class H2OGPTE(H2OGPTESyncBase):
6927
6959
  )
6928
6960
 
6929
6961
  def add_agent_key(self, agent_keys: List[dict]) -> List[dict]:
6962
+ """Create one or more agent keys for use with agent tools.
6963
+
6964
+ Processes a list of agent key configurations and creates each key.
6965
+ Continues processing remaining keys if individual key creation fails.
6966
+
6967
+ Args:
6968
+ agent_keys: List of key configuration dictionaries.
6969
+
6970
+ Expected structure::
6971
+
6972
+ [
6973
+ {
6974
+ "name": str,
6975
+ # Display name for the key
6976
+
6977
+ "value": str,
6978
+ # The actual key/token value
6979
+
6980
+ "key_type": str,
6981
+ # Type of key ("private" or "shared")
6982
+
6983
+ "description": str,
6984
+ # (Optional) Description of the key's purpose
6985
+ }
6986
+ ]
6987
+
6988
+ Returns:
6989
+ List[dict]: List of created key results. Each successful creation
6990
+ returns {"agent_key_id": str}. Failed creations are logged but
6991
+ don't appear in results.
6992
+ """
6930
6993
  result = []
6931
6994
  header = self._get_auth_header()
6932
6995
  with self._RESTClient(self) as rest_client:
@@ -6993,6 +7056,29 @@ class H2OGPTE(H2OGPTESyncBase):
6993
7056
  def assign_agent_key_for_tool(
6994
7057
  self, tool_dict_list: List[dict]
6995
7058
  ) -> Optional[List[Tuple]]:
7059
+ """Assign agent keys to tools by creating associations between them.
7060
+
7061
+ Args:
7062
+ tool_dict_list: List of dictionaries containing tool association data.
7063
+ Each dictionary should have a "tool_dict" key with the association
7064
+ configuration data for creating agent tool key associations.
7065
+
7066
+ Expected tool_dict structure::
7067
+
7068
+ {
7069
+ "tool": str, # Name of the tool (for example, "test_tool").
7070
+ "keys": list[dict], # List of key definitions. Each item is a dictionary with:
7071
+ # - "name": str
7072
+ # Environment variable name (for example, "TEST_KEY").
7073
+ # - "key_id": Any
7074
+ # Identifier assigned to the key (for example, agent_key_id).
7075
+ }
7076
+
7077
+ Returns:
7078
+ Optional[List[Tuple]]: List of tuples containing association details.
7079
+ Each tuple contains (associate_id, tool, key_name, key_id, user_id).
7080
+ Returns None if no associations were created.
7081
+ """
6996
7082
  result = []
6997
7083
  header = self._get_auth_header()
6998
7084
  with self._RESTClient(self) as rest_client:
h2ogpte/h2ogpte_async.py CHANGED
@@ -1449,6 +1449,22 @@ class H2OGPTEAsync:
1449
1449
  )
1450
1450
  return collection_id
1451
1451
 
1452
+ async def reset_all_collection_expirations(self):
1453
+ """
1454
+ Reset any expiry dates and inactivity intervals that have been set for all collections (admin only). This will also reset any archived collections back to active.
1455
+ """
1456
+
1457
+ header = await self._get_auth_header()
1458
+ async with self._RESTClient(self) as rest_client:
1459
+ result = _get_result(
1460
+ await _rest_to_client_exceptions(
1461
+ rest_client.collection_api.reset_all_collection_expirations(
1462
+ _headers=header,
1463
+ )
1464
+ )
1465
+ )
1466
+ return result
1467
+
1452
1468
  async def set_collection_size_limit(
1453
1469
  self, collection_id: str, limit: Union[int, str]
1454
1470
  ) -> str:
@@ -6650,6 +6666,22 @@ class H2OGPTEAsync:
6650
6666
  )
6651
6667
  return result
6652
6668
 
6669
+ async def remove_permissions_from_role(
6670
+ self, role_id: str, permission_name: str
6671
+ ) -> Result:
6672
+ header = await self._get_auth_header()
6673
+ async with self._RESTClient(self) as rest_client:
6674
+ result = await _get_result(
6675
+ _rest_to_client_exceptions(
6676
+ rest_client.permission_api.remove_permission_from_role(
6677
+ role_id=role_id,
6678
+ permission_name=permission_name,
6679
+ _headers=header,
6680
+ )
6681
+ )
6682
+ )
6683
+ return result
6684
+
6653
6685
  async def set_global_configuration(
6654
6686
  self,
6655
6687
  key_name: str,
@@ -7184,6 +7216,37 @@ class H2OGPTEAsync:
7184
7216
  )
7185
7217
 
7186
7218
  async def add_agent_key(self, agent_keys: List[dict]) -> List[dict]:
7219
+ """Create one or more agent keys for use with agent tools.
7220
+
7221
+ Processes a list of agent key configurations and creates each key.
7222
+ Continues processing remaining keys if individual key creation fails.
7223
+
7224
+ Args:
7225
+ agent_keys: List of key configuration dictionaries.
7226
+
7227
+ Expected structure::
7228
+
7229
+ [
7230
+ {
7231
+ "name": str,
7232
+ # Display name for the key
7233
+
7234
+ "value": str,
7235
+ # The actual key/token value
7236
+
7237
+ "key_type": str,
7238
+ # Type of key ("private" or "shared")
7239
+
7240
+ "description": str,
7241
+ # (Optional) Description of the key's purpose
7242
+ }
7243
+ ]
7244
+
7245
+ Returns:
7246
+ List[dict]: List of created key results. Each successful creation
7247
+ returns {"agent_key_id": str}. Failed creations are logged but
7248
+ don't appear in results.
7249
+ """
7187
7250
  result = []
7188
7251
  header = await self._get_auth_header()
7189
7252
  async with self._RESTClient(self) as rest_client:
@@ -7250,6 +7313,29 @@ class H2OGPTEAsync:
7250
7313
  async def assign_agent_key_for_tool(
7251
7314
  self, tool_dict_list: List[dict]
7252
7315
  ) -> Optional[List[Tuple]]:
7316
+ """Assign agent keys to tools by creating associations between them.
7317
+
7318
+ Args:
7319
+ tool_dict_list: List of dictionaries containing tool association data.
7320
+ Each dictionary should have a "tool_dict" key with the association
7321
+ configuration data for creating agent tool key associations.
7322
+
7323
+ Expected tool_dict structure::
7324
+
7325
+ {
7326
+ "tool": str, # Name of the tool (for example, "test_tool").
7327
+ "keys": list[dict], # List of key definitions. Each item is a dictionary with:
7328
+ # - "name": str
7329
+ # Environment variable name (for example, "TEST_KEY").
7330
+ # - "key_id": Any
7331
+ # Identifier assigned to the key (for example, agent_key_id).
7332
+ }
7333
+
7334
+ Returns:
7335
+ Optional[List[Tuple]]: List of tuples containing association details.
7336
+ Each tuple contains (associate_id, tool, key_name, key_id, user_id).
7337
+ Returns None if no associations were created.
7338
+ """
7253
7339
  result = []
7254
7340
  header = await self._get_auth_header()
7255
7341
  async with self._RESTClient(self) as rest_client:
@@ -14,7 +14,7 @@
14
14
  """ # noqa: E501
15
15
 
16
16
 
17
- __version__ = "1.6.43-dev7"
17
+ __version__ = "1.6.44-dev9"
18
18
 
19
19
  # import apis into sdk package
20
20
  from h2ogpte.rest_async.api.api_keys_api import APIKeysApi
@@ -9559,6 +9559,255 @@ class CollectionsApi:
9559
9559
 
9560
9560
 
9561
9561
 
9562
+ @validate_call
9563
+ async def reset_all_collection_expirations(
9564
+ self,
9565
+ _request_timeout: Union[
9566
+ None,
9567
+ Annotated[StrictFloat, Field(gt=0)],
9568
+ Tuple[
9569
+ Annotated[StrictFloat, Field(gt=0)],
9570
+ Annotated[StrictFloat, Field(gt=0)]
9571
+ ]
9572
+ ] = None,
9573
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
9574
+ _content_type: Optional[StrictStr] = None,
9575
+ _headers: Optional[Dict[StrictStr, Any]] = None,
9576
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
9577
+ ) -> None:
9578
+ """Reset all collection expiry dates and inactivity intervals that have been set.
9579
+
9580
+ Reset any expiry dates and inactivity intervals that have been set for all collections (admin only). This will also reset any archived collections back to active.
9581
+
9582
+ :param _request_timeout: timeout setting for this request. If one
9583
+ number provided, it will be total request
9584
+ timeout. It can also be a pair (tuple) of
9585
+ (connection, read) timeouts.
9586
+ :type _request_timeout: int, tuple(int, int), optional
9587
+ :param _request_auth: set to override the auth_settings for an a single
9588
+ request; this effectively ignores the
9589
+ authentication in the spec for a single request.
9590
+ :type _request_auth: dict, optional
9591
+ :param _content_type: force content-type for the request.
9592
+ :type _content_type: str, Optional
9593
+ :param _headers: set to override the headers for a single
9594
+ request; this effectively ignores the headers
9595
+ in the spec for a single request.
9596
+ :type _headers: dict, optional
9597
+ :param _host_index: set to override the host_index for a single
9598
+ request; this effectively ignores the host_index
9599
+ in the spec for a single request.
9600
+ :type _host_index: int, optional
9601
+ :return: Returns the result object.
9602
+ """ # noqa: E501
9603
+
9604
+ _param = self._reset_all_collection_expirations_serialize(
9605
+ _request_auth=_request_auth,
9606
+ _content_type=_content_type,
9607
+ _headers=_headers,
9608
+ _host_index=_host_index
9609
+ )
9610
+
9611
+ _response_types_map: Dict[str, Optional[str]] = {
9612
+ '204': None,
9613
+ '401': "EndpointError",
9614
+ }
9615
+ response_data = await self.api_client.call_api(
9616
+ *_param,
9617
+ _request_timeout=_request_timeout
9618
+ )
9619
+ await response_data.read()
9620
+ return self.api_client.response_deserialize(
9621
+ response_data=response_data,
9622
+ response_types_map=_response_types_map,
9623
+ ).data
9624
+
9625
+
9626
+ @validate_call
9627
+ async def reset_all_collection_expirations_with_http_info(
9628
+ self,
9629
+ _request_timeout: Union[
9630
+ None,
9631
+ Annotated[StrictFloat, Field(gt=0)],
9632
+ Tuple[
9633
+ Annotated[StrictFloat, Field(gt=0)],
9634
+ Annotated[StrictFloat, Field(gt=0)]
9635
+ ]
9636
+ ] = None,
9637
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
9638
+ _content_type: Optional[StrictStr] = None,
9639
+ _headers: Optional[Dict[StrictStr, Any]] = None,
9640
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
9641
+ ) -> ApiResponse[None]:
9642
+ """Reset all collection expiry dates and inactivity intervals that have been set.
9643
+
9644
+ Reset any expiry dates and inactivity intervals that have been set for all collections (admin only). This will also reset any archived collections back to active.
9645
+
9646
+ :param _request_timeout: timeout setting for this request. If one
9647
+ number provided, it will be total request
9648
+ timeout. It can also be a pair (tuple) of
9649
+ (connection, read) timeouts.
9650
+ :type _request_timeout: int, tuple(int, int), optional
9651
+ :param _request_auth: set to override the auth_settings for an a single
9652
+ request; this effectively ignores the
9653
+ authentication in the spec for a single request.
9654
+ :type _request_auth: dict, optional
9655
+ :param _content_type: force content-type for the request.
9656
+ :type _content_type: str, Optional
9657
+ :param _headers: set to override the headers for a single
9658
+ request; this effectively ignores the headers
9659
+ in the spec for a single request.
9660
+ :type _headers: dict, optional
9661
+ :param _host_index: set to override the host_index for a single
9662
+ request; this effectively ignores the host_index
9663
+ in the spec for a single request.
9664
+ :type _host_index: int, optional
9665
+ :return: Returns the result object.
9666
+ """ # noqa: E501
9667
+
9668
+ _param = self._reset_all_collection_expirations_serialize(
9669
+ _request_auth=_request_auth,
9670
+ _content_type=_content_type,
9671
+ _headers=_headers,
9672
+ _host_index=_host_index
9673
+ )
9674
+
9675
+ _response_types_map: Dict[str, Optional[str]] = {
9676
+ '204': None,
9677
+ '401': "EndpointError",
9678
+ }
9679
+ response_data = await self.api_client.call_api(
9680
+ *_param,
9681
+ _request_timeout=_request_timeout
9682
+ )
9683
+ await response_data.read()
9684
+ return self.api_client.response_deserialize(
9685
+ response_data=response_data,
9686
+ response_types_map=_response_types_map,
9687
+ )
9688
+
9689
+
9690
+ @validate_call
9691
+ async def reset_all_collection_expirations_without_preload_content(
9692
+ self,
9693
+ _request_timeout: Union[
9694
+ None,
9695
+ Annotated[StrictFloat, Field(gt=0)],
9696
+ Tuple[
9697
+ Annotated[StrictFloat, Field(gt=0)],
9698
+ Annotated[StrictFloat, Field(gt=0)]
9699
+ ]
9700
+ ] = None,
9701
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
9702
+ _content_type: Optional[StrictStr] = None,
9703
+ _headers: Optional[Dict[StrictStr, Any]] = None,
9704
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
9705
+ ) -> RESTResponseType:
9706
+ """Reset all collection expiry dates and inactivity intervals that have been set.
9707
+
9708
+ Reset any expiry dates and inactivity intervals that have been set for all collections (admin only). This will also reset any archived collections back to active.
9709
+
9710
+ :param _request_timeout: timeout setting for this request. If one
9711
+ number provided, it will be total request
9712
+ timeout. It can also be a pair (tuple) of
9713
+ (connection, read) timeouts.
9714
+ :type _request_timeout: int, tuple(int, int), optional
9715
+ :param _request_auth: set to override the auth_settings for an a single
9716
+ request; this effectively ignores the
9717
+ authentication in the spec for a single request.
9718
+ :type _request_auth: dict, optional
9719
+ :param _content_type: force content-type for the request.
9720
+ :type _content_type: str, Optional
9721
+ :param _headers: set to override the headers for a single
9722
+ request; this effectively ignores the headers
9723
+ in the spec for a single request.
9724
+ :type _headers: dict, optional
9725
+ :param _host_index: set to override the host_index for a single
9726
+ request; this effectively ignores the host_index
9727
+ in the spec for a single request.
9728
+ :type _host_index: int, optional
9729
+ :return: Returns the result object.
9730
+ """ # noqa: E501
9731
+
9732
+ _param = self._reset_all_collection_expirations_serialize(
9733
+ _request_auth=_request_auth,
9734
+ _content_type=_content_type,
9735
+ _headers=_headers,
9736
+ _host_index=_host_index
9737
+ )
9738
+
9739
+ _response_types_map: Dict[str, Optional[str]] = {
9740
+ '204': None,
9741
+ '401': "EndpointError",
9742
+ }
9743
+ response_data = await self.api_client.call_api(
9744
+ *_param,
9745
+ _request_timeout=_request_timeout
9746
+ )
9747
+ return response_data.response
9748
+
9749
+
9750
+ def _reset_all_collection_expirations_serialize(
9751
+ self,
9752
+ _request_auth,
9753
+ _content_type,
9754
+ _headers,
9755
+ _host_index,
9756
+ ) -> RequestSerialized:
9757
+
9758
+ _host = None
9759
+
9760
+ _collection_formats: Dict[str, str] = {
9761
+ }
9762
+
9763
+ _path_params: Dict[str, str] = {}
9764
+ _query_params: List[Tuple[str, str]] = []
9765
+ _header_params: Dict[str, Optional[str]] = _headers or {}
9766
+ _form_params: List[Tuple[str, str]] = []
9767
+ _files: Dict[
9768
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
9769
+ ] = {}
9770
+ _body_params: Optional[bytes] = None
9771
+
9772
+ # process the path parameters
9773
+ # process the query parameters
9774
+ # process the header parameters
9775
+ # process the form parameters
9776
+ # process the body parameter
9777
+
9778
+
9779
+ # set the HTTP header `Accept`
9780
+ if 'Accept' not in _header_params:
9781
+ _header_params['Accept'] = self.api_client.select_header_accept(
9782
+ [
9783
+ 'application/json'
9784
+ ]
9785
+ )
9786
+
9787
+
9788
+ # authentication setting
9789
+ _auth_settings: List[str] = [
9790
+ 'bearerAuth'
9791
+ ]
9792
+
9793
+ return self.api_client.param_serialize(
9794
+ method='POST',
9795
+ resource_path='/collections/reset_all_collection_expirations',
9796
+ path_params=_path_params,
9797
+ query_params=_query_params,
9798
+ header_params=_header_params,
9799
+ body=_body_params,
9800
+ post_params=_form_params,
9801
+ files=_files,
9802
+ auth_settings=_auth_settings,
9803
+ collection_formats=_collection_formats,
9804
+ _host=_host,
9805
+ _request_auth=_request_auth
9806
+ )
9807
+
9808
+
9809
+
9810
+
9562
9811
  @validate_call
9563
9812
  async def reset_collection_prompt_settings(
9564
9813
  self,
@@ -7082,7 +7082,7 @@ class PermissionsApi:
7082
7082
  @validate_call
7083
7083
  async def remove_permission_from_role(
7084
7084
  self,
7085
- role_id: Annotated[StrictStr, Field(description="The unique identifier of an user.")],
7085
+ role_id: Annotated[StrictStr, Field(description="The unique identifier of the role.")],
7086
7086
  permission_name: Annotated[StrictStr, Field(description="The permission name.")],
7087
7087
  _request_timeout: Union[
7088
7088
  None,
@@ -7101,7 +7101,7 @@ class PermissionsApi:
7101
7101
 
7102
7102
  Removes permission from a given role.
7103
7103
 
7104
- :param role_id: The unique identifier of an user. (required)
7104
+ :param role_id: The unique identifier of the role. (required)
7105
7105
  :type role_id: str
7106
7106
  :param permission_name: The permission name. (required)
7107
7107
  :type permission_name: str
@@ -7155,7 +7155,7 @@ class PermissionsApi:
7155
7155
  @validate_call
7156
7156
  async def remove_permission_from_role_with_http_info(
7157
7157
  self,
7158
- role_id: Annotated[StrictStr, Field(description="The unique identifier of an user.")],
7158
+ role_id: Annotated[StrictStr, Field(description="The unique identifier of the role.")],
7159
7159
  permission_name: Annotated[StrictStr, Field(description="The permission name.")],
7160
7160
  _request_timeout: Union[
7161
7161
  None,
@@ -7174,7 +7174,7 @@ class PermissionsApi:
7174
7174
 
7175
7175
  Removes permission from a given role.
7176
7176
 
7177
- :param role_id: The unique identifier of an user. (required)
7177
+ :param role_id: The unique identifier of the role. (required)
7178
7178
  :type role_id: str
7179
7179
  :param permission_name: The permission name. (required)
7180
7180
  :type permission_name: str
@@ -7228,7 +7228,7 @@ class PermissionsApi:
7228
7228
  @validate_call
7229
7229
  async def remove_permission_from_role_without_preload_content(
7230
7230
  self,
7231
- role_id: Annotated[StrictStr, Field(description="The unique identifier of an user.")],
7231
+ role_id: Annotated[StrictStr, Field(description="The unique identifier of the role.")],
7232
7232
  permission_name: Annotated[StrictStr, Field(description="The permission name.")],
7233
7233
  _request_timeout: Union[
7234
7234
  None,
@@ -7247,7 +7247,7 @@ class PermissionsApi:
7247
7247
 
7248
7248
  Removes permission from a given role.
7249
7249
 
7250
- :param role_id: The unique identifier of an user. (required)
7250
+ :param role_id: The unique identifier of the role. (required)
7251
7251
  :type role_id: str
7252
7252
  :param permission_name: The permission name. (required)
7253
7253
  :type permission_name: str
@@ -90,7 +90,7 @@ class ApiClient:
90
90
  self.default_headers[header_name] = header_value
91
91
  self.cookie = cookie
92
92
  # Set default User-Agent.
93
- self.user_agent = 'OpenAPI-Generator/1.6.43-dev7/python'
93
+ self.user_agent = 'OpenAPI-Generator/1.6.44-dev9/python'
94
94
  self.client_side_validation = configuration.client_side_validation
95
95
 
96
96
  async def __aenter__(self):
@@ -499,7 +499,7 @@ class Configuration:
499
499
  "OS: {env}\n"\
500
500
  "Python Version: {pyversion}\n"\
501
501
  "Version of the API: v1.0.0\n"\
502
- "SDK Package Version: 1.6.43-dev7".\
502
+ "SDK Package Version: 1.6.44-dev9".\
503
503
  format(env=sys.platform, pyversion=sys.version)
504
504
 
505
505
  def get_host_settings(self) -> List[HostSetting]:
@@ -17,20 +17,22 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, StrictStr
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
24
24
 
25
25
  class S3Credentials(BaseModel):
26
26
  """
27
- The object with S3 credentials. If the object is not provided, only public buckets will be accessible.
27
+ The object with S3 credentials. If the object is not provided, only public buckets will be accessible. When use_irsa is true, access_key_id and secret_access_key are optional and the pod's service account will be used for authentication.
28
28
  """ # noqa: E501
29
- access_key_id: StrictStr
30
- secret_access_key: StrictStr
31
- session_token: Optional[StrictStr] = None
32
- role_arn: Optional[StrictStr] = None
33
- __properties: ClassVar[List[str]] = ["access_key_id", "secret_access_key", "session_token", "role_arn"]
29
+ use_irsa: Optional[StrictBool] = Field(default=False, description="Enable IAM Roles for Service Accounts (IRSA) to authenticate using the pod's service account. When enabled, explicit credentials are not required.")
30
+ access_key_id: Optional[StrictStr] = Field(default=None, description="AWS access key ID. Not required when using IRSA.")
31
+ secret_access_key: Optional[StrictStr] = Field(default=None, description="AWS secret access key. Not required when using IRSA.")
32
+ session_token: Optional[StrictStr] = Field(default=None, description="AWS session token for temporary credentials.")
33
+ role_arn: Optional[StrictStr] = Field(default=None, description="The Amazon Resource Name (ARN) of IAM Role that will be utilized for accessing the S3 storage. When IRSA is enabled, this role will be assumed from the service account identity (role chaining). When IRSA is disabled, it requires specification of other credentials to identify an identity the role will be associated with.")
34
+ external_id: Optional[StrictStr] = Field(default=None, description="Optional security token for assuming cross-account roles. This is used to prevent the 'confused deputy' problem when a third party assumes a role in your account. Only required if the role's trust policy requires an external ID.")
35
+ __properties: ClassVar[List[str]] = ["use_irsa", "access_key_id", "secret_access_key", "session_token", "role_arn", "external_id"]
34
36
 
35
37
  model_config = ConfigDict(
36
38
  populate_by_name=True,
@@ -83,10 +85,12 @@ class S3Credentials(BaseModel):
83
85
  return cls.model_validate(obj)
84
86
 
85
87
  _obj = cls.model_validate({
88
+ "use_irsa": obj.get("use_irsa") if obj.get("use_irsa") is not None else False,
86
89
  "access_key_id": obj.get("access_key_id"),
87
90
  "secret_access_key": obj.get("secret_access_key"),
88
91
  "session_token": obj.get("session_token"),
89
- "role_arn": obj.get("role_arn")
92
+ "role_arn": obj.get("role_arn"),
93
+ "external_id": obj.get("external_id")
90
94
  })
91
95
  return _obj
92
96
 
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, StrictStr
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
@@ -30,7 +30,8 @@ class UserPermission(BaseModel):
30
30
  name: StrictStr
31
31
  description: Optional[StrictStr] = None
32
32
  category: Optional[StrictStr] = None
33
- __properties: ClassVar[List[str]] = ["id", "name", "description", "category"]
33
+ dependencies: Optional[List[StrictStr]] = Field(default=None, description="List of permissions that this permission depends on.")
34
+ __properties: ClassVar[List[str]] = ["id", "name", "description", "category", "dependencies"]
34
35
 
35
36
  model_config = ConfigDict(
36
37
  populate_by_name=True,
@@ -86,7 +87,8 @@ class UserPermission(BaseModel):
86
87
  "id": obj.get("id"),
87
88
  "name": obj.get("name"),
88
89
  "description": obj.get("description"),
89
- "category": obj.get("category")
90
+ "category": obj.get("category"),
91
+ "dependencies": obj.get("dependencies")
90
92
  })
91
93
  return _obj
92
94
 
@@ -14,7 +14,7 @@
14
14
  """ # noqa: E501
15
15
 
16
16
 
17
- __version__ = "1.6.43-dev7"
17
+ __version__ = "1.6.44-dev9"
18
18
 
19
19
  # import apis into sdk package
20
20
  from h2ogpte.rest_sync.api.api_keys_api import APIKeysApi
@@ -9559,6 +9559,255 @@ class CollectionsApi:
9559
9559
 
9560
9560
 
9561
9561
 
9562
+ @validate_call
9563
+ def reset_all_collection_expirations(
9564
+ self,
9565
+ _request_timeout: Union[
9566
+ None,
9567
+ Annotated[StrictFloat, Field(gt=0)],
9568
+ Tuple[
9569
+ Annotated[StrictFloat, Field(gt=0)],
9570
+ Annotated[StrictFloat, Field(gt=0)]
9571
+ ]
9572
+ ] = None,
9573
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
9574
+ _content_type: Optional[StrictStr] = None,
9575
+ _headers: Optional[Dict[StrictStr, Any]] = None,
9576
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
9577
+ ) -> None:
9578
+ """Reset all collection expiry dates and inactivity intervals that have been set.
9579
+
9580
+ Reset any expiry dates and inactivity intervals that have been set for all collections (admin only). This will also reset any archived collections back to active.
9581
+
9582
+ :param _request_timeout: timeout setting for this request. If one
9583
+ number provided, it will be total request
9584
+ timeout. It can also be a pair (tuple) of
9585
+ (connection, read) timeouts.
9586
+ :type _request_timeout: int, tuple(int, int), optional
9587
+ :param _request_auth: set to override the auth_settings for an a single
9588
+ request; this effectively ignores the
9589
+ authentication in the spec for a single request.
9590
+ :type _request_auth: dict, optional
9591
+ :param _content_type: force content-type for the request.
9592
+ :type _content_type: str, Optional
9593
+ :param _headers: set to override the headers for a single
9594
+ request; this effectively ignores the headers
9595
+ in the spec for a single request.
9596
+ :type _headers: dict, optional
9597
+ :param _host_index: set to override the host_index for a single
9598
+ request; this effectively ignores the host_index
9599
+ in the spec for a single request.
9600
+ :type _host_index: int, optional
9601
+ :return: Returns the result object.
9602
+ """ # noqa: E501
9603
+
9604
+ _param = self._reset_all_collection_expirations_serialize(
9605
+ _request_auth=_request_auth,
9606
+ _content_type=_content_type,
9607
+ _headers=_headers,
9608
+ _host_index=_host_index
9609
+ )
9610
+
9611
+ _response_types_map: Dict[str, Optional[str]] = {
9612
+ '204': None,
9613
+ '401': "EndpointError",
9614
+ }
9615
+ response_data = self.api_client.call_api(
9616
+ *_param,
9617
+ _request_timeout=_request_timeout
9618
+ )
9619
+ response_data.read()
9620
+ return self.api_client.response_deserialize(
9621
+ response_data=response_data,
9622
+ response_types_map=_response_types_map,
9623
+ ).data
9624
+
9625
+
9626
+ @validate_call
9627
+ def reset_all_collection_expirations_with_http_info(
9628
+ self,
9629
+ _request_timeout: Union[
9630
+ None,
9631
+ Annotated[StrictFloat, Field(gt=0)],
9632
+ Tuple[
9633
+ Annotated[StrictFloat, Field(gt=0)],
9634
+ Annotated[StrictFloat, Field(gt=0)]
9635
+ ]
9636
+ ] = None,
9637
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
9638
+ _content_type: Optional[StrictStr] = None,
9639
+ _headers: Optional[Dict[StrictStr, Any]] = None,
9640
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
9641
+ ) -> ApiResponse[None]:
9642
+ """Reset all collection expiry dates and inactivity intervals that have been set.
9643
+
9644
+ Reset any expiry dates and inactivity intervals that have been set for all collections (admin only). This will also reset any archived collections back to active.
9645
+
9646
+ :param _request_timeout: timeout setting for this request. If one
9647
+ number provided, it will be total request
9648
+ timeout. It can also be a pair (tuple) of
9649
+ (connection, read) timeouts.
9650
+ :type _request_timeout: int, tuple(int, int), optional
9651
+ :param _request_auth: set to override the auth_settings for an a single
9652
+ request; this effectively ignores the
9653
+ authentication in the spec for a single request.
9654
+ :type _request_auth: dict, optional
9655
+ :param _content_type: force content-type for the request.
9656
+ :type _content_type: str, Optional
9657
+ :param _headers: set to override the headers for a single
9658
+ request; this effectively ignores the headers
9659
+ in the spec for a single request.
9660
+ :type _headers: dict, optional
9661
+ :param _host_index: set to override the host_index for a single
9662
+ request; this effectively ignores the host_index
9663
+ in the spec for a single request.
9664
+ :type _host_index: int, optional
9665
+ :return: Returns the result object.
9666
+ """ # noqa: E501
9667
+
9668
+ _param = self._reset_all_collection_expirations_serialize(
9669
+ _request_auth=_request_auth,
9670
+ _content_type=_content_type,
9671
+ _headers=_headers,
9672
+ _host_index=_host_index
9673
+ )
9674
+
9675
+ _response_types_map: Dict[str, Optional[str]] = {
9676
+ '204': None,
9677
+ '401': "EndpointError",
9678
+ }
9679
+ response_data = self.api_client.call_api(
9680
+ *_param,
9681
+ _request_timeout=_request_timeout
9682
+ )
9683
+ response_data.read()
9684
+ return self.api_client.response_deserialize(
9685
+ response_data=response_data,
9686
+ response_types_map=_response_types_map,
9687
+ )
9688
+
9689
+
9690
+ @validate_call
9691
+ def reset_all_collection_expirations_without_preload_content(
9692
+ self,
9693
+ _request_timeout: Union[
9694
+ None,
9695
+ Annotated[StrictFloat, Field(gt=0)],
9696
+ Tuple[
9697
+ Annotated[StrictFloat, Field(gt=0)],
9698
+ Annotated[StrictFloat, Field(gt=0)]
9699
+ ]
9700
+ ] = None,
9701
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
9702
+ _content_type: Optional[StrictStr] = None,
9703
+ _headers: Optional[Dict[StrictStr, Any]] = None,
9704
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
9705
+ ) -> RESTResponseType:
9706
+ """Reset all collection expiry dates and inactivity intervals that have been set.
9707
+
9708
+ Reset any expiry dates and inactivity intervals that have been set for all collections (admin only). This will also reset any archived collections back to active.
9709
+
9710
+ :param _request_timeout: timeout setting for this request. If one
9711
+ number provided, it will be total request
9712
+ timeout. It can also be a pair (tuple) of
9713
+ (connection, read) timeouts.
9714
+ :type _request_timeout: int, tuple(int, int), optional
9715
+ :param _request_auth: set to override the auth_settings for an a single
9716
+ request; this effectively ignores the
9717
+ authentication in the spec for a single request.
9718
+ :type _request_auth: dict, optional
9719
+ :param _content_type: force content-type for the request.
9720
+ :type _content_type: str, Optional
9721
+ :param _headers: set to override the headers for a single
9722
+ request; this effectively ignores the headers
9723
+ in the spec for a single request.
9724
+ :type _headers: dict, optional
9725
+ :param _host_index: set to override the host_index for a single
9726
+ request; this effectively ignores the host_index
9727
+ in the spec for a single request.
9728
+ :type _host_index: int, optional
9729
+ :return: Returns the result object.
9730
+ """ # noqa: E501
9731
+
9732
+ _param = self._reset_all_collection_expirations_serialize(
9733
+ _request_auth=_request_auth,
9734
+ _content_type=_content_type,
9735
+ _headers=_headers,
9736
+ _host_index=_host_index
9737
+ )
9738
+
9739
+ _response_types_map: Dict[str, Optional[str]] = {
9740
+ '204': None,
9741
+ '401': "EndpointError",
9742
+ }
9743
+ response_data = self.api_client.call_api(
9744
+ *_param,
9745
+ _request_timeout=_request_timeout
9746
+ )
9747
+ return response_data.response
9748
+
9749
+
9750
+ def _reset_all_collection_expirations_serialize(
9751
+ self,
9752
+ _request_auth,
9753
+ _content_type,
9754
+ _headers,
9755
+ _host_index,
9756
+ ) -> RequestSerialized:
9757
+
9758
+ _host = None
9759
+
9760
+ _collection_formats: Dict[str, str] = {
9761
+ }
9762
+
9763
+ _path_params: Dict[str, str] = {}
9764
+ _query_params: List[Tuple[str, str]] = []
9765
+ _header_params: Dict[str, Optional[str]] = _headers or {}
9766
+ _form_params: List[Tuple[str, str]] = []
9767
+ _files: Dict[
9768
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
9769
+ ] = {}
9770
+ _body_params: Optional[bytes] = None
9771
+
9772
+ # process the path parameters
9773
+ # process the query parameters
9774
+ # process the header parameters
9775
+ # process the form parameters
9776
+ # process the body parameter
9777
+
9778
+
9779
+ # set the HTTP header `Accept`
9780
+ if 'Accept' not in _header_params:
9781
+ _header_params['Accept'] = self.api_client.select_header_accept(
9782
+ [
9783
+ 'application/json'
9784
+ ]
9785
+ )
9786
+
9787
+
9788
+ # authentication setting
9789
+ _auth_settings: List[str] = [
9790
+ 'bearerAuth'
9791
+ ]
9792
+
9793
+ return self.api_client.param_serialize(
9794
+ method='POST',
9795
+ resource_path='/collections/reset_all_collection_expirations',
9796
+ path_params=_path_params,
9797
+ query_params=_query_params,
9798
+ header_params=_header_params,
9799
+ body=_body_params,
9800
+ post_params=_form_params,
9801
+ files=_files,
9802
+ auth_settings=_auth_settings,
9803
+ collection_formats=_collection_formats,
9804
+ _host=_host,
9805
+ _request_auth=_request_auth
9806
+ )
9807
+
9808
+
9809
+
9810
+
9562
9811
  @validate_call
9563
9812
  def reset_collection_prompt_settings(
9564
9813
  self,
@@ -7082,7 +7082,7 @@ class PermissionsApi:
7082
7082
  @validate_call
7083
7083
  def remove_permission_from_role(
7084
7084
  self,
7085
- role_id: Annotated[StrictStr, Field(description="The unique identifier of an user.")],
7085
+ role_id: Annotated[StrictStr, Field(description="The unique identifier of the role.")],
7086
7086
  permission_name: Annotated[StrictStr, Field(description="The permission name.")],
7087
7087
  _request_timeout: Union[
7088
7088
  None,
@@ -7101,7 +7101,7 @@ class PermissionsApi:
7101
7101
 
7102
7102
  Removes permission from a given role.
7103
7103
 
7104
- :param role_id: The unique identifier of an user. (required)
7104
+ :param role_id: The unique identifier of the role. (required)
7105
7105
  :type role_id: str
7106
7106
  :param permission_name: The permission name. (required)
7107
7107
  :type permission_name: str
@@ -7155,7 +7155,7 @@ class PermissionsApi:
7155
7155
  @validate_call
7156
7156
  def remove_permission_from_role_with_http_info(
7157
7157
  self,
7158
- role_id: Annotated[StrictStr, Field(description="The unique identifier of an user.")],
7158
+ role_id: Annotated[StrictStr, Field(description="The unique identifier of the role.")],
7159
7159
  permission_name: Annotated[StrictStr, Field(description="The permission name.")],
7160
7160
  _request_timeout: Union[
7161
7161
  None,
@@ -7174,7 +7174,7 @@ class PermissionsApi:
7174
7174
 
7175
7175
  Removes permission from a given role.
7176
7176
 
7177
- :param role_id: The unique identifier of an user. (required)
7177
+ :param role_id: The unique identifier of the role. (required)
7178
7178
  :type role_id: str
7179
7179
  :param permission_name: The permission name. (required)
7180
7180
  :type permission_name: str
@@ -7228,7 +7228,7 @@ class PermissionsApi:
7228
7228
  @validate_call
7229
7229
  def remove_permission_from_role_without_preload_content(
7230
7230
  self,
7231
- role_id: Annotated[StrictStr, Field(description="The unique identifier of an user.")],
7231
+ role_id: Annotated[StrictStr, Field(description="The unique identifier of the role.")],
7232
7232
  permission_name: Annotated[StrictStr, Field(description="The permission name.")],
7233
7233
  _request_timeout: Union[
7234
7234
  None,
@@ -7247,7 +7247,7 @@ class PermissionsApi:
7247
7247
 
7248
7248
  Removes permission from a given role.
7249
7249
 
7250
- :param role_id: The unique identifier of an user. (required)
7250
+ :param role_id: The unique identifier of the role. (required)
7251
7251
  :type role_id: str
7252
7252
  :param permission_name: The permission name. (required)
7253
7253
  :type permission_name: str
@@ -90,7 +90,7 @@ class ApiClient:
90
90
  self.default_headers[header_name] = header_value
91
91
  self.cookie = cookie
92
92
  # Set default User-Agent.
93
- self.user_agent = 'OpenAPI-Generator/1.6.43-dev7/python'
93
+ self.user_agent = 'OpenAPI-Generator/1.6.44-dev9/python'
94
94
  self.client_side_validation = configuration.client_side_validation
95
95
 
96
96
  def __enter__(self):
@@ -503,7 +503,7 @@ class Configuration:
503
503
  "OS: {env}\n"\
504
504
  "Python Version: {pyversion}\n"\
505
505
  "Version of the API: v1.0.0\n"\
506
- "SDK Package Version: 1.6.43-dev7".\
506
+ "SDK Package Version: 1.6.44-dev9".\
507
507
  format(env=sys.platform, pyversion=sys.version)
508
508
 
509
509
  def get_host_settings(self) -> List[HostSetting]:
@@ -17,20 +17,22 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, StrictStr
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
24
24
 
25
25
  class S3Credentials(BaseModel):
26
26
  """
27
- The object with S3 credentials. If the object is not provided, only public buckets will be accessible.
27
+ The object with S3 credentials. If the object is not provided, only public buckets will be accessible. When use_irsa is true, access_key_id and secret_access_key are optional and the pod's service account will be used for authentication.
28
28
  """ # noqa: E501
29
- access_key_id: StrictStr
30
- secret_access_key: StrictStr
31
- session_token: Optional[StrictStr] = None
32
- role_arn: Optional[StrictStr] = None
33
- __properties: ClassVar[List[str]] = ["access_key_id", "secret_access_key", "session_token", "role_arn"]
29
+ use_irsa: Optional[StrictBool] = Field(default=False, description="Enable IAM Roles for Service Accounts (IRSA) to authenticate using the pod's service account. When enabled, explicit credentials are not required.")
30
+ access_key_id: Optional[StrictStr] = Field(default=None, description="AWS access key ID. Not required when using IRSA.")
31
+ secret_access_key: Optional[StrictStr] = Field(default=None, description="AWS secret access key. Not required when using IRSA.")
32
+ session_token: Optional[StrictStr] = Field(default=None, description="AWS session token for temporary credentials.")
33
+ role_arn: Optional[StrictStr] = Field(default=None, description="The Amazon Resource Name (ARN) of IAM Role that will be utilized for accessing the S3 storage. When IRSA is enabled, this role will be assumed from the service account identity (role chaining). When IRSA is disabled, it requires specification of other credentials to identify an identity the role will be associated with.")
34
+ external_id: Optional[StrictStr] = Field(default=None, description="Optional security token for assuming cross-account roles. This is used to prevent the 'confused deputy' problem when a third party assumes a role in your account. Only required if the role's trust policy requires an external ID.")
35
+ __properties: ClassVar[List[str]] = ["use_irsa", "access_key_id", "secret_access_key", "session_token", "role_arn", "external_id"]
34
36
 
35
37
  model_config = ConfigDict(
36
38
  populate_by_name=True,
@@ -83,10 +85,12 @@ class S3Credentials(BaseModel):
83
85
  return cls.model_validate(obj)
84
86
 
85
87
  _obj = cls.model_validate({
88
+ "use_irsa": obj.get("use_irsa") if obj.get("use_irsa") is not None else False,
86
89
  "access_key_id": obj.get("access_key_id"),
87
90
  "secret_access_key": obj.get("secret_access_key"),
88
91
  "session_token": obj.get("session_token"),
89
- "role_arn": obj.get("role_arn")
92
+ "role_arn": obj.get("role_arn"),
93
+ "external_id": obj.get("external_id")
90
94
  })
91
95
  return _obj
92
96
 
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, StrictStr
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
@@ -30,7 +30,8 @@ class UserPermission(BaseModel):
30
30
  name: StrictStr
31
31
  description: Optional[StrictStr] = None
32
32
  category: Optional[StrictStr] = None
33
- __properties: ClassVar[List[str]] = ["id", "name", "description", "category"]
33
+ dependencies: Optional[List[StrictStr]] = Field(default=None, description="List of permissions that this permission depends on.")
34
+ __properties: ClassVar[List[str]] = ["id", "name", "description", "category", "dependencies"]
34
35
 
35
36
  model_config = ConfigDict(
36
37
  populate_by_name=True,
@@ -86,7 +87,8 @@ class UserPermission(BaseModel):
86
87
  "id": obj.get("id"),
87
88
  "name": obj.get("name"),
88
89
  "description": obj.get("description"),
89
- "category": obj.get("category")
90
+ "category": obj.get("category"),
91
+ "dependencies": obj.get("dependencies")
90
92
  })
91
93
  return _obj
92
94
 
h2ogpte/session.py CHANGED
@@ -149,6 +149,7 @@ class Session:
149
149
  ssl_context=ssl_context,
150
150
  open_timeout=self._open_timeout,
151
151
  close_timeout=self._close_timeout,
152
+ max_size=5 * 1024 * 1024, # 5 MB limit for large responses
152
153
  )
153
154
  return self._connection
154
155
  except (ConnectionClosedError, InvalidURI, InvalidHandshake) as e:
h2ogpte/session_async.py CHANGED
@@ -478,6 +478,7 @@ class SessionAsync:
478
478
  open_timeout=self._open_timeout,
479
479
  close_timeout=self._close_timeout,
480
480
  ssl=ssl_context,
481
+ max_size=5 * 1024 * 1024, # 5 MB limit for large responses
481
482
  )
482
483
  return self._websocket
483
484
  except (ConnectionClosedError, InvalidURI, InvalidHandshake) as e:
h2ogpte/types.py CHANGED
@@ -123,6 +123,8 @@ class ChatMessageFull(BaseModel):
123
123
  type_list: Optional[List[ChatMessageMeta]] = []
124
124
  has_references: bool
125
125
  total_references: int
126
+ collection_id: Optional[str] = None
127
+ collection_name: Optional[str] = None
126
128
  error: Optional[str] = None
127
129
 
128
130
 
@@ -382,6 +384,7 @@ class UserPermission(BaseModel):
382
384
  name: str
383
385
  description: Optional[str] = None
384
386
  category: Optional[str] = None
387
+ dependencies: Optional[List[str]] = None
385
388
 
386
389
 
387
390
  class UserRole(BaseModel):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: h2ogpte
3
- Version: 1.6.43rc7
3
+ Version: 1.6.44rc9
4
4
  Summary: Client library for Enterprise h2oGPTe
5
5
  Author-email: "H2O.ai, Inc." <support@h2o.ai>
6
6
  Project-URL: Source, https://github.com/h2oai/h2ogpte
@@ -1,13 +1,13 @@
1
- h2ogpte/__init__.py,sha256=FOoE8RSJJtmpldxYCKEydM22bQ3KPzxqTSJj8fBnsvo,1524
2
- h2ogpte/connectors.py,sha256=vkILsfW-tsLUn6KB6zgu_kjps4NMGgJpZ3OOaIjji04,8057
1
+ h2ogpte/__init__.py,sha256=J9-R6VEV8qEaclMf-7AN60HdZgnQJE3eo0AJgCuENgA,1524
2
+ h2ogpte/connectors.py,sha256=CRAEpkn9GotcCjWANfJjZ5Hq1cjGWJ4H_IO4eJgVWiI,8466
3
3
  h2ogpte/errors.py,sha256=XgLdfJO1fZ9Bf9rhUKpnvRzzvkNyan3Oc6WzGS6hCUA,1248
4
- h2ogpte/h2ogpte.py,sha256=DQC3Y1Lb9oef51hLK065g6-TSKQ7qiSICUYTwG7DCow,305935
5
- h2ogpte/h2ogpte_async.py,sha256=tzWqm9H92Jg01Ut3PdtbRUpysxbsa7uJS-9pplzbRXA,325832
4
+ h2ogpte/h2ogpte.py,sha256=AqwDkynS9kLDi231PgGiwKm8kzVUQZUYquMqMdiYEHQ,309478
5
+ h2ogpte/h2ogpte_async.py,sha256=cfuKTU5T2rSYeYXDjTsJ_TbSAyglhoRr6kQoCc-8fgI,329391
6
6
  h2ogpte/h2ogpte_sync_base.py,sha256=ftsVzpMqEsyi0UACMI-7H_EIYEx9JEdEUImbyjWy_Hc,15285
7
- h2ogpte/session.py,sha256=skOQa5XmCwdH1k7XdzKmc6jlwn9zcih-RVbAXnrwJ4g,32528
8
- h2ogpte/session_async.py,sha256=-V4rRh1diu5JD8IV9NYIKT_OGo7w-iYyHSnODygOp54,31274
7
+ h2ogpte/session.py,sha256=BqJg3mWVeyz_ZLUJC_olzZzeLnRSaJwCH1NkXXfhg54,32608
8
+ h2ogpte/session_async.py,sha256=UzNijTn3kZjAUYl_Jn5Oji4QrPTOpdX9KKByTmhLlK8,31354
9
9
  h2ogpte/shared_client.py,sha256=Zh24myL--5JDdrKoJPW4aeprHX6a_oB9o461Ho3hnU8,14691
10
- h2ogpte/types.py,sha256=umPY5ymhpLBxfLSqKY5cTDhmPxeDRIw_GT-yyXY3yng,15226
10
+ h2ogpte/types.py,sha256=es2xD57bnsnZFq4GcVKcd1pA6nGSiITGAhe24U-QOD8,15353
11
11
  h2ogpte/utils.py,sha256=Z9n57xxPu0KtsCzkJ9V_VgTW--oG_aXTLBgmXDWSdnM,3201
12
12
  h2ogpte/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  h2ogpte/cli/main.py,sha256=Upf3t_5m1RqLh1jKGB6Gbyp3n9sujVny7sY-qxh2PYo,2722
@@ -41,24 +41,24 @@ h2ogpte/cli/ui/prompts.py,sha256=bJvRe_32KppQTK5bqnsrPh0RS4JaY9KkiV7y-3v8PMQ,538
41
41
  h2ogpte/cli/ui/status_bar.py,sha256=hs2MLvkg-y3Aiu3gWRtgMXf3jv3DGe7Y47ucgoBAP7Y,3852
42
42
  h2ogpte/cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  h2ogpte/cli/utils/file_manager.py,sha256=ghNDX6G3Dr0vFvBYjbqx5o7qxq-pN8Vo2Rp1vyITfLo,13988
44
- h2ogpte/rest_async/__init__.py,sha256=C1JHiIrz8KmYAsB2idh8FQ7mu0NjPU8YgTiDQK1Qoco,15203
45
- h2ogpte/rest_async/api_client.py,sha256=YFCZ50YZwfzw5zdjTLkm64t3it_zi1YI_3votNjvlSE,29510
44
+ h2ogpte/rest_async/__init__.py,sha256=hVi4wgpvB75-g3mWK1adO4HqKuwVAGbddZwON05ggw4,15203
45
+ h2ogpte/rest_async/api_client.py,sha256=vUz2Aoa0qI34oPlC0VZYdWA6kmVcDbIrq8SOjZaZeu4,29510
46
46
  h2ogpte/rest_async/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
47
- h2ogpte/rest_async/configuration.py,sha256=Aiy3wQNv6DTHY8VTeCNFJ5MVw9nAFb6WRvKk4fFwOxM,19567
47
+ h2ogpte/rest_async/configuration.py,sha256=ZFVITmWtExcHnI06BVaR8CCvcKjXuX1esUedxQ1ScV0,19567
48
48
  h2ogpte/rest_async/exceptions.py,sha256=aSDc-0lURtyQjf5HGa7_Ta0nATxKxfHW3huDA2Zdj6o,8370
49
49
  h2ogpte/rest_async/rest.py,sha256=mdjDwzJ1kiaYtONUfDRqKsRPw5-tG6eyZV2P1yBuwRo,9147
50
50
  h2ogpte/rest_async/api/__init__.py,sha256=R_x57GGyaSgxZyrJOyOt551TodbRSQf3T7VrraQc-84,973
51
51
  h2ogpte/rest_async/api/agents_api.py,sha256=_-7Y1h3ssEqqgjriUmuDnngbimbVifva75Z7ks3-wNw,177547
52
52
  h2ogpte/rest_async/api/api_keys_api.py,sha256=hgywNjCWaIrhFRJacKuPkJSKDEltIK8B9fi-4xMWLgs,58244
53
53
  h2ogpte/rest_async/api/chat_api.py,sha256=bJDJqTIXiTYW4anTkqE4XYuEqRDcRW8LcwlMgXyQQS4,295852
54
- h2ogpte/rest_async/api/collections_api.py,sha256=fvB_HNR41uaS986lzitfIZ350grq6cAqsPZ2ZsvNY0A,639458
54
+ h2ogpte/rest_async/api/collections_api.py,sha256=kg6ZJyqNtnrqu2Q1cS8S-ViYPjXTEAynE2nlSQ-61HA,649556
55
55
  h2ogpte/rest_async/api/configurations_api.py,sha256=H9I2hukGC8ACin3cSUR3pAqtghJs0OUPJAzC9nOlkGY,127865
56
56
  h2ogpte/rest_async/api/document_ingestion_api.py,sha256=K8iIH9yPEwZlJdySLnEQkSen2uneR2kEUHZXzJyc0JA,489154
57
57
  h2ogpte/rest_async/api/documents_api.py,sha256=X-w5x4bX2wHXlxb_97XgWdgNi5qAkdksoqz7bHKG5fA,261595
58
58
  h2ogpte/rest_async/api/extractors_api.py,sha256=BJXOzn14HruFfkGh0MlXm4zFGoxijcIrA0NZmjru-yE,161348
59
59
  h2ogpte/rest_async/api/jobs_api.py,sha256=xXxqeDGy3ZA9KTF0Aowd5Rlt-gu2mXfD1S5Y6_-ST68,72519
60
60
  h2ogpte/rest_async/api/models_api.py,sha256=oSJgvLsjPypYs3gIwElCl1IFx_gvjSokNTstHvWl5rM,221092
61
- h2ogpte/rest_async/api/permissions_api.py,sha256=ykcgCy2vc4xUwvo-IkZk4p9UFslGNPbU5nrj7lzRJc0,369442
61
+ h2ogpte/rest_async/api/permissions_api.py,sha256=FxkEMIhKZWyw0KMCYU78nspcFcMs4ppiK8GjFE1nIVI,369448
62
62
  h2ogpte/rest_async/api/prompt_templates_api.py,sha256=RJnYC3jfhvx2L_vpTlU6kCqujs55aPf0kSDe0AG1zow,226547
63
63
  h2ogpte/rest_async/api/secrets_api.py,sha256=MTtmpYO2IOXuCklK-BxVyF9aBNZebgWuQenada-uM7o,68122
64
64
  h2ogpte/rest_async/api/system_api.py,sha256=wXxO1lFEnrPHO0JRCgg13j6CpRKb3nou81dk8nA31v0,12532
@@ -164,7 +164,7 @@ h2ogpte/rest_async/models/reset_and_share_with_groups_request.py,sha256=6IwfFIjA
164
164
  h2ogpte/rest_async/models/role_create_request.py,sha256=UayaEOpH_Qx8AYff5cFALodAmbTaO4YphBsMM2lHHFI,4476
165
165
  h2ogpte/rest_async/models/role_info.py,sha256=gCcSiqjkux4zFt0cR9CQDaeWgSneVQJ11JgthdtQUms,4633
166
166
  h2ogpte/rest_async/models/roles_reset_request.py,sha256=W5cKp897NVOwlWX-GR9OZ1THtqWDhjmCibadKZSa9i4,4409
167
- h2ogpte/rest_async/models/s3_credentials.py,sha256=fAeFj3sXAcQq6hpPgs_A_PHRPaM6Dmu8D4Id7zMcFZs,4835
167
+ h2ogpte/rest_async/models/s3_credentials.py,sha256=GS4bIxa8tc4E0pzVjemDYiWJjqXVrWfSN3dsqEUegtI,6304
168
168
  h2ogpte/rest_async/models/search_collection_chunks_request.py,sha256=KfMNH2VvZYLahzrOVHpjfCmUpWIWV_YUWczjBuZ02O4,5129
169
169
  h2ogpte/rest_async/models/self_test_result.py,sha256=LOiW5WOJSBKlG7KMZ2tOHfmSow0BbDXSBN8p9OlNNeA,5750
170
170
  h2ogpte/rest_async/models/set_collection_size_limit_request.py,sha256=f8OGSc2uSRcwj7yByFWHj5A1eG_jPXajMHxZDjGO3DM,4501
@@ -200,25 +200,25 @@ h2ogpte/rest_async/models/user_configuration_item.py,sha256=hDcCkPjzWeFIu1iGgPpW
200
200
  h2ogpte/rest_async/models/user_deletion_request.py,sha256=z7gD8XKOGwwg782TRzXJiiPOZS2QPW8qQk3vEZdwslQ,4536
201
201
  h2ogpte/rest_async/models/user_info.py,sha256=ef59Eh9k42JUY3X2RnCrwYR7sc_8lXT1vRLGoNz3uTU,4489
202
202
  h2ogpte/rest_async/models/user_job_details.py,sha256=kzu8fLxVsRMgnyt6dLr0VWjlIoE3i1VRpGR9nDxFyk4,4985
203
- h2ogpte/rest_async/models/user_permission.py,sha256=9ffijaF3U3SYz_T_kcqHPJUfIZFkpCH0vBGboPjsg2o,4646
204
- h2ogpte/rest_sync/__init__.py,sha256=UeV3kwO5hIR977_pR5UUmldgBej-XdFINgBYVyNCEEM,15042
205
- h2ogpte/rest_sync/api_client.py,sha256=QTl4Vs2RnMKc2mPj_nA2-RKdJeFufNJ-g9jf8DoDr9A,29397
203
+ h2ogpte/rest_async/models/user_permission.py,sha256=1k74E7s2kD2waSZ79KPlgTupVYEacTKWMqcKxv2972A,4856
204
+ h2ogpte/rest_sync/__init__.py,sha256=TDrF5FTonsbsGxH76o6LhgFnIEJO0PN3l9hrpjPJpuA,15042
205
+ h2ogpte/rest_sync/api_client.py,sha256=XxK-Au-xNVKnRCFoK4UxFu_P1PCfmklCV486CWwiwl0,29397
206
206
  h2ogpte/rest_sync/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
207
- h2ogpte/rest_sync/configuration.py,sha256=Vvw6hbXyFxtiwpMwh7_YL6polNSeQ4n21qHc18Y0VRA,19850
207
+ h2ogpte/rest_sync/configuration.py,sha256=3WQeOh-BPaYPudUv13dayS589uPKWlROAIHVwD-4HOo,19850
208
208
  h2ogpte/rest_sync/exceptions.py,sha256=aSDc-0lURtyQjf5HGa7_Ta0nATxKxfHW3huDA2Zdj6o,8370
209
209
  h2ogpte/rest_sync/rest.py,sha256=evRzviTYC_fsrpTtFlGvruXmquH9C0jDn-oQrGrE5A0,11314
210
210
  h2ogpte/rest_sync/api/__init__.py,sha256=ZuLQQtyiXnP5UOwTlIOYLGLQq1BG_0PEkzC9s698vjM,958
211
211
  h2ogpte/rest_sync/api/agents_api.py,sha256=zWzPXtqHbhBe6xVZZKYl93bFLDVzNw2KmAJG5xIW6i0,176763
212
212
  h2ogpte/rest_sync/api/api_keys_api.py,sha256=MueDC8Z4VUC61IVIBem0kD0Wpgh35MvhoilUtPVLrN0,57997
213
213
  h2ogpte/rest_sync/api/chat_api.py,sha256=9DoF08mTxi3D7sYRkvOM76qB4crS13lb5QmTXtJIV1U,294582
214
- h2ogpte/rest_sync/api/collections_api.py,sha256=3oTV2IuRV9l_8Wjb9ivQX7bQ6Ay6uFO6zIjbre1bSXs,636980
214
+ h2ogpte/rest_sync/api/collections_api.py,sha256=DsM57mFCtEn7WjMen3-zbZz_fC0TH1-zttlXJGQwwCs,647030
215
215
  h2ogpte/rest_sync/api/configurations_api.py,sha256=B39KQB3fRknMZ8PtDNBxWVX2aVGTQSmaE2nq6Ya8VkE,127330
216
216
  h2ogpte/rest_sync/api/document_ingestion_api.py,sha256=i7bLMjtFOvtr9zwgR2F-uXY1AhmW918axnm0T1vxU90,488230
217
217
  h2ogpte/rest_sync/api/documents_api.py,sha256=qRDBXrQaZWp_hGxg-7mqAFUMeeWd1EB2M_xIlzHh6rw,260474
218
218
  h2ogpte/rest_sync/api/extractors_api.py,sha256=Dz7RCbNRIuraNszzMOLVYzBxwMJwFsqwFIXreMr7B-Y,160666
219
219
  h2ogpte/rest_sync/api/jobs_api.py,sha256=LM9erEymF1SgEg8j4ePeNbUeJtwAGTMCI3Z4zRESehE,72177
220
220
  h2ogpte/rest_sync/api/models_api.py,sha256=a5DuGNAEXeynqnPuFcvIWHtIBYfGKhn5uFi43aXSBgA,220111
221
- h2ogpte/rest_sync/api/permissions_api.py,sha256=MiXD2duhCsA-QS-xR_uoY_piLmuYvw9gxr6HIGY3JPo,367795
221
+ h2ogpte/rest_sync/api/permissions_api.py,sha256=U4FSIKlUrWsQ1mRvEC1vVhPdUbCkODSNhR1Eb0vSFzU,367801
222
222
  h2ogpte/rest_sync/api/prompt_templates_api.py,sha256=157y9lzY7Ky_ALu8TEemi0rfYzXrd4SJU1GxooXGJdg,225622
223
223
  h2ogpte/rest_sync/api/secrets_api.py,sha256=5rAikvrX7n3Cj9M0ME-cPjISLpqrEFh2LmW23mvGk4g,67828
224
224
  h2ogpte/rest_sync/api/system_api.py,sha256=knhP97lzeZt-YFTpcNJm9NdnqjoSg_Oh0yMGowiV1IM,12480
@@ -324,7 +324,7 @@ h2ogpte/rest_sync/models/reset_and_share_with_groups_request.py,sha256=6IwfFIjAA
324
324
  h2ogpte/rest_sync/models/role_create_request.py,sha256=UayaEOpH_Qx8AYff5cFALodAmbTaO4YphBsMM2lHHFI,4476
325
325
  h2ogpte/rest_sync/models/role_info.py,sha256=gCcSiqjkux4zFt0cR9CQDaeWgSneVQJ11JgthdtQUms,4633
326
326
  h2ogpte/rest_sync/models/roles_reset_request.py,sha256=W5cKp897NVOwlWX-GR9OZ1THtqWDhjmCibadKZSa9i4,4409
327
- h2ogpte/rest_sync/models/s3_credentials.py,sha256=fAeFj3sXAcQq6hpPgs_A_PHRPaM6Dmu8D4Id7zMcFZs,4835
327
+ h2ogpte/rest_sync/models/s3_credentials.py,sha256=GS4bIxa8tc4E0pzVjemDYiWJjqXVrWfSN3dsqEUegtI,6304
328
328
  h2ogpte/rest_sync/models/search_collection_chunks_request.py,sha256=KfMNH2VvZYLahzrOVHpjfCmUpWIWV_YUWczjBuZ02O4,5129
329
329
  h2ogpte/rest_sync/models/self_test_result.py,sha256=LOiW5WOJSBKlG7KMZ2tOHfmSow0BbDXSBN8p9OlNNeA,5750
330
330
  h2ogpte/rest_sync/models/set_collection_size_limit_request.py,sha256=f8OGSc2uSRcwj7yByFWHj5A1eG_jPXajMHxZDjGO3DM,4501
@@ -360,9 +360,9 @@ h2ogpte/rest_sync/models/user_configuration_item.py,sha256=hDcCkPjzWeFIu1iGgPpWM
360
360
  h2ogpte/rest_sync/models/user_deletion_request.py,sha256=z7gD8XKOGwwg782TRzXJiiPOZS2QPW8qQk3vEZdwslQ,4536
361
361
  h2ogpte/rest_sync/models/user_info.py,sha256=ef59Eh9k42JUY3X2RnCrwYR7sc_8lXT1vRLGoNz3uTU,4489
362
362
  h2ogpte/rest_sync/models/user_job_details.py,sha256=9cbhpgLMDpar-aTOaY5Ygud-8Kbi23cLNldTGab0Sd8,4984
363
- h2ogpte/rest_sync/models/user_permission.py,sha256=9ffijaF3U3SYz_T_kcqHPJUfIZFkpCH0vBGboPjsg2o,4646
364
- h2ogpte-1.6.43rc7.dist-info/METADATA,sha256=o4kh1PvRArCWFVPXwK6IbI1Uc4ejk6ktaqG-4ssIyRU,8615
365
- h2ogpte-1.6.43rc7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
366
- h2ogpte-1.6.43rc7.dist-info/entry_points.txt,sha256=BlaqX2SXJanrOGqNYwnzvCxHGNadM7RBI4pW4rVo5z4,54
367
- h2ogpte-1.6.43rc7.dist-info/top_level.txt,sha256=vXV4JnNwFWFAqTWyHrH-cGIQqbCcEDG9-BbyNn58JpM,8
368
- h2ogpte-1.6.43rc7.dist-info/RECORD,,
363
+ h2ogpte/rest_sync/models/user_permission.py,sha256=1k74E7s2kD2waSZ79KPlgTupVYEacTKWMqcKxv2972A,4856
364
+ h2ogpte-1.6.44rc9.dist-info/METADATA,sha256=o8-5v3-pkp-Q_Xz1LaCxB7YAnfMvgEYsiFqbcyTO5Fs,8615
365
+ h2ogpte-1.6.44rc9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
366
+ h2ogpte-1.6.44rc9.dist-info/entry_points.txt,sha256=BlaqX2SXJanrOGqNYwnzvCxHGNadM7RBI4pW4rVo5z4,54
367
+ h2ogpte-1.6.44rc9.dist-info/top_level.txt,sha256=vXV4JnNwFWFAqTWyHrH-cGIQqbCcEDG9-BbyNn58JpM,8
368
+ h2ogpte-1.6.44rc9.dist-info/RECORD,,