crypticorn 2.11.9__py3-none-any.whl → 2.12.1__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 (38) hide show
  1. crypticorn/common/errors.py +48 -8
  2. crypticorn/common/exceptions.py +11 -0
  3. crypticorn/hive/client/__init__.py +1 -0
  4. crypticorn/hive/client/models/__init__.py +1 -0
  5. crypticorn/hive/client/models/api_error_identifier.py +2 -0
  6. crypticorn/hive/client/models/coin_info.py +106 -0
  7. crypticorn/hive/client/models/data_info.py +17 -6
  8. crypticorn/hive/client/models/target_info.py +20 -6
  9. crypticorn/pay/client/__init__.py +5 -3
  10. crypticorn/pay/client/api/admin_api.py +35 -33
  11. crypticorn/pay/client/api/now_payments_api.py +476 -5
  12. crypticorn/pay/client/api/payments_api.py +43 -264
  13. crypticorn/pay/client/api/products_api.py +16 -16
  14. crypticorn/pay/client/models/__init__.py +5 -3
  15. crypticorn/pay/client/models/api_error_identifier.py +117 -0
  16. crypticorn/pay/client/models/api_error_level.py +37 -0
  17. crypticorn/pay/client/models/api_error_type.py +37 -0
  18. crypticorn/pay/client/models/exception_detail.py +7 -4
  19. crypticorn/pay/client/models/{product_read.py → product.py} +4 -4
  20. crypticorn/pay/client/models/product_create.py +1 -1
  21. crypticorn/pay/client/models/scope.py +1 -0
  22. crypticorn/pay/client/models/{product_sub_read.py → subscription.py} +5 -5
  23. crypticorn/trade/client/api/api_keys_api.py +61 -19
  24. crypticorn/trade/client/api/orders_api.py +3 -0
  25. crypticorn/trade/client/models/api_error_identifier.py +1 -1
  26. crypticorn/trade/client/models/bot.py +5 -5
  27. crypticorn/trade/client/models/exchange_key.py +13 -6
  28. crypticorn/trade/client/models/futures_trading_action.py +5 -5
  29. crypticorn/trade/client/models/notification.py +5 -5
  30. crypticorn/trade/client/models/order.py +5 -5
  31. crypticorn/trade/client/models/strategy.py +5 -5
  32. {crypticorn-2.11.9.dist-info → crypticorn-2.12.1.dist-info}/METADATA +1 -1
  33. {crypticorn-2.11.9.dist-info → crypticorn-2.12.1.dist-info}/RECORD +37 -34
  34. {crypticorn-2.11.9.dist-info → crypticorn-2.12.1.dist-info}/WHEEL +1 -1
  35. crypticorn/pay/client/models/response_getuptime.py +0 -159
  36. {crypticorn-2.11.9.dist-info → crypticorn-2.12.1.dist-info}/entry_points.txt +0 -0
  37. {crypticorn-2.11.9.dist-info → crypticorn-2.12.1.dist-info}/licenses/LICENSE +0 -0
  38. {crypticorn-2.11.9.dist-info → crypticorn-2.12.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,117 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Payment API
5
+
6
+ API for accepting payments and storing subscriptions
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class ApiErrorIdentifier(str, Enum):
22
+ """
23
+ Unique identifier of the API error.
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ ALLOCATION_BELOW_CURRENT_EXPOSURE = "allocation_below_current_exposure"
30
+ ALLOCATION_BELOW_MIN_AMOUNT = "allocation_below_min_amount"
31
+ BLACK_SWAN = "black_swan"
32
+ BOT_ALREADY_DELETED = "bot_already_deleted"
33
+ BOT_DISABLED = "bot_disabled"
34
+ BOT_STOPPING_COMPLETED = "bot_stopping_completed"
35
+ BOT_STOPPING_STARTED = "bot_stopping_started"
36
+ CLIENT_ORDER_ID_ALREADY_EXISTS = "client_order_id_already_exists"
37
+ INVALID_CONTENT_TYPE = "invalid_content_type"
38
+ DELETE_BOT_ERROR = "delete_bot_error"
39
+ EXCHANGE_INVALID_SIGNATURE = "exchange_invalid_signature"
40
+ EXCHANGE_INVALID_TIMESTAMP = "exchange_invalid_timestamp"
41
+ EXCHANGE_IP_ADDRESS_IS_NOT_AUTHORIZED = "exchange_ip_address_is_not_authorized"
42
+ EXCHANGE_KEY_ALREADY_EXISTS = "exchange_key_already_exists"
43
+ EXCHANGE_KEY_IN_USE = "exchange_key_in_use"
44
+ EXCHANGE_SYSTEM_UNDER_MAINTENANCE = "exchange_system_under_maintenance"
45
+ EXCHANGE_RATE_LIMIT_EXCEEDED = "exchange_rate_limit_exceeded"
46
+ INSUFFICIENT_PERMISSIONS_SPOT_AND_FUTURES_REQUIRED = (
47
+ "insufficient_permissions_spot_and_futures_required"
48
+ )
49
+ EXCHANGE_SERVICE_TEMPORARILY_UNAVAILABLE = (
50
+ "exchange_service_temporarily_unavailable"
51
+ )
52
+ EXCHANGE_SYSTEM_IS_BUSY = "exchange_system_is_busy"
53
+ EXCHANGE_SYSTEM_CONFIGURATION_ERROR = "exchange_system_configuration_error"
54
+ EXCHANGE_INTERNAL_SYSTEM_ERROR = "exchange_internal_system_error"
55
+ EXCHANGE_USER_ACCOUNT_IS_FROZEN = "exchange_user_account_is_frozen"
56
+ API_KEY_EXPIRED = "api_key_expired"
57
+ BEARER_TOKEN_EXPIRED = "bearer_token_expired"
58
+ FORBIDDEN = "forbidden"
59
+ HEDGE_MODE_NOT_ACTIVE = "hedge_mode_not_active"
60
+ HTTP_REQUEST_ERROR = "http_request_error"
61
+ INSUFFICIENT_BALANCE = "insufficient_balance"
62
+ INSUFFICIENT_MARGIN = "insufficient_margin"
63
+ INSUFFICIENT_SCOPES = "insufficient_scopes"
64
+ INVALID_API_KEY = "invalid_api_key"
65
+ INVALID_BEARER = "invalid_bearer"
66
+ INVALID_DATA = "invalid_data"
67
+ INVALID_DATA_RESPONSE = "invalid_data_response"
68
+ INVALID_EXCHANGE_KEY = "invalid_exchange_key"
69
+ INVALID_MARGIN_MODE = "invalid_margin_mode"
70
+ INVALID_MODEL_NAME = "invalid_model_name"
71
+ INVALID_PARAMETER_PROVIDED = "invalid_parameter_provided"
72
+ LEVERAGE_LIMIT_EXCEEDED = "leverage_limit_exceeded"
73
+ ORDER_VIOLATES_LIQUIDATION_PRICE_CONSTRAINTS = (
74
+ "order_violates_liquidation_price_constraints"
75
+ )
76
+ MARGIN_MODE_CLASH = "margin_mode_clash"
77
+ MODEL_NAME_NOT_UNIQUE = "model_name_not_unique"
78
+ NO_CREDENTIALS = "no_credentials"
79
+ NOW_API_DOWN = "now_api_down"
80
+ OBJECT_ALREADY_EXISTS = "object_already_exists"
81
+ OBJECT_CREATED = "object_created"
82
+ OBJECT_DELETED = "object_deleted"
83
+ OBJECT_LOCKED = "object_locked"
84
+ OBJECT_NOT_FOUND = "object_not_found"
85
+ OBJECT_UPDATED = "object_updated"
86
+ ORDER_IS_ALREADY_FILLED = "order_is_already_filled"
87
+ ORDER_IS_BEING_PROCESSED = "order_is_being_processed"
88
+ ORDER_QUANTITY_LIMIT_EXCEEDED = "order_quantity_limit_exceeded"
89
+ ORDER_DOES_NOT_EXIST = "order_does_not_exist"
90
+ ORDER_PRICE_IS_INVALID = "order_price_is_invalid"
91
+ ORDER_SIZE_TOO_LARGE = "order_size_too_large"
92
+ ORDER_SIZE_TOO_SMALL = "order_size_too_small"
93
+ POSITION_LIMIT_EXCEEDED = "position_limit_exceeded"
94
+ POSITION_DOES_NOT_EXIST = "position_does_not_exist"
95
+ POSITION_OPENING_TEMPORARILY_SUSPENDED = "position_opening_temporarily_suspended"
96
+ POST_ONLY_ORDER_WOULD_IMMEDIATELY_MATCH = "post_only_order_would_immediately_match"
97
+ REQUEST_SCOPE_LIMIT_EXCEEDED = "request_scope_limit_exceeded"
98
+ RISK_LIMIT_EXCEEDED = "risk_limit_exceeded"
99
+ RPC_TIMEOUT = "rpc_timeout"
100
+ SYSTEM_SETTLEMENT_IN_PROCESS = "system_settlement_in_process"
101
+ STRATEGY_ALREADY_EXISTS = "strategy_already_exists"
102
+ STRATEGY_DISABLED = "strategy_disabled"
103
+ STRATEGY_LEVERAGE_MISMATCH = "strategy_leverage_mismatch"
104
+ STRATEGY_NOT_SUPPORTING_EXCHANGE = "strategy_not_supporting_exchange"
105
+ SUCCESS = "success"
106
+ SYMBOL_DOES_NOT_EXIST = "symbol_does_not_exist"
107
+ TRADING_ACTION_EXPIRED = "trading_action_expired"
108
+ TRADING_ACTION_SKIPPED = "trading_action_skipped"
109
+ TRADING_HAS_BEEN_LOCKED = "trading_has_been_locked"
110
+ TRADING_IS_SUSPENDED = "trading_is_suspended"
111
+ UNKNOWN_ERROR_OCCURRED = "unknown_error_occurred"
112
+ REQUESTED_RESOURCE_NOT_FOUND = "requested_resource_not_found"
113
+
114
+ @classmethod
115
+ def from_json(cls, json_str: str) -> Self:
116
+ """Create an instance of ApiErrorIdentifier from a JSON string"""
117
+ return cls(json.loads(json_str))
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Payment API
5
+
6
+ API for accepting payments and storing subscriptions
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class ApiErrorLevel(str, Enum):
22
+ """
23
+ Level of the API error.
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ ERROR = "error"
30
+ INFO = "info"
31
+ SUCCESS = "success"
32
+ WARNING = "warning"
33
+
34
+ @classmethod
35
+ def from_json(cls, json_str: str) -> Self:
36
+ """Create an instance of ApiErrorLevel from a JSON string"""
37
+ return cls(json.loads(json_str))
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Payment API
5
+
6
+ API for accepting payments and storing subscriptions
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class ApiErrorType(str, Enum):
22
+ """
23
+ Type of the API error.
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ USER_ERROR = "user error"
30
+ EXCHANGE_ERROR = "exchange error"
31
+ SERVER_ERROR = "server error"
32
+ NO_ERROR = "no error"
33
+
34
+ @classmethod
35
+ def from_json(cls, json_str: str) -> Self:
36
+ """Create an instance of ApiErrorType from a JSON string"""
37
+ return cls(json.loads(json_str))
@@ -19,19 +19,22 @@ import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
+ from crypticorn.pay.client.models.api_error_identifier import ApiErrorIdentifier
23
+ from crypticorn.pay.client.models.api_error_level import ApiErrorLevel
24
+ from crypticorn.pay.client.models.api_error_type import ApiErrorType
22
25
  from typing import Optional, Set
23
26
  from typing_extensions import Self
24
27
 
25
28
 
26
29
  class ExceptionDetail(BaseModel):
27
30
  """
28
- This is the detail of the exception. It is used to enrich the exception with additional information by unwrapping the ApiError into its components.
31
+ Exception details returned to the client.
29
32
  """ # noqa: E501
30
33
 
31
34
  message: Optional[StrictStr] = None
32
- code: StrictStr = Field(description="API error identifiers")
33
- type: StrictStr = Field(description="Type of API error")
34
- level: StrictStr = Field(description="API error levels")
35
+ code: ApiErrorIdentifier = Field(description="The unique error code")
36
+ type: ApiErrorType = Field(description="The type of error")
37
+ level: ApiErrorLevel = Field(description="The level of the error")
35
38
  status_code: StrictInt = Field(description="The HTTP status code")
36
39
  details: Optional[Any] = None
37
40
  __properties: ClassVar[List[str]] = [
@@ -32,7 +32,7 @@ from typing import Optional, Set
32
32
  from typing_extensions import Self
33
33
 
34
34
 
35
- class ProductRead(BaseModel):
35
+ class Product(BaseModel):
36
36
  """
37
37
  Model for reading a product
38
38
  """ # noqa: E501
@@ -41,7 +41,7 @@ class ProductRead(BaseModel):
41
41
  price: Union[StrictFloat, StrictInt] = Field(description="Product price")
42
42
  scopes: Optional[List[Scope]] = None
43
43
  duration: StrictInt = Field(
44
- description="Product duration in days. 0 means unlimited."
44
+ description="Product duration in days. 0 means forever."
45
45
  )
46
46
  description: StrictStr = Field(description="Product description")
47
47
  is_active: StrictBool = Field(description="Product is active")
@@ -73,7 +73,7 @@ class ProductRead(BaseModel):
73
73
 
74
74
  @classmethod
75
75
  def from_json(cls, json_str: str) -> Optional[Self]:
76
- """Create an instance of ProductRead from a JSON string"""
76
+ """Create an instance of Product from a JSON string"""
77
77
  return cls.from_dict(json.loads(json_str))
78
78
 
79
79
  def to_dict(self) -> Dict[str, Any]:
@@ -102,7 +102,7 @@ class ProductRead(BaseModel):
102
102
 
103
103
  @classmethod
104
104
  def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
105
- """Create an instance of ProductRead from a dict"""
105
+ """Create an instance of Product from a dict"""
106
106
  if obj is None:
107
107
  return None
108
108
 
@@ -41,7 +41,7 @@ class ProductCreate(BaseModel):
41
41
  price: Union[StrictFloat, StrictInt] = Field(description="Product price")
42
42
  scopes: Optional[List[Scope]] = None
43
43
  duration: StrictInt = Field(
44
- description="Product duration in days. 0 means unlimited."
44
+ description="Product duration in days. 0 means forever."
45
45
  )
46
46
  description: StrictStr = Field(description="Product description")
47
47
  is_active: StrictBool = Field(description="Product is active")
@@ -57,6 +57,7 @@ class Scope(str, Enum):
57
57
  READ_COLON_METRICS_COLON_TOKENS = "read:metrics:tokens"
58
58
  READ_COLON_METRICS_COLON_MARKETS = "read:metrics:markets"
59
59
  READ_COLON_SENTIMENT = "read:sentiment"
60
+ READ_COLON_KLINES = "read:klines"
60
61
 
61
62
  @classmethod
62
63
  def from_json(cls, json_str: str) -> Self:
@@ -23,16 +23,16 @@ from typing import Optional, Set
23
23
  from typing_extensions import Self
24
24
 
25
25
 
26
- class ProductSubRead(BaseModel):
26
+ class Subscription(BaseModel):
27
27
  """
28
28
  Model for reading a product subscription
29
29
  """ # noqa: E501
30
30
 
31
31
  user_id: StrictStr = Field(description="User ID")
32
32
  product_id: StrictStr = Field(description="Product ID")
33
- access_from: StrictInt = Field(description="Access from timestamp in milliseconds")
33
+ access_from: StrictInt = Field(description="Access from timestamp in seconds")
34
34
  access_until: StrictInt = Field(
35
- description="Access until timestamp in milliseconds. 0 means unlimited."
35
+ description="Access until timestamp in seconds. 0 means unlimited."
36
36
  )
37
37
  id: StrictStr = Field(description="UID of the product subscription")
38
38
  __properties: ClassVar[List[str]] = [
@@ -60,7 +60,7 @@ class ProductSubRead(BaseModel):
60
60
 
61
61
  @classmethod
62
62
  def from_json(cls, json_str: str) -> Optional[Self]:
63
- """Create an instance of ProductSubRead from a JSON string"""
63
+ """Create an instance of Subscription from a JSON string"""
64
64
  return cls.from_dict(json.loads(json_str))
65
65
 
66
66
  def to_dict(self) -> Dict[str, Any]:
@@ -84,7 +84,7 @@ class ProductSubRead(BaseModel):
84
84
 
85
85
  @classmethod
86
86
  def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
87
- """Create an instance of ProductSubRead from a dict"""
87
+ """Create an instance of Subscription from a dict"""
88
88
  if obj is None:
89
89
  return None
90
90
 
@@ -16,8 +16,9 @@ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
16
16
  from typing import Any, Dict, List, Optional, Tuple, Union
17
17
  from typing_extensions import Annotated
18
18
 
19
- from pydantic import StrictInt, StrictStr
19
+ from pydantic import Field, StrictBool, StrictInt, StrictStr
20
20
  from typing import List, Optional
21
+ from typing_extensions import Annotated
21
22
  from crypticorn.trade.client.models.exchange_key import ExchangeKey
22
23
  from crypticorn.trade.client.models.exchange_key_create import ExchangeKeyCreate
23
24
  from crypticorn.trade.client.models.exchange_key_update import ExchangeKeyUpdate
@@ -57,6 +58,7 @@ class APIKeysApi:
57
58
  ) -> ExchangeKey:
58
59
  """Post Exchange Key
59
60
 
61
+ Create a new exchange key.
60
62
 
61
63
  :param exchange_key_create: (required)
62
64
  :type exchange_key_create: ExchangeKeyCreate
@@ -120,6 +122,7 @@ class APIKeysApi:
120
122
  ) -> ApiResponse[ExchangeKey]:
