athena-intelligence 0.1.205__tar.gz → 0.1.206__tar.gz

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.

Potentially problematic release.


This version of athena-intelligence might be problematic. Click here for more details.

Files changed (123) hide show
  1. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/PKG-INFO +1 -1
  2. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/pyproject.toml +1 -1
  3. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/client_wrapper.py +2 -2
  4. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/sheets/client.py +118 -0
  5. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/sheets/raw_client.py +150 -0
  6. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/README.md +0 -0
  7. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/__init__.py +0 -0
  8. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/__init__.py +0 -0
  9. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/client.py +0 -0
  10. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/drive/__init__.py +0 -0
  11. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/drive/client.py +0 -0
  12. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/drive/raw_client.py +0 -0
  13. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/general/__init__.py +0 -0
  14. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/general/client.py +0 -0
  15. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/general/raw_client.py +0 -0
  16. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/raw_client.py +0 -0
  17. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/research/__init__.py +0 -0
  18. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/research/client.py +0 -0
  19. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/research/raw_client.py +0 -0
  20. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/sql/__init__.py +0 -0
  21. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/sql/client.py +0 -0
  22. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/agents/sql/raw_client.py +0 -0
  23. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/aop/__init__.py +0 -0
  24. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/aop/client.py +0 -0
  25. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/aop/raw_client.py +0 -0
  26. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/assets/__init__.py +0 -0
  27. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/assets/client.py +0 -0
  28. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/assets/raw_client.py +0 -0
  29. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/base_client.py +0 -0
  30. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/client.py +0 -0
  31. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/__init__.py +0 -0
  32. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/api_error.py +0 -0
  33. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/datetime_utils.py +0 -0
  34. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/file.py +0 -0
  35. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/force_multipart.py +0 -0
  36. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/http_client.py +0 -0
  37. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/http_response.py +0 -0
  38. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/jsonable_encoder.py +0 -0
  39. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/pydantic_utilities.py +0 -0
  40. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/query_encoder.py +0 -0
  41. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/remove_none_from_dict.py +0 -0
  42. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/request_options.py +0 -0
  43. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/core/serialization.py +0 -0
  44. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/environment.py +0 -0
  45. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/errors/__init__.py +0 -0
  46. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/errors/bad_request_error.py +0 -0
  47. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/errors/content_too_large_error.py +0 -0
  48. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/errors/internal_server_error.py +0 -0
  49. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/errors/not_found_error.py +0 -0
  50. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/errors/unauthorized_error.py +0 -0
  51. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/errors/unprocessable_entity_error.py +0 -0
  52. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/errors/unsupported_media_type_error.py +0 -0
  53. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/py.typed +0 -0
  54. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/query/__init__.py +0 -0
  55. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/query/client.py +0 -0
  56. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/query/raw_client.py +0 -0
  57. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/query/types/__init__.py +0 -0
  58. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/query/types/query_execute_request_database_asset_ids.py +0 -0
  59. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/__init__.py +0 -0
  60. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/calendar/__init__.py +0 -0
  61. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/calendar/client.py +0 -0
  62. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/calendar/raw_client.py +0 -0
  63. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/client.py +0 -0
  64. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/email/__init__.py +0 -0
  65. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/email/client.py +0 -0
  66. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/email/raw_client.py +0 -0
  67. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/raw_client.py +0 -0
  68. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/sheets/__init__.py +0 -0
  69. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/structured_data_extractor/__init__.py +0 -0
  70. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/structured_data_extractor/client.py +0 -0
  71. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/structured_data_extractor/raw_client.py +0 -0
  72. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/tasks/__init__.py +0 -0
  73. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/tasks/client.py +0 -0
  74. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/tasks/raw_client.py +0 -0
  75. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/types/__init__.py +0 -0
  76. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/tools/types/tools_data_frame_request_columns_item.py +0 -0
  77. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/__init__.py +0 -0
  78. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/aop_async_execute_response_out.py +0 -0
  79. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/aop_execute_request_in.py +0 -0
  80. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/aop_execute_response_out.py +0 -0
  81. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/asset_content_request_out.py +0 -0
  82. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/asset_node.py +0 -0
  83. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/asset_not_found_error.py +0 -0
  84. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/asset_screenshot_response_out.py +0 -0
  85. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/chunk.py +0 -0
  86. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/chunk_content_item.py +0 -0
  87. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/chunk_result.py +0 -0
  88. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/chunk_result_chunk_id.py +0 -0
  89. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/content.py +0 -0
  90. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/create_new_sheet_tab_response.py +0 -0
  91. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/custom_agent_response.py +0 -0
  92. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/data_frame_request_out.py +0 -0
  93. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/data_frame_request_out_columns_item.py +0 -0
  94. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/data_frame_request_out_data_item_item.py +0 -0
  95. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/data_frame_request_out_index_item.py +0 -0
  96. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/data_frame_unknown_format_error.py +0 -0
  97. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/document_chunk.py +0 -0
  98. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/drive_agent_response.py +0 -0
  99. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/file_chunk_request_out.py +0 -0
  100. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/file_too_large_error.py +0 -0
  101. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/folder_response.py +0 -0
  102. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/general_agent_config.py +0 -0
  103. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/general_agent_config_enabled_tools_item.py +0 -0
  104. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/general_agent_request.py +0 -0
  105. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/general_agent_response.py +0 -0
  106. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/general_agent_response_message.py +0 -0
  107. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/general_agent_response_message_kwargs.py +0 -0
  108. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/get_table_response.py +0 -0
  109. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/id.py +0 -0
  110. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/image_url_content.py +0 -0
  111. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/input_message.py +0 -0
  112. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/input_message_content_item.py +0 -0
  113. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/paginated_assets_out.py +0 -0
  114. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/prompt_message.py +0 -0
  115. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/public_asset_out.py +0 -0
  116. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/research_agent_response.py +0 -0
  117. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/save_asset_request_out.py +0 -0
  118. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/sheet_operation_response.py +0 -0
  119. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/sql_agent_response.py +0 -0
  120. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/structured_data_extractor_response.py +0 -0
  121. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/text_content.py +0 -0
  122. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/types/type.py +0 -0
  123. {athena_intelligence-0.1.205 → athena_intelligence-0.1.206}/src/athena/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: athena-intelligence