121
123
  """Post Exchange Key
122
124
 
125
+ Create a new exchange key.
123
126
 
124
127
  :param exchange_key_create: (required)
125
128
  :type exchange_key_create: ExchangeKeyCreate
@@ -183,6 +186,7 @@ class APIKeysApi:
183
186
  ) -> RESTResponseType:
184
187
  """Post Exchange Key
185
188
 
189
+ Create a new exchange key.
186
190
 
187
191
  :param exchange_key_create: (required)
188
192
  :type exchange_key_create: ExchangeKeyCreate
@@ -291,7 +295,7 @@ class APIKeysApi:
291
295
  @validate_call
292
296
  async def delete_exchange_key(
293
297
  self,
294
- id: StrictStr,
298
+ id: Annotated[StrictStr, Field(description="The ID of the API key to delete.")],
295
299
  _request_timeout: Union[
296
300
  None,
297
301
  Annotated[StrictFloat, Field(gt=0)],
@@ -306,8 +310,9 @@ class APIKeysApi:
306
310
  ) -> None:
307
311
  """Delete Exchange Key
308
312
 
313
+ Delete an API key. This will set the deleted field to true.
309
314
 
310
- :param id: (required)
315
+ :param id: The ID of the API key to delete. (required)
311
316
  :type id: str
312
317
  :param _request_timeout: timeout setting for this request. If one
313
318
  number provided, it will be total request
@@ -354,7 +359,7 @@ class APIKeysApi:
354
359
  @validate_call
355
360
  async def delete_exchange_key_with_http_info(
356
361
  self,
357
- id: StrictStr,
362
+ id: Annotated[StrictStr, Field(description="The ID of the API key to delete.")],
358
363
  _request_timeout: Union[
359
364
  None,
360
365
  Annotated[StrictFloat, Field(gt=0)],
@@ -369,8 +374,9 @@ class APIKeysApi:
369
374
  ) -> ApiResponse[None]:
370
375
  """Delete Exchange Key
371
376
 
377
+ Delete an API key. This will set the deleted field to true.
372
378
 
373
- :param id: (required)
379
+ :param id: The ID of the API key to delete. (required)
374
380
  :type id: str
375
381
  :param _request_timeout: timeout setting for this request. If one
376
382
  number provided, it will be total request
@@ -417,7 +423,7 @@ class APIKeysApi:
417
423
  @validate_call
418
424
  async def delete_exchange_key_without_preload_content(
419
425
  self,
420
- id: StrictStr,
426
+ id: Annotated[StrictStr, Field(description="The ID of the API key to delete.")],
421
427
  _request_timeout: Union[
422
428
  None,
423
429
  Annotated[StrictFloat, Field(gt=0)],
@@ -432,8 +438,9 @@ class APIKeysApi:
432
438
  ) -> RESTResponseType:
433
439
  """Delete Exchange Key
434
440
 
441
+ Delete an API key. This will set the deleted field to true.
435
442
 
436
- :param id: (required)
443
+ :param id: The ID of the API key to delete. (required)
437
444
  :type id: str
438
445
  :param _request_timeout: timeout setting for this request. If one
439
446
  number provided, it will be total request
@@ -530,7 +537,7 @@ class APIKeysApi:
530
537
  @validate_call
531
538
  async def get_exchange_key_by_id(
532
539
  self,
533
- id: StrictStr,
540
+ id: Annotated[StrictStr, Field(description="The ID of the API key to get.")],
534
541
  _request_timeout: Union[
535
542
  None,
536
543
  Annotated[StrictFloat, Field(gt=0)],
@@ -545,8 +552,9 @@ class APIKeysApi:
545
552
  ) -> ExchangeKey:
546
553
  """Get Exchange Key By Id
547
554
 
555
+ Get an exchange key by ID.
548
556
 
549
- :param id: (required)
557
+ :param id: The ID of the API key to get. (required)
550
558
  :type id: str
551
559
  :param _request_timeout: timeout setting for this request. If one
552
560
  number provided, it will be total request
@@ -593,7 +601,7 @@ class APIKeysApi:
593
601
  @validate_call
594
602
  async def get_exchange_key_by_id_with_http_info(
595
603
  self,
596
- id: StrictStr,
604
+ id: Annotated[StrictStr, Field(description="The ID of the API key to get.")],
597
605
  _request_timeout: Union[
598
606
  None,
599
607
  Annotated[StrictFloat, Field(gt=0)],
@@ -608,8 +616,9 @@ class APIKeysApi:
608
616
  ) -> ApiResponse[ExchangeKey]:
609
617
  """Get Exchange Key By Id
610
618
 
619
+ Get an exchange key by ID.
611
620
 
612
- :param id: (required)
621
+ :param id: The ID of the API key to get. (required)
613
622
  :type id: str
614
623
  :param _request_timeout: timeout setting for this request. If one
615
624
  number provided, it will be total request
@@ -656,7 +665,7 @@ class APIKeysApi:
656
665
  @validate_call
657
666
  async def get_exchange_key_by_id_without_preload_content(
658
667
  self,
659
- id: StrictStr,
668
+ id: Annotated[StrictStr, Field(description="The ID of the API key to get.")],
660
669
  _request_timeout: Union[
661
670
  None,
662
671
  Annotated[StrictFloat, Field(gt=0)],
@@ -671,8 +680,9 @@ class APIKeysApi:
671
680
  ) -> RESTResponseType:
672
681
  """Get Exchange Key By Id
673
682
 
683
+ Get an exchange key by ID.
674
684
 
675
- :param id: (required)
685
+ :param id: The ID of the API key to get. (required)
676
686
  :type id: str
677
687
  :param _request_timeout: timeout setting for this request. If one
678
688
  number provided, it will be total request
@@ -771,6 +781,10 @@ class APIKeysApi:
771
781
  self,
772
782
  limit: Optional[StrictInt] = None,
773
783
  offset: Optional[StrictInt] = None,
784
+ include_deleted: Annotated[
785
+ Optional[StrictBool],
786
+ Field(description="Whether to include deleted API keys."),
787
+ ] = None,
774
788
  _request_timeout: Union[
775
789
  None,
776
790
  Annotated[StrictFloat, Field(gt=0)],
@@ -785,11 +799,14 @@ class APIKeysApi:
785
799
  ) -> List[ExchangeKey]:
786
800
  """Get Exchange Keys
787
801
 
802
+ Get all exchange keys. If include_deleted is true, all API keys will be returned, including deleted ones.
788
803
 
789
804
  :param limit:
790
805
  :type limit: int
791
806
  :param offset:
792
807
  :type offset: int
808
+ :param include_deleted: Whether to include deleted API keys.
809
+ :type include_deleted: bool
793
810
  :param _request_timeout: timeout setting for this request. If one
794
811
  number provided, it will be total request
795
812
  timeout. It can also be a pair (tuple) of
@@ -815,6 +832,7 @@ class APIKeysApi:
815
832
  _param = self._get_exchange_keys_serialize(
816
833
  limit=limit,
817
834
  offset=offset,
835
+ include_deleted=include_deleted,
818
836
  _request_auth=_request_auth,
819
837
  _content_type=_content_type,
820
838
  _headers=_headers,
@@ -838,6 +856,10 @@ class APIKeysApi:
838
856
  self,
839
857
  limit: Optional[StrictInt] = None,
840
858
  offset: Optional[StrictInt] = None,
859
+ include_deleted: Annotated[
860
+ Optional[StrictBool],
861
+ Field(description="Whether to include deleted API keys."),
862
+ ] = None,
841
863
  _request_timeout: Union[
842
864
  None,
843
865
  Annotated[StrictFloat, Field(gt=0)],
@@ -852,11 +874,14 @@ class APIKeysApi:
852
874
  ) -> ApiResponse[List[ExchangeKey]]:
853
875
  """Get Exchange Keys
854
876
 
877
+ Get all exchange keys. If include_deleted is true, all API keys will be returned, including deleted ones.
855
878
 
856
879
  :param limit:
857
880
  :type limit: int
858
881
  :param offset:
859
882
  :type offset: int
883
+ :param include_deleted: Whether to include deleted API keys.
884
+ :type include_deleted: bool
860
885
  :param _request_timeout: timeout setting for this request. If one
861
886
  number provided, it will be total request
862
887
  timeout. It can also be a pair (tuple) of
@@ -882,6 +907,7 @@ class APIKeysApi:
882
907
  _param = self._get_exchange_keys_serialize(
883
908
  limit=limit,
884
909
  offset=offset,
910
+ include_deleted=include_deleted,
885
911
  _request_auth=_request_auth,
886
912
  _content_type=_content_type,
887
913
  _headers=_headers,
@@ -905,6 +931,10 @@ class APIKeysApi:
905
931
  self,
906
932
  limit: Optional[StrictInt] = None,
907
933
  offset: Optional[StrictInt] = None,
934
+ include_deleted: Annotated[
935
+ Optional[StrictBool],
936
+ Field(description="Whether to include deleted API keys."),
937
+ ] = None,
908
938
  _request_timeout: Union[
909
939
  None,
910
940
  Annotated[StrictFloat, Field(gt=0)],
@@ -919,11 +949,14 @@ class APIKeysApi:
919
949
  ) -> RESTResponseType:
920
950
  """Get Exchange Keys
921
951
 
952
+ Get all exchange keys. If include_deleted is true, all API keys will be returned, including deleted ones.
922
953
 
923
954
  :param limit:
924
955
  :type limit: int
925
956
  :param offset:
926
957
  :type offset: int
958
+ :param include_deleted: Whether to include deleted API keys.
959
+ :type include_deleted: bool
927
960
  :param _request_timeout: timeout setting for this request. If one
928
961
  number provided, it will be total request
929
962
  timeout. It can also be a pair (tuple) of
@@ -949,6 +982,7 @@ class APIKeysApi:
949
982
  _param = self._get_exchange_keys_serialize(
950
983
  limit=limit,
951
984
  offset=offset,
985
+ include_deleted=include_deleted,
952
986
  _request_auth=_request_auth,
953
987
  _content_type=_content_type,
954
988
  _headers=_headers,
@@ -967,6 +1001,7 @@ class APIKeysApi:
967
1001
  self,
968
1002
  limit,
969
1003
  offset,
1004
+ include_deleted,
970
1005
  _request_auth,
971
1006
  _content_type,
972
1007
  _headers,
@@ -996,6 +1031,10 @@ class APIKeysApi:
996
1031
 
997
1032
  _query_params.append(("offset", offset))
998
1033
 
1034
+ if include_deleted is not None:
1035
+
1036
+ _query_params.append(("include_deleted", include_deleted))
1037
+
999
1038
  # process the header parameters
1000
1039
  # process the form parameters
1001
1040
  # process the body parameter
@@ -1027,7 +1066,7 @@ class APIKeysApi:
1027
1066
  @validate_call
1028
1067
  async def update_exchange_key(
1029
1068
  self,
1030
- id: StrictStr,
1069
+ id: Annotated[StrictStr, Field(description="The ID of the API key to update.")],
1031
1070
  exchange_key_update: ExchangeKeyUpdate,
1032
1071
  _request_timeout: Union[
1033
1072
  None,
@@ -1043,8 +1082,9 @@ class APIKeysApi:
1043
1082
  ) -> ExchangeKey:
1044
1083
  """Put Exchange Key
1045
1084
 
1085
+ Update an exchange key.
1046
1086
 
1047
- :param id: (required)
1087
+ :param id: The ID of the API key to update. (required)
1048
1088
  :type id: str
1049
1089
  :param exchange_key_update: (required)
1050
1090
  :type exchange_key_update: ExchangeKeyUpdate
@@ -1094,7 +1134,7 @@ class APIKeysApi:
1094
1134
  @validate_call
1095
1135
  async def update_exchange_key_with_http_info(
1096
1136
  self,
1097
- id: StrictStr,
1137
+ id: Annotated[StrictStr, Field(description="The ID of the API key to update.")],
1098
1138
  exchange_key_update: ExchangeKeyUpdate,
1099
1139
  _request_timeout: Union[
1100
1140
  None,
@@ -1110,8 +1150,9 @@ class APIKeysApi:
1110
1150
  ) -> ApiResponse[ExchangeKey]:
1111
1151
  """Put Exchange Key
1112
1152
 
1153
+ Update an exchange key.
1113
1154
 
1114
- :param id: (required)
1155
+ :param id: The ID of the API key to update. (required)
1115
1156
  :type id: str
1116
1157
  :param exchange_key_update: (required)
1117
1158
  :type exchange_key_update: ExchangeKeyUpdate
@@ -1161,7 +1202,7 @@ class APIKeysApi:
1161
1202
  @validate_call
1162
1203
  async def update_exchange_key_without_preload_content(
1163
1204
  self,
1164
- id: StrictStr,
1205
+ id: Annotated[StrictStr, Field(description="The ID of the API key to update.")],
1165
1206
  exchange_key_update: ExchangeKeyUpdate,
1166
1207
  _request_timeout: Union[
1167
1208
  None,
@@ -1177,8 +1218,9 @@ class APIKeysApi:
1177
1218
  ) -> RESTResponseType:
1178
1219
  """Put Exchange Key
1179
1220
 
1221
+ Update an exchange key.
1180
1222
 
1181
- :param id: (required)
1223
+ :param id: The ID of the API key to update. (required)
1182
1224
  :type id: str
1183
1225
  :param exchange_key_update: (required)
1184
1226
  :type exchange_key_update: ExchangeKeyUpdate
@@ -56,6 +56,7 @@ class OrdersApi:
56
56
  ) -> List[Order]:
57
57
  """Get Orders
58
58
 
59
+ Get all orders for a user
59
60
 
60
61
  :param limit:
61
62
  :type limit: int
@@ -123,6 +124,7 @@ class OrdersApi:
123
124
  ) -> ApiResponse[List[Order]]:
124
125
  """Get Orders
125
126
 
127
+ Get all orders for a user
126
128
 
127
129
  :param limit:
128
130
  :type limit: int
@@ -190,6 +192,7 @@ class OrdersApi:
190
192
  ) -> RESTResponseType:
191
193
  """Get Orders
192
194
 
195
+ Get all orders for a user
193
196
 
194
197
  :param limit:
195
198
  :type limit: int
@@ -74,7 +74,7 @@ class ApiErrorIdentifier(str, Enum):
74
74
  "order_violates_liquidation_price_constraints"
75
75
  )
76
76
  MARGIN_MODE_CLASH = "margin_mode_clash"
77
- MODEL_NAME_NOT_UNIQUE = "model_name_not_unique"
77
+ NAME_NOT_UNIQUE = "name_not_unique"
78
78
  NO_CREDENTIALS = "no_credentials"
79
79
  NOW_API_DOWN = "now_api_down"
80
80
  OBJECT_ALREADY_EXISTS = "object_already_exists"