3
- Version: 0.1.205
3
+ Version: 0.1.206
4
4
  Summary: Athena Intelligence Python Library
5
5
  Requires-Python: >=3.9,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -3,7 +3,7 @@ name = "athena-intelligence"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "athena-intelligence"
6
- version = "0.1.205"
6
+ version = "0.1.206"
7
7
  description = "Athena Intelligence Python Library"
8
8
  readme = "README.md"
9
9
  authors = []
@@ -22,10 +22,10 @@ class BaseClientWrapper:
22
22
 
23
23
  def get_headers(self) -> typing.Dict[str, str]:
24
24
  headers: typing.Dict[str, str] = {
25
- "User-Agent": "athena-intelligence/0.1.205",
25
+ "User-Agent": "athena-intelligence/0.1.206",
26
26
  "X-Fern-Language": "Python",
27
27
  "X-Fern-SDK-Name": "athena-intelligence",
28
- "X-Fern-SDK-Version": "0.1.205",
28
+ "X-Fern-SDK-Version": "0.1.206",
29
29
  **(self.get_custom_headers() or {}),
30
30
  }
31
31
  headers["X-API-KEY"] = self.api_key
@@ -930,6 +930,61 @@ class SheetsClient:
930
930
  )
931
931
  return _response.data
932
932
 
933
+ def insert_table_row(
934
+ self,
935
+ *,
936
+ asset_id: str,
937
+ row_data: typing.Sequence[typing.Dict[str, typing.Optional[str]]],
938
+ table_id: typing.Optional[str] = OMIT,
939
+ table_name: typing.Optional[str] = OMIT,
940
+ request_options: typing.Optional[RequestOptions] = None,
941
+ ) -> SheetOperationResponse:
942
+ """
943
+ Insert rows into a table in an Athena spreadsheet.
944
+
945
+ Parameters
946
+ ----------
947
+ asset_id : str
948
+ The ID of the spreadsheet asset
949
+
950
+ row_data : typing.Sequence[typing.Dict[str, typing.Optional[str]]]
951
+ Array of row objects where keys are column names and values are cell values
952
+
953
+ table_id : typing.Optional[str]
954
+ Table ID to insert row into
955
+
956
+ table_name : typing.Optional[str]
957
+ Table name to insert row into
958
+
959
+ request_options : typing.Optional[RequestOptions]
960
+ Request-specific configuration.
961
+
962
+ Returns
963
+ -------
964
+ SheetOperationResponse
965
+ Successful Response
966
+
967
+ Examples
968
+ --------
969
+ from athena import Athena
970
+
971
+ client = Athena(
972
+ api_key="YOUR_API_KEY",
973
+ )
974
+ client.tools.sheets.insert_table_row(
975
+ asset_id="asset_id",
976
+ row_data=[{}],
977
+ )
978
+ """
979
+ _response = self._raw_client.insert_table_row(
980
+ asset_id=asset_id,
981
+ row_data=row_data,
982
+ table_id=table_id,
983
+ table_name=table_name,
984
+ request_options=request_options,
985
+ )
986
+ return _response.data
987
+
933
988
  def update_table(
934
989
  self,
935
990
  *,
@@ -2048,6 +2103,69 @@ class AsyncSheetsClient:
2048
2103
  )
2049
2104
  return _response.data
2050
2105
 
2106
+ async def insert_table_row(
2107
+ self,
2108
+ *,
2109
+ asset_id: str,
2110
+ row_data: typing.Sequence[typing.Dict[str, typing.Optional[str]]],
2111
+ table_id: typing.Optional[str] = OMIT,
2112
+ table_name: typing.Optional[str] = OMIT,
2113
+ request_options: typing.Optional[RequestOptions] = None,
2114
+ ) -> SheetOperationResponse:
2115
+ """
2116
+ Insert rows into a table in an Athena spreadsheet.
2117
+
2118
+ Parameters
2119
+ ----------
2120
+ asset_id : str
2121
+ The ID of the spreadsheet asset
2122
+
2123
+ row_data : typing.Sequence[typing.Dict[str, typing.Optional[str]]]
2124
+ Array of row objects where keys are column names and values are cell values
2125
+
2126
+ table_id : typing.Optional[str]
2127
+ Table ID to insert row into
2128
+
2129
+ table_name : typing.Optional[str]
2130
+ Table name to insert row into
2131
+
2132
+ request_options : typing.Optional[RequestOptions]
2133
+ Request-specific configuration.
2134
+
2135
+ Returns
2136
+ -------
2137
+ SheetOperationResponse
2138
+ Successful Response
2139
+
2140
+ Examples
2141
+ --------
2142
+ import asyncio
2143
+
2144
+ from athena import AsyncAthena
2145
+
2146
+ client = AsyncAthena(
2147
+ api_key="YOUR_API_KEY",
2148
+ )
2149
+
2150
+
2151
+ async def main() -> None:
2152
+ await client.tools.sheets.insert_table_row(
2153
+ asset_id="asset_id",
2154
+ row_data=[{}],
2155
+ )
2156
+
2157
+
2158
+ asyncio.run(main())
2159
+ """
2160
+ _response = await self._raw_client.insert_table_row(
2161
+ asset_id=asset_id,
2162
+ row_data=row_data,
2163
+ table_id=table_id,
2164
+ table_name=table_name,
2165
+ request_options=request_options,
2166
+ )
2167
+ return _response.data
2168
+
2051
2169
  async def update_table(
2052
2170
  self,
2053
2171
  *,
@@ -1211,6 +1211,81 @@ class RawSheetsClient:
1211
1211
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1212
1212
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1213
1213
 
1214
+ def insert_table_row(
1215
+ self,
1216
+ *,
1217
+ asset_id: str,
1218
+ row_data: typing.Sequence[typing.Dict[str, typing.Optional[str]]],
1219
+ table_id: typing.Optional[str] = OMIT,
1220
+ table_name: typing.Optional[str] = OMIT,
1221
+ request_options: typing.Optional[RequestOptions] = None,
1222
+ ) -> HttpResponse[SheetOperationResponse]:
1223
+ """
1224
+ Insert rows into a table in an Athena spreadsheet.
1225
+
1226
+ Parameters
1227
+ ----------
1228
+ asset_id : str
1229
+ The ID of the spreadsheet asset
1230
+
1231
+ row_data : typing.Sequence[typing.Dict[str, typing.Optional[str]]]
1232
+ Array of row objects where keys are column names and values are cell values
1233
+
1234
+ table_id : typing.Optional[str]
1235
+ Table ID to insert row into
1236
+
1237
+ table_name : typing.Optional[str]
1238
+ Table name to insert row into
1239
+
1240
+ request_options : typing.Optional[RequestOptions]
1241
+ Request-specific configuration.
1242
+
1243
+ Returns
1244
+ -------
1245
+ HttpResponse[SheetOperationResponse]
1246
+ Successful Response
1247
+ """
1248
+ _response = self._client_wrapper.httpx_client.request(
1249
+ "api/v0/tools/sheets/table/insert-row",
1250
+ method="POST",
1251
+ json={
1252
+ "asset_id": asset_id,
1253
+ "row_data": row_data,
1254
+ "table_id": table_id,
1255
+ "table_name": table_name,
1256
+ },
1257
+ headers={
1258
+ "content-type": "application/json",
1259
+ },
1260
+ request_options=request_options,
1261
+ omit=OMIT,
1262
+ )
1263
+ try:
1264
+ if 200 <= _response.status_code < 300:
1265
+ _data = typing.cast(
1266
+ SheetOperationResponse,
1267
+ parse_obj_as(
1268
+ type_=SheetOperationResponse, # type: ignore
1269
+ object_=_response.json(),
1270
+ ),
1271
+ )
1272
+ return HttpResponse(response=_response, data=_data)
1273
+ if _response.status_code == 422:
1274
+ raise UnprocessableEntityError(
1275
+ headers=dict(_response.headers),
1276
+ body=typing.cast(
1277
+ typing.Optional[typing.Any],
1278
+ parse_obj_as(
1279
+ type_=typing.Optional[typing.Any], # type: ignore
1280
+ object_=_response.json(),
1281
+ ),
1282
+ ),
1283
+ )
1284
+ _response_json = _response.json()
1285
+ except JSONDecodeError:
1286
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1287
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1288
+
1214
1289
  def update_table(
1215
1290
  self,
1216
1291
  *,
@@ -2501,6 +2576,81 @@ class AsyncRawSheetsClient:
2501
2576
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2502
2577
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2503
2578
 
2579
+ async def insert_table_row(
2580
+ self,
2581
+ *,
2582
+ asset_id: str,
2583
+ row_data: typing.Sequence[typing.Dict[str, typing.Optional[str]]],
2584
+ table_id: typing.Optional[str] = OMIT,
2585
+ table_name: typing.Optional[str] = OMIT,
2586
+ request_options: typing.Optional[RequestOptions] = None,
2587
+ ) -> AsyncHttpResponse[SheetOperationResponse]:
2588
+ """
2589
+ Insert rows into a table in an Athena spreadsheet.
2590
+
2591
+ Parameters
2592
+ ----------
2593
+ asset_id : str
2594
+ The ID of the spreadsheet asset
2595
+
2596
+ row_data : typing.Sequence[typing.Dict[str, typing.Optional[str]]]
2597
+ Array of row objects where keys are column names and values are cell values
2598
+
2599
+ table_id : typing.Optional[str]
2600
+ Table ID to insert row into
2601
+
2602
+ table_name : typing.Optional[str]
2603
+ Table name to insert row into
2604
+
2605
+ request_options : typing.Optional[RequestOptions]
2606
+ Request-specific configuration.
2607
+
2608
+ Returns
2609
+ -------
2610
+ AsyncHttpResponse[SheetOperationResponse]
2611
+ Successful Response
2612
+ """
2613
+ _response = await self._client_wrapper.httpx_client.request(
2614
+ "api/v0/tools/sheets/table/insert-row",
2615
+ method="POST",
2616
+ json={
2617
+ "asset_id": asset_id,
2618
+ "row_data": row_data,
2619
+ "table_id": table_id,
2620
+ "table_name": table_name,
2621
+ },
2622
+ headers={
2623
+ "content-type": "application/json",
2624
+ },
2625
+ request_options=request_options,
2626
+ omit=OMIT,
2627
+ )
2628
+ try:
2629
+ if 200 <= _response.status_code < 300:
2630
+ _data = typing.cast(
2631
+ SheetOperationResponse,
2632
+ parse_obj_as(
2633
+ type_=SheetOperationResponse, # type: ignore
2634
+ object_=_response.json(),
2635
+ ),
2636
+ )
2637
+ return AsyncHttpResponse(response=_response, data=_data)
2638
+ if _response.status_code == 422:
2639
+ raise UnprocessableEntityError(
2640
+ headers=dict(_response.headers),
2641
+ body=typing.cast(
2642
+ typing.Optional[typing.Any],
2643
+ parse_obj_as(
2644
+ type_=typing.Optional[typing.Any], # type: ignore
2645
+ object_=_response.json(),
2646
+ ),
2647
+ ),
2648
+ )
2649
+ _response_json = _response.json()
2650
+ except JSONDecodeError:
2651
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
2652
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
2653
+
2504
2654
  async def update_table(
2505
2655
  self,
2506
2656
  *,