wildberries-sdk 0.1.17__py3-none-any.whl → 0.1.19__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 (96) hide show
  1. wildberries_sdk/analytics/__init__.py +3 -7
  2. wildberries_sdk/analytics/api/__init__.py +1 -3
  3. wildberries_sdk/analytics/api/default_api.py +4670 -0
  4. wildberries_sdk/analytics/api_client.py +1 -1
  5. wildberries_sdk/analytics/configuration.py +1 -1
  6. wildberries_sdk/communications/__init__.py +1 -5
  7. wildberries_sdk/communications/api/__init__.py +0 -2
  8. wildberries_sdk/communications/api/default_api.py +4282 -858
  9. wildberries_sdk/communications/api_client.py +1 -1
  10. wildberries_sdk/communications/configuration.py +1 -1
  11. wildberries_sdk/finances/__init__.py +1 -3
  12. wildberries_sdk/finances/api/__init__.py +0 -1
  13. wildberries_sdk/finances/api/default_api.py +367 -2
  14. wildberries_sdk/finances/api_client.py +1 -1
  15. wildberries_sdk/finances/configuration.py +1 -1
  16. wildberries_sdk/finances/models/detail_report_item.py +6 -2
  17. wildberries_sdk/general/__init__.py +3 -7
  18. wildberries_sdk/general/api/__init__.py +1 -3
  19. wildberries_sdk/general/api/{api.py → default_api.py} +560 -1
  20. wildberries_sdk/general/api_client.py +1 -1
  21. wildberries_sdk/general/configuration.py +1 -1
  22. wildberries_sdk/in_store_pickup/__init__.py +3 -5
  23. wildberries_sdk/in_store_pickup/api/__init__.py +1 -2
  24. wildberries_sdk/in_store_pickup/api/{api.py → default_api.py} +1798 -2
  25. wildberries_sdk/in_store_pickup/api_client.py +1 -1
  26. wildberries_sdk/in_store_pickup/configuration.py +1 -1
  27. wildberries_sdk/orders_dbs/__init__.py +3 -5
  28. wildberries_sdk/orders_dbs/api/__init__.py +1 -2
  29. wildberries_sdk/orders_dbs/api/{dbs_api.py → default_api.py} +1819 -2
  30. wildberries_sdk/orders_dbs/api_client.py +1 -1
  31. wildberries_sdk/orders_dbs/configuration.py +1 -1
  32. wildberries_sdk/orders_dbw/__init__.py +3 -5
  33. wildberries_sdk/orders_dbw/api/__init__.py +1 -2
  34. wildberries_sdk/orders_dbw/api/{dbw_api.py → default_api.py} +1821 -1
  35. wildberries_sdk/orders_dbw/api_client.py +1 -1
  36. wildberries_sdk/orders_dbw/configuration.py +1 -1
  37. wildberries_sdk/orders_fbs/__init__.py +3 -5
  38. wildberries_sdk/orders_fbs/api/__init__.py +1 -2
  39. wildberries_sdk/orders_fbs/api/default_api.py +10043 -0
  40. wildberries_sdk/orders_fbs/api_client.py +1 -1
  41. wildberries_sdk/orders_fbs/configuration.py +1 -1
  42. wildberries_sdk/orders_fbw/__init__.py +3 -5
  43. wildberries_sdk/orders_fbw/api/__init__.py +1 -2
  44. wildberries_sdk/orders_fbw/api/default_api.py +2368 -0
  45. wildberries_sdk/orders_fbw/api_client.py +1 -1
  46. wildberries_sdk/orders_fbw/configuration.py +1 -1
  47. wildberries_sdk/products/__init__.py +1 -7
  48. wildberries_sdk/products/api/__init__.py +0 -3
  49. wildberries_sdk/products/api/default_api.py +12348 -2
  50. wildberries_sdk/products/api_client.py +1 -1
  51. wildberries_sdk/products/configuration.py +1 -1
  52. wildberries_sdk/products/models/content_v2_cards_update_post_request_inner_dimensions.py +1 -1
  53. wildberries_sdk/products/models/content_v2_cards_upload_add_post_request_cards_to_add_inner_dimensions.py +1 -1
  54. wildberries_sdk/products/models/content_v2_cards_upload_post_request_inner_variants_inner_dimensions.py +1 -1
  55. wildberries_sdk/products/models/content_v2_get_cards_list_post200_response_cards_inner_tags_inner.py +1 -1
  56. wildberries_sdk/promotion/__init__.py +1 -3
  57. wildberries_sdk/promotion/api/__init__.py +0 -1
  58. wildberries_sdk/promotion/api/default_api.py +10107 -1059
  59. wildberries_sdk/promotion/api_client.py +1 -1
  60. wildberries_sdk/promotion/configuration.py +1 -1
  61. wildberries_sdk/reports/__init__.py +3 -13
  62. wildberries_sdk/reports/api/__init__.py +1 -6
  63. wildberries_sdk/{promotion/api/api.py → reports/api/default_api.py} +2245 -2381
  64. wildberries_sdk/reports/api_client.py +1 -1
  65. wildberries_sdk/reports/configuration.py +1 -1
  66. wildberries_sdk/tariffs/__init__.py +1 -3
  67. wildberries_sdk/tariffs/api/__init__.py +0 -1
  68. wildberries_sdk/tariffs/api/default_api.py +1147 -34
  69. wildberries_sdk/tariffs/api_client.py +1 -1
  70. wildberries_sdk/tariffs/configuration.py +1 -1
  71. wildberries_sdk/wbd/__init__.py +1 -3
  72. wildberries_sdk/wbd/api/__init__.py +0 -1
  73. wildberries_sdk/wbd/api/default_api.py +1662 -89
  74. wildberries_sdk/wbd/api_client.py +1 -1
  75. wildberries_sdk/wbd/configuration.py +1 -1
  76. wildberries_sdk/wbd/models/offer_create_request.py +1 -1
  77. wildberries_sdk/wbd/models/offer_update_request.py +1 -1
  78. wildberries_sdk-0.1.19.dist-info/METADATA +390 -0
  79. {wildberries_sdk-0.1.17.dist-info → wildberries_sdk-0.1.19.dist-info}/RECORD +82 -92
  80. wildberries_sdk/analytics/api/api.py +0 -1490
  81. wildberries_sdk/analytics/api/csv_api.py +0 -1178
  82. wildberries_sdk/communications/api/api.py +0 -1166
  83. wildberries_sdk/finances/api/api.py +0 -404
  84. wildberries_sdk/general/api/api_api.py +0 -341
  85. wildberries_sdk/general/api/wbapi_api.py +0 -291
  86. wildberries_sdk/orders_fbs/api/fbs_api.py +0 -2683
  87. wildberries_sdk/orders_fbw/api/api.py +0 -1153
  88. wildberries_sdk/products/api/api.py +0 -3891
  89. wildberries_sdk/reports/api/api.py +0 -350
  90. wildberries_sdk/reports/api/c_api.py +0 -361
  91. wildberries_sdk/tariffs/api/api.py +0 -1151
  92. wildberries_sdk/wbd/api/api.py +0 -1611
  93. wildberries_sdk-0.1.17.dist-info/METADATA +0 -191
  94. {wildberries_sdk-0.1.17.dist-info → wildberries_sdk-0.1.19.dist-info}/LICENSE +0 -0
  95. {wildberries_sdk-0.1.17.dist-info → wildberries_sdk-0.1.19.dist-info}/WHEEL +0 -0
  96. {wildberries_sdk-0.1.17.dist-info → wildberries_sdk-0.1.19.dist-info}/top_level.txt +0 -0
@@ -16,7 +16,7 @@ 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 Field, StrictBytes, StrictInt, StrictStr, field_validator
19
+ from pydantic import Field, StrictBool, StrictBytes, StrictInt, StrictStr, field_validator
20
20
  from typing import List, Optional, Tuple, Union
21
21
  from typing_extensions import Annotated
22
22
  from wildberries_sdk.wbd.models.content import Content
@@ -24,6 +24,11 @@ from wildberries_sdk.wbd.models.content_delete_request import ContentDeleteReque
24
24
  from wildberries_sdk.wbd.models.content_list import ContentList
25
25
  from wildberries_sdk.wbd.models.get_full_catalog_response import GetFullCatalogResponse
26
26
  from wildberries_sdk.wbd.models.illustration_response import IllustrationResponse
27
+ from wildberries_sdk.wbd.models.keys_count_response import KeysCountResponse
28
+ from wildberries_sdk.wbd.models.keys_delete_response import KeysDeleteResponse
29
+ from wildberries_sdk.wbd.models.keys_load_request import KeysLoadRequest
30
+ from wildberries_sdk.wbd.models.keys_redeemed_response_list import KeysRedeemedResponseList
31
+ from wildberries_sdk.wbd.models.keys_response_list import KeysResponseList
27
32
  from wildberries_sdk.wbd.models.offer_create_request import OfferCreateRequest
28
33
  from wildberries_sdk.wbd.models.offer_price_update_request import OfferPriceUpdateRequest
29
34
  from wildberries_sdk.wbd.models.offer_response import OfferResponse
@@ -2806,6 +2811,291 @@ class DefaultApi:
2806
2811
 
2807
2812
 
2808
2813
 
2814
+ @validate_call
2815
+ def delete_keys_by_ids(
2816
+ self,
2817
+ ids: Annotated[List[StrictInt], Field(description="Список ID ключей")],
2818
+ _request_timeout: Union[
2819
+ None,
2820
+ Annotated[StrictFloat, Field(gt=0)],
2821
+ Tuple[
2822
+ Annotated[StrictFloat, Field(gt=0)],
2823
+ Annotated[StrictFloat, Field(gt=0)]
2824
+ ]
2825
+ ] = None,
2826
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2827
+ _content_type: Optional[StrictStr] = None,
2828
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2829
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
2830
+ ) -> KeysDeleteResponse:
2831
+ """Удалить ключи активации
2832
+
2833
+ Метод позволяет удалить ключи активации по их ID. <div class=\"description_important\"> Доступ к методу предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_black\">техническую поддержку</a>. </div> <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
2834
+
2835
+ :param ids: Список ID ключей (required)
2836
+ :type ids: List[int]
2837
+ :param _request_timeout: timeout setting for this request. If one
2838
+ number provided, it will be total request
2839
+ timeout. It can also be a pair (tuple) of
2840
+ (connection, read) timeouts.
2841
+ :type _request_timeout: int, tuple(int, int), optional
2842
+ :param _request_auth: set to override the auth_settings for an a single
2843
+ request; this effectively ignores the
2844
+ authentication in the spec for a single request.
2845
+ :type _request_auth: dict, optional
2846
+ :param _content_type: force content-type for the request.
2847
+ :type _content_type: str, Optional
2848
+ :param _headers: set to override the headers for a single
2849
+ request; this effectively ignores the headers
2850
+ in the spec for a single request.
2851
+ :type _headers: dict, optional
2852
+ :param _host_index: set to override the host_index for a single
2853
+ request; this effectively ignores the host_index
2854
+ in the spec for a single request.
2855
+ :type _host_index: int, optional
2856
+ :return: Returns the result object.
2857
+ """ # noqa: E501
2858
+
2859
+ _param = self._delete_keys_by_ids_serialize(
2860
+ ids=ids,
2861
+ _request_auth=_request_auth,
2862
+ _content_type=_content_type,
2863
+ _headers=_headers,
2864
+ _host_index=_host_index
2865
+ )
2866
+
2867
+ _response_types_map: Dict[str, Optional[str]] = {
2868
+ '200': "KeysDeleteResponse",
2869
+ '207': "KeysDeleteResponse",
2870
+ '400': "ProblemDetails400",
2871
+ '401': "ProblemDetails401",
2872
+ '403': "ProblemDetails403",
2873
+ '404': "ProblemDetails404",
2874
+ '500': "ProblemDetails500",
2875
+ }
2876
+ response_data = self.api_client.call_api(
2877
+ *_param,
2878
+ _request_timeout=_request_timeout
2879
+ )
2880
+ response_data.read()
2881
+ return self.api_client.response_deserialize(
2882
+ response_data=response_data,
2883
+ response_types_map=_response_types_map,
2884
+ ).data
2885
+
2886
+
2887
+ @validate_call
2888
+ def delete_keys_by_ids_with_http_info(
2889
+ self,
2890
+ ids: Annotated[List[StrictInt], Field(description="Список ID ключей")],
2891
+ _request_timeout: Union[
2892
+ None,
2893
+ Annotated[StrictFloat, Field(gt=0)],
2894
+ Tuple[
2895
+ Annotated[StrictFloat, Field(gt=0)],
2896
+ Annotated[StrictFloat, Field(gt=0)]
2897
+ ]
2898
+ ] = None,
2899
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2900
+ _content_type: Optional[StrictStr] = None,
2901
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2902
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
2903
+ ) -> ApiResponse[KeysDeleteResponse]:
2904
+ """Удалить ключи активации
2905
+
2906
+ Метод позволяет удалить ключи активации по их ID. <div class=\"description_important\"> Доступ к методу предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_black\">техническую поддержку</a>. </div> <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
2907
+
2908
+ :param ids: Список ID ключей (required)
2909
+ :type ids: List[int]
2910
+ :param _request_timeout: timeout setting for this request. If one
2911
+ number provided, it will be total request
2912
+ timeout. It can also be a pair (tuple) of
2913
+ (connection, read) timeouts.
2914
+ :type _request_timeout: int, tuple(int, int), optional
2915
+ :param _request_auth: set to override the auth_settings for an a single
2916
+ request; this effectively ignores the
2917
+ authentication in the spec for a single request.
2918
+ :type _request_auth: dict, optional
2919
+ :param _content_type: force content-type for the request.
2920
+ :type _content_type: str, Optional
2921
+ :param _headers: set to override the headers for a single
2922
+ request; this effectively ignores the headers
2923
+ in the spec for a single request.
2924
+ :type _headers: dict, optional
2925
+ :param _host_index: set to override the host_index for a single
2926
+ request; this effectively ignores the host_index
2927
+ in the spec for a single request.
2928
+ :type _host_index: int, optional
2929
+ :return: Returns the result object.
2930
+ """ # noqa: E501
2931
+
2932
+ _param = self._delete_keys_by_ids_serialize(
2933
+ ids=ids,
2934
+ _request_auth=_request_auth,
2935
+ _content_type=_content_type,
2936
+ _headers=_headers,
2937
+ _host_index=_host_index
2938
+ )
2939
+
2940
+ _response_types_map: Dict[str, Optional[str]] = {
2941
+ '200': "KeysDeleteResponse",
2942
+ '207': "KeysDeleteResponse",
2943
+ '400': "ProblemDetails400",
2944
+ '401': "ProblemDetails401",
2945
+ '403': "ProblemDetails403",
2946
+ '404': "ProblemDetails404",
2947
+ '500': "ProblemDetails500",
2948
+ }
2949
+ response_data = self.api_client.call_api(
2950
+ *_param,
2951
+ _request_timeout=_request_timeout
2952
+ )
2953
+ response_data.read()
2954
+ return self.api_client.response_deserialize(
2955
+ response_data=response_data,
2956
+ response_types_map=_response_types_map,
2957
+ )
2958
+
2959
+
2960
+ @validate_call
2961
+ def delete_keys_by_ids_without_preload_content(
2962
+ self,
2963
+ ids: Annotated[List[StrictInt], Field(description="Список ID ключей")],
2964
+ _request_timeout: Union[
2965
+ None,
2966
+ Annotated[StrictFloat, Field(gt=0)],
2967
+ Tuple[
2968
+ Annotated[StrictFloat, Field(gt=0)],
2969
+ Annotated[StrictFloat, Field(gt=0)]
2970
+ ]
2971
+ ] = None,
2972
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2973
+ _content_type: Optional[StrictStr] = None,
2974
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2975
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
2976
+ ) -> RESTResponseType:
2977
+ """Удалить ключи активации
2978
+
2979
+ Метод позволяет удалить ключи активации по их ID. <div class=\"description_important\"> Доступ к методу предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_black\">техническую поддержку</a>. </div> <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
2980
+
2981
+ :param ids: Список ID ключей (required)
2982
+ :type ids: List[int]
2983
+ :param _request_timeout: timeout setting for this request. If one
2984
+ number provided, it will be total request
2985
+ timeout. It can also be a pair (tuple) of
2986
+ (connection, read) timeouts.
2987
+ :type _request_timeout: int, tuple(int, int), optional
2988
+ :param _request_auth: set to override the auth_settings for an a single
2989
+ request; this effectively ignores the
2990
+ authentication in the spec for a single request.
2991
+ :type _request_auth: dict, optional
2992
+ :param _content_type: force content-type for the request.
2993
+ :type _content_type: str, Optional
2994
+ :param _headers: set to override the headers for a single
2995
+ request; this effectively ignores the headers
2996
+ in the spec for a single request.
2997
+ :type _headers: dict, optional
2998
+ :param _host_index: set to override the host_index for a single
2999
+ request; this effectively ignores the host_index
3000
+ in the spec for a single request.
3001
+ :type _host_index: int, optional
3002
+ :return: Returns the result object.
3003
+ """ # noqa: E501
3004
+
3005
+ _param = self._delete_keys_by_ids_serialize(
3006
+ ids=ids,
3007
+ _request_auth=_request_auth,
3008
+ _content_type=_content_type,
3009
+ _headers=_headers,
3010
+ _host_index=_host_index
3011
+ )
3012
+
3013
+ _response_types_map: Dict[str, Optional[str]] = {
3014
+ '200': "KeysDeleteResponse",
3015
+ '207': "KeysDeleteResponse",
3016
+ '400': "ProblemDetails400",
3017
+ '401': "ProblemDetails401",
3018
+ '403': "ProblemDetails403",
3019
+ '404': "ProblemDetails404",
3020
+ '500': "ProblemDetails500",
3021
+ }
3022
+ response_data = self.api_client.call_api(
3023
+ *_param,
3024
+ _request_timeout=_request_timeout
3025
+ )
3026
+ return response_data.response
3027
+
3028
+
3029
+ def _delete_keys_by_ids_serialize(
3030
+ self,
3031
+ ids,
3032
+ _request_auth,
3033
+ _content_type,
3034
+ _headers,
3035
+ _host_index,
3036
+ ) -> RequestSerialized:
3037
+
3038
+ _hosts = [
3039
+ 'https://devapi-digital.wildberries.ru'
3040
+ ]
3041
+ _host = _hosts[_host_index]
3042
+
3043
+ _collection_formats: Dict[str, str] = {
3044
+ 'ids': 'multi',
3045
+ }
3046
+
3047
+ _path_params: Dict[str, str] = {}
3048
+ _query_params: List[Tuple[str, str]] = []
3049
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3050
+ _form_params: List[Tuple[str, str]] = []
3051
+ _files: Dict[
3052
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3053
+ ] = {}
3054
+ _body_params: Optional[bytes] = None
3055
+
3056
+ # process the path parameters
3057
+ # process the query parameters
3058
+ if ids is not None:
3059
+
3060
+ _query_params.append(('ids', ids))
3061
+
3062
+ # process the header parameters
3063
+ # process the form parameters
3064
+ # process the body parameter
3065
+
3066
+
3067
+ # set the HTTP header `Accept`
3068
+ if 'Accept' not in _header_params:
3069
+ _header_params['Accept'] = self.api_client.select_header_accept(
3070
+ [
3071
+ 'application/json'
3072
+ ]
3073
+ )
3074
+
3075
+
3076
+ # authentication setting
3077
+ _auth_settings: List[str] = [
3078
+ 'ApiKeyAuth'
3079
+ ]
3080
+
3081
+ return self.api_client.param_serialize(
3082
+ method='DELETE',
3083
+ resource_path='/api/v1/keys-api/keys',
3084
+ path_params=_path_params,
3085
+ query_params=_query_params,
3086
+ header_params=_header_params,
3087
+ body=_body_params,
3088
+ post_params=_form_params,
3089
+ files=_files,
3090
+ auth_settings=_auth_settings,
3091
+ collection_formats=_collection_formats,
3092
+ _host=_host,
3093
+ _request_auth=_request_auth
3094
+ )
3095
+
3096
+
3097
+
3098
+
2809
3099
  @validate_call
2810
3100
  def get_catalog(
2811
3101
  self,
@@ -2821,11 +3111,1184 @@ class DefaultApi:
2821
3111
  _content_type: Optional[StrictStr] = None,
2822
3112
  _headers: Optional[Dict[StrictStr, Any]] = None,
2823
3113
  _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
2824
- ) -> GetFullCatalogResponse:
2825
- """Получить категории и их подкатегории
3114
+ ) -> GetFullCatalogResponse:
3115
+ """Получить категории и их подкатегории
3116
+
3117
+ Метод позволяет получить дерево (структуру данных) с категориям и их подкатегориями.<br><br> **Иерархия структуры данных**<br><br> В нашей структуре есть три уровня иерархии: 1. **Корневой узел** — сущность **Каталог** 2. **Внешние узлы** представляют собой категории (`section`): - `1` — Видеоконтент - `2` — Аудиоконтент - `3` — Ключи активации - `4` — Электронные книги - `5` — Аудиокниги - `6` — Цифровые товары - `8` — Услуги - `12` — Купоны и развлечения - `13` — Подарочные сертификаты 3. **Листья дерева** являются подкатегориями (`catalog_path`): - `65` — Обучающие видео - `66` — Спорт - `67` — Мастер-класс - `68` — Йога - `69` — Медитации <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3118
+
3119
+ :param _request_timeout: timeout setting for this request. If one
3120
+ number provided, it will be total request
3121
+ timeout. It can also be a pair (tuple) of
3122
+ (connection, read) timeouts.
3123
+ :type _request_timeout: int, tuple(int, int), optional
3124
+ :param _request_auth: set to override the auth_settings for an a single
3125
+ request; this effectively ignores the
3126
+ authentication in the spec for a single request.
3127
+ :type _request_auth: dict, optional
3128
+ :param _content_type: force content-type for the request.
3129
+ :type _content_type: str, Optional
3130
+ :param _headers: set to override the headers for a single
3131
+ request; this effectively ignores the headers
3132
+ in the spec for a single request.
3133
+ :type _headers: dict, optional
3134
+ :param _host_index: set to override the host_index for a single
3135
+ request; this effectively ignores the host_index
3136
+ in the spec for a single request.
3137
+ :type _host_index: int, optional
3138
+ :return: Returns the result object.
3139
+ """ # noqa: E501
3140
+
3141
+ _param = self._get_catalog_serialize(
3142
+ _request_auth=_request_auth,
3143
+ _content_type=_content_type,
3144
+ _headers=_headers,
3145
+ _host_index=_host_index
3146
+ )
3147
+
3148
+ _response_types_map: Dict[str, Optional[str]] = {
3149
+ '200': "GetFullCatalogResponse",
3150
+ '401': "ProblemDetails401",
3151
+ '500': "ProblemDetails500",
3152
+ }
3153
+ response_data = self.api_client.call_api(
3154
+ *_param,
3155
+ _request_timeout=_request_timeout
3156
+ )
3157
+ response_data.read()
3158
+ return self.api_client.response_deserialize(
3159
+ response_data=response_data,
3160
+ response_types_map=_response_types_map,
3161
+ ).data
3162
+
3163
+
3164
+ @validate_call
3165
+ def get_catalog_with_http_info(
3166
+ self,
3167
+ _request_timeout: Union[
3168
+ None,
3169
+ Annotated[StrictFloat, Field(gt=0)],
3170
+ Tuple[
3171
+ Annotated[StrictFloat, Field(gt=0)],
3172
+ Annotated[StrictFloat, Field(gt=0)]
3173
+ ]
3174
+ ] = None,
3175
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3176
+ _content_type: Optional[StrictStr] = None,
3177
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3178
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3179
+ ) -> ApiResponse[GetFullCatalogResponse]:
3180
+ """Получить категории и их подкатегории
3181
+
3182
+ Метод позволяет получить дерево (структуру данных) с категориям и их подкатегориями.<br><br> **Иерархия структуры данных**<br><br> В нашей структуре есть три уровня иерархии: 1. **Корневой узел** — сущность **Каталог** 2. **Внешние узлы** представляют собой категории (`section`): - `1` — Видеоконтент - `2` — Аудиоконтент - `3` — Ключи активации - `4` — Электронные книги - `5` — Аудиокниги - `6` — Цифровые товары - `8` — Услуги - `12` — Купоны и развлечения - `13` — Подарочные сертификаты 3. **Листья дерева** являются подкатегориями (`catalog_path`): - `65` — Обучающие видео - `66` — Спорт - `67` — Мастер-класс - `68` — Йога - `69` — Медитации <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3183
+
3184
+ :param _request_timeout: timeout setting for this request. If one
3185
+ number provided, it will be total request
3186
+ timeout. It can also be a pair (tuple) of
3187
+ (connection, read) timeouts.
3188
+ :type _request_timeout: int, tuple(int, int), optional
3189
+ :param _request_auth: set to override the auth_settings for an a single
3190
+ request; this effectively ignores the
3191
+ authentication in the spec for a single request.
3192
+ :type _request_auth: dict, optional
3193
+ :param _content_type: force content-type for the request.
3194
+ :type _content_type: str, Optional
3195
+ :param _headers: set to override the headers for a single
3196
+ request; this effectively ignores the headers
3197
+ in the spec for a single request.
3198
+ :type _headers: dict, optional
3199
+ :param _host_index: set to override the host_index for a single
3200
+ request; this effectively ignores the host_index
3201
+ in the spec for a single request.
3202
+ :type _host_index: int, optional
3203
+ :return: Returns the result object.
3204
+ """ # noqa: E501
3205
+
3206
+ _param = self._get_catalog_serialize(
3207
+ _request_auth=_request_auth,
3208
+ _content_type=_content_type,
3209
+ _headers=_headers,
3210
+ _host_index=_host_index
3211
+ )
3212
+
3213
+ _response_types_map: Dict[str, Optional[str]] = {
3214
+ '200': "GetFullCatalogResponse",
3215
+ '401': "ProblemDetails401",
3216
+ '500': "ProblemDetails500",
3217
+ }
3218
+ response_data = self.api_client.call_api(
3219
+ *_param,
3220
+ _request_timeout=_request_timeout
3221
+ )
3222
+ response_data.read()
3223
+ return self.api_client.response_deserialize(
3224
+ response_data=response_data,
3225
+ response_types_map=_response_types_map,
3226
+ )
3227
+
3228
+
3229
+ @validate_call
3230
+ def get_catalog_without_preload_content(
3231
+ self,
3232
+ _request_timeout: Union[
3233
+ None,
3234
+ Annotated[StrictFloat, Field(gt=0)],
3235
+ Tuple[
3236
+ Annotated[StrictFloat, Field(gt=0)],
3237
+ Annotated[StrictFloat, Field(gt=0)]
3238
+ ]
3239
+ ] = None,
3240
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3241
+ _content_type: Optional[StrictStr] = None,
3242
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3243
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3244
+ ) -> RESTResponseType:
3245
+ """Получить категории и их подкатегории
3246
+
3247
+ Метод позволяет получить дерево (структуру данных) с категориям и их подкатегориями.<br><br> **Иерархия структуры данных**<br><br> В нашей структуре есть три уровня иерархии: 1. **Корневой узел** — сущность **Каталог** 2. **Внешние узлы** представляют собой категории (`section`): - `1` — Видеоконтент - `2` — Аудиоконтент - `3` — Ключи активации - `4` — Электронные книги - `5` — Аудиокниги - `6` — Цифровые товары - `8` — Услуги - `12` — Купоны и развлечения - `13` — Подарочные сертификаты 3. **Листья дерева** являются подкатегориями (`catalog_path`): - `65` — Обучающие видео - `66` — Спорт - `67` — Мастер-класс - `68` — Йога - `69` — Медитации <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3248
+
3249
+ :param _request_timeout: timeout setting for this request. If one
3250
+ number provided, it will be total request
3251
+ timeout. It can also be a pair (tuple) of
3252
+ (connection, read) timeouts.
3253
+ :type _request_timeout: int, tuple(int, int), optional
3254
+ :param _request_auth: set to override the auth_settings for an a single
3255
+ request; this effectively ignores the
3256
+ authentication in the spec for a single request.
3257
+ :type _request_auth: dict, optional
3258
+ :param _content_type: force content-type for the request.
3259
+ :type _content_type: str, Optional
3260
+ :param _headers: set to override the headers for a single
3261
+ request; this effectively ignores the headers
3262
+ in the spec for a single request.
3263
+ :type _headers: dict, optional
3264
+ :param _host_index: set to override the host_index for a single
3265
+ request; this effectively ignores the host_index
3266
+ in the spec for a single request.
3267
+ :type _host_index: int, optional
3268
+ :return: Returns the result object.
3269
+ """ # noqa: E501
3270
+
3271
+ _param = self._get_catalog_serialize(
3272
+ _request_auth=_request_auth,
3273
+ _content_type=_content_type,
3274
+ _headers=_headers,
3275
+ _host_index=_host_index
3276
+ )
3277
+
3278
+ _response_types_map: Dict[str, Optional[str]] = {
3279
+ '200': "GetFullCatalogResponse",
3280
+ '401': "ProblemDetails401",
3281
+ '500': "ProblemDetails500",
3282
+ }
3283
+ response_data = self.api_client.call_api(
3284
+ *_param,
3285
+ _request_timeout=_request_timeout
3286
+ )
3287
+ return response_data.response
3288
+
3289
+
3290
+ def _get_catalog_serialize(
3291
+ self,
3292
+ _request_auth,
3293
+ _content_type,
3294
+ _headers,
3295
+ _host_index,
3296
+ ) -> RequestSerialized:
3297
+
3298
+ _hosts = [
3299
+ 'https://devapi-digital.wildberries.ru'
3300
+ ]
3301
+ _host = _hosts[_host_index]
3302
+
3303
+ _collection_formats: Dict[str, str] = {
3304
+ }
3305
+
3306
+ _path_params: Dict[str, str] = {}
3307
+ _query_params: List[Tuple[str, str]] = []
3308
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3309
+ _form_params: List[Tuple[str, str]] = []
3310
+ _files: Dict[
3311
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3312
+ ] = {}
3313
+ _body_params: Optional[bytes] = None
3314
+
3315
+ # process the path parameters
3316
+ # process the query parameters
3317
+ # process the header parameters
3318
+ # process the form parameters
3319
+ # process the body parameter
3320
+
3321
+
3322
+ # set the HTTP header `Accept`
3323
+ if 'Accept' not in _header_params:
3324
+ _header_params['Accept'] = self.api_client.select_header_accept(
3325
+ [
3326
+ 'application/json'
3327
+ ]
3328
+ )
3329
+
3330
+
3331
+ # authentication setting
3332
+ _auth_settings: List[str] = [
3333
+ 'ApiKeyAuth'
3334
+ ]
3335
+
3336
+ return self.api_client.param_serialize(
3337
+ method='GET',
3338
+ resource_path='/api/v1/catalog',
3339
+ path_params=_path_params,
3340
+ query_params=_query_params,
3341
+ header_params=_header_params,
3342
+ body=_body_params,
3343
+ post_params=_form_params,
3344
+ files=_files,
3345
+ auth_settings=_auth_settings,
3346
+ collection_formats=_collection_formats,
3347
+ _host=_host,
3348
+ _request_auth=_request_auth
3349
+ )
3350
+
3351
+
3352
+
3353
+
3354
+ @validate_call
3355
+ def get_redeemed_keys(
3356
+ self,
3357
+ offer_id: Annotated[Optional[StrictInt], Field(description="Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением")] = None,
3358
+ skip: Annotated[Optional[StrictInt], Field(description="Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации")] = None,
3359
+ take: Annotated[Optional[StrictInt], Field(description="Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе")] = None,
3360
+ date_from: Annotated[Optional[StrictStr], Field(description="Фильтрация по дате покупки начиная с указанной даты (включительно).<br><br> Формат даты: **RFC3339** (`2023-06-17T19:20:30Z`) ")] = None,
3361
+ date_to: Annotated[Optional[StrictStr], Field(description="Фильтрация по дате покупки до указанной даты (не включительно). Формат даты: **RFC3339** (`2024-10-18T19:20:30Z`) ")] = None,
3362
+ _request_timeout: Union[
3363
+ None,
3364
+ Annotated[StrictFloat, Field(gt=0)],
3365
+ Tuple[
3366
+ Annotated[StrictFloat, Field(gt=0)],
3367
+ Annotated[StrictFloat, Field(gt=0)]
3368
+ ]
3369
+ ] = None,
3370
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3371
+ _content_type: Optional[StrictStr] = None,
3372
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3373
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3374
+ ) -> KeysRedeemedResponseList:
3375
+ """Получить купленные ключи
3376
+
3377
+ Метод позволяет получить список купленных ключей с использованием фильтрации.<br><br> **Описание параметров фильтрации** - `offer_id` — Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением. - `skip` — Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе.<br> **Например**, если `skip` равно 20, то выборка начнется с 21 записи. - `take` — Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе.<br> **Например**, если `take` равно 10, то в ответе будет не более 10 записей. - `date_from` — Фильтрация по дате покупки начиная с указанной даты (включительно).<br> Формат даты: **RFC3339**. - `date_to` — Фильтрация по дате покупки до указанной даты (не включительно).<br> Формат даты: **RFC3339**. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3378
+
3379
+ :param offer_id: Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением
3380
+ :type offer_id: int
3381
+ :param skip: Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации
3382
+ :type skip: int
3383
+ :param take: Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе
3384
+ :type take: int
3385
+ :param date_from: Фильтрация по дате покупки начиная с указанной даты (включительно).<br><br> Формат даты: **RFC3339** (`2023-06-17T19:20:30Z`)
3386
+ :type date_from: str
3387
+ :param date_to: Фильтрация по дате покупки до указанной даты (не включительно). Формат даты: **RFC3339** (`2024-10-18T19:20:30Z`)
3388
+ :type date_to: str
3389
+ :param _request_timeout: timeout setting for this request. If one
3390
+ number provided, it will be total request
3391
+ timeout. It can also be a pair (tuple) of
3392
+ (connection, read) timeouts.
3393
+ :type _request_timeout: int, tuple(int, int), optional
3394
+ :param _request_auth: set to override the auth_settings for an a single
3395
+ request; this effectively ignores the
3396
+ authentication in the spec for a single request.
3397
+ :type _request_auth: dict, optional
3398
+ :param _content_type: force content-type for the request.
3399
+ :type _content_type: str, Optional
3400
+ :param _headers: set to override the headers for a single
3401
+ request; this effectively ignores the headers
3402
+ in the spec for a single request.
3403
+ :type _headers: dict, optional
3404
+ :param _host_index: set to override the host_index for a single
3405
+ request; this effectively ignores the host_index
3406
+ in the spec for a single request.
3407
+ :type _host_index: int, optional
3408
+ :return: Returns the result object.
3409
+ """ # noqa: E501
3410
+
3411
+ _param = self._get_redeemed_keys_serialize(
3412
+ offer_id=offer_id,
3413
+ skip=skip,
3414
+ take=take,
3415
+ date_from=date_from,
3416
+ date_to=date_to,
3417
+ _request_auth=_request_auth,
3418
+ _content_type=_content_type,
3419
+ _headers=_headers,
3420
+ _host_index=_host_index
3421
+ )
3422
+
3423
+ _response_types_map: Dict[str, Optional[str]] = {
3424
+ '200': "KeysRedeemedResponseList",
3425
+ '401': "ProblemDetails401",
3426
+ '500': "ProblemDetails500",
3427
+ }
3428
+ response_data = self.api_client.call_api(
3429
+ *_param,
3430
+ _request_timeout=_request_timeout
3431
+ )
3432
+ response_data.read()
3433
+ return self.api_client.response_deserialize(
3434
+ response_data=response_data,
3435
+ response_types_map=_response_types_map,
3436
+ ).data
3437
+
3438
+
3439
+ @validate_call
3440
+ def get_redeemed_keys_with_http_info(
3441
+ self,
3442
+ offer_id: Annotated[Optional[StrictInt], Field(description="Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением")] = None,
3443
+ skip: Annotated[Optional[StrictInt], Field(description="Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации")] = None,
3444
+ take: Annotated[Optional[StrictInt], Field(description="Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе")] = None,
3445
+ date_from: Annotated[Optional[StrictStr], Field(description="Фильтрация по дате покупки начиная с указанной даты (включительно).<br><br> Формат даты: **RFC3339** (`2023-06-17T19:20:30Z`) ")] = None,
3446
+ date_to: Annotated[Optional[StrictStr], Field(description="Фильтрация по дате покупки до указанной даты (не включительно). Формат даты: **RFC3339** (`2024-10-18T19:20:30Z`) ")] = None,
3447
+ _request_timeout: Union[
3448
+ None,
3449
+ Annotated[StrictFloat, Field(gt=0)],
3450
+ Tuple[
3451
+ Annotated[StrictFloat, Field(gt=0)],
3452
+ Annotated[StrictFloat, Field(gt=0)]
3453
+ ]
3454
+ ] = None,
3455
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3456
+ _content_type: Optional[StrictStr] = None,
3457
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3458
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3459
+ ) -> ApiResponse[KeysRedeemedResponseList]:
3460
+ """Получить купленные ключи
3461
+
3462
+ Метод позволяет получить список купленных ключей с использованием фильтрации.<br><br> **Описание параметров фильтрации** - `offer_id` — Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением. - `skip` — Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе.<br> **Например**, если `skip` равно 20, то выборка начнется с 21 записи. - `take` — Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе.<br> **Например**, если `take` равно 10, то в ответе будет не более 10 записей. - `date_from` — Фильтрация по дате покупки начиная с указанной даты (включительно).<br> Формат даты: **RFC3339**. - `date_to` — Фильтрация по дате покупки до указанной даты (не включительно).<br> Формат даты: **RFC3339**. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3463
+
3464
+ :param offer_id: Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением
3465
+ :type offer_id: int
3466
+ :param skip: Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации
3467
+ :type skip: int
3468
+ :param take: Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе
3469
+ :type take: int
3470
+ :param date_from: Фильтрация по дате покупки начиная с указанной даты (включительно).<br><br> Формат даты: **RFC3339** (`2023-06-17T19:20:30Z`)
3471
+ :type date_from: str
3472
+ :param date_to: Фильтрация по дате покупки до указанной даты (не включительно). Формат даты: **RFC3339** (`2024-10-18T19:20:30Z`)
3473
+ :type date_to: str
3474
+ :param _request_timeout: timeout setting for this request. If one
3475
+ number provided, it will be total request
3476
+ timeout. It can also be a pair (tuple) of
3477
+ (connection, read) timeouts.
3478
+ :type _request_timeout: int, tuple(int, int), optional
3479
+ :param _request_auth: set to override the auth_settings for an a single
3480
+ request; this effectively ignores the
3481
+ authentication in the spec for a single request.
3482
+ :type _request_auth: dict, optional
3483
+ :param _content_type: force content-type for the request.
3484
+ :type _content_type: str, Optional
3485
+ :param _headers: set to override the headers for a single
3486
+ request; this effectively ignores the headers
3487
+ in the spec for a single request.
3488
+ :type _headers: dict, optional
3489
+ :param _host_index: set to override the host_index for a single
3490
+ request; this effectively ignores the host_index
3491
+ in the spec for a single request.
3492
+ :type _host_index: int, optional
3493
+ :return: Returns the result object.
3494
+ """ # noqa: E501
3495
+
3496
+ _param = self._get_redeemed_keys_serialize(
3497
+ offer_id=offer_id,
3498
+ skip=skip,
3499
+ take=take,
3500
+ date_from=date_from,
3501
+ date_to=date_to,
3502
+ _request_auth=_request_auth,
3503
+ _content_type=_content_type,
3504
+ _headers=_headers,
3505
+ _host_index=_host_index
3506
+ )
3507
+
3508
+ _response_types_map: Dict[str, Optional[str]] = {
3509
+ '200': "KeysRedeemedResponseList",
3510
+ '401': "ProblemDetails401",
3511
+ '500': "ProblemDetails500",
3512
+ }
3513
+ response_data = self.api_client.call_api(
3514
+ *_param,
3515
+ _request_timeout=_request_timeout
3516
+ )
3517
+ response_data.read()
3518
+ return self.api_client.response_deserialize(
3519
+ response_data=response_data,
3520
+ response_types_map=_response_types_map,
3521
+ )
3522
+
3523
+
3524
+ @validate_call
3525
+ def get_redeemed_keys_without_preload_content(
3526
+ self,
3527
+ offer_id: Annotated[Optional[StrictInt], Field(description="Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением")] = None,
3528
+ skip: Annotated[Optional[StrictInt], Field(description="Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации")] = None,
3529
+ take: Annotated[Optional[StrictInt], Field(description="Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе")] = None,
3530
+ date_from: Annotated[Optional[StrictStr], Field(description="Фильтрация по дате покупки начиная с указанной даты (включительно).<br><br> Формат даты: **RFC3339** (`2023-06-17T19:20:30Z`) ")] = None,
3531
+ date_to: Annotated[Optional[StrictStr], Field(description="Фильтрация по дате покупки до указанной даты (не включительно). Формат даты: **RFC3339** (`2024-10-18T19:20:30Z`) ")] = None,
3532
+ _request_timeout: Union[
3533
+ None,
3534
+ Annotated[StrictFloat, Field(gt=0)],
3535
+ Tuple[
3536
+ Annotated[StrictFloat, Field(gt=0)],
3537
+ Annotated[StrictFloat, Field(gt=0)]
3538
+ ]
3539
+ ] = None,
3540
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3541
+ _content_type: Optional[StrictStr] = None,
3542
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3543
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3544
+ ) -> RESTResponseType:
3545
+ """Получить купленные ключи
3546
+
3547
+ Метод позволяет получить список купленных ключей с использованием фильтрации.<br><br> **Описание параметров фильтрации** - `offer_id` — Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением. - `skip` — Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе.<br> **Например**, если `skip` равно 20, то выборка начнется с 21 записи. - `take` — Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе.<br> **Например**, если `take` равно 10, то в ответе будет не более 10 записей. - `date_from` — Фильтрация по дате покупки начиная с указанной даты (включительно).<br> Формат даты: **RFC3339**. - `date_to` — Фильтрация по дате покупки до указанной даты (не включительно).<br> Формат даты: **RFC3339**. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3548
+
3549
+ :param offer_id: Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением
3550
+ :type offer_id: int
3551
+ :param skip: Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации
3552
+ :type skip: int
3553
+ :param take: Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе
3554
+ :type take: int
3555
+ :param date_from: Фильтрация по дате покупки начиная с указанной даты (включительно).<br><br> Формат даты: **RFC3339** (`2023-06-17T19:20:30Z`)
3556
+ :type date_from: str
3557
+ :param date_to: Фильтрация по дате покупки до указанной даты (не включительно). Формат даты: **RFC3339** (`2024-10-18T19:20:30Z`)
3558
+ :type date_to: str
3559
+ :param _request_timeout: timeout setting for this request. If one
3560
+ number provided, it will be total request
3561
+ timeout. It can also be a pair (tuple) of
3562
+ (connection, read) timeouts.
3563
+ :type _request_timeout: int, tuple(int, int), optional
3564
+ :param _request_auth: set to override the auth_settings for an a single
3565
+ request; this effectively ignores the
3566
+ authentication in the spec for a single request.
3567
+ :type _request_auth: dict, optional
3568
+ :param _content_type: force content-type for the request.
3569
+ :type _content_type: str, Optional
3570
+ :param _headers: set to override the headers for a single
3571
+ request; this effectively ignores the headers
3572
+ in the spec for a single request.
3573
+ :type _headers: dict, optional
3574
+ :param _host_index: set to override the host_index for a single
3575
+ request; this effectively ignores the host_index
3576
+ in the spec for a single request.
3577
+ :type _host_index: int, optional
3578
+ :return: Returns the result object.
3579
+ """ # noqa: E501
3580
+
3581
+ _param = self._get_redeemed_keys_serialize(
3582
+ offer_id=offer_id,
3583
+ skip=skip,
3584
+ take=take,
3585
+ date_from=date_from,
3586
+ date_to=date_to,
3587
+ _request_auth=_request_auth,
3588
+ _content_type=_content_type,
3589
+ _headers=_headers,
3590
+ _host_index=_host_index
3591
+ )
3592
+
3593
+ _response_types_map: Dict[str, Optional[str]] = {
3594
+ '200': "KeysRedeemedResponseList",
3595
+ '401': "ProblemDetails401",
3596
+ '500': "ProblemDetails500",
3597
+ }
3598
+ response_data = self.api_client.call_api(
3599
+ *_param,
3600
+ _request_timeout=_request_timeout
3601
+ )
3602
+ return response_data.response
3603
+
3604
+
3605
+ def _get_redeemed_keys_serialize(
3606
+ self,
3607
+ offer_id,
3608
+ skip,
3609
+ take,
3610
+ date_from,
3611
+ date_to,
3612
+ _request_auth,
3613
+ _content_type,
3614
+ _headers,
3615
+ _host_index,
3616
+ ) -> RequestSerialized:
3617
+
3618
+ _hosts = [
3619
+ 'https://devapi-digital.wildberries.ru'
3620
+ ]
3621
+ _host = _hosts[_host_index]
3622
+
3623
+ _collection_formats: Dict[str, str] = {
3624
+ }
3625
+
3626
+ _path_params: Dict[str, str] = {}
3627
+ _query_params: List[Tuple[str, str]] = []
3628
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3629
+ _form_params: List[Tuple[str, str]] = []
3630
+ _files: Dict[
3631
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3632
+ ] = {}
3633
+ _body_params: Optional[bytes] = None
3634
+
3635
+ # process the path parameters
3636
+ # process the query parameters
3637
+ if offer_id is not None:
3638
+
3639
+ _query_params.append(('offer_id', offer_id))
3640
+
3641
+ if skip is not None:
3642
+
3643
+ _query_params.append(('skip', skip))
3644
+
3645
+ if take is not None:
3646
+
3647
+ _query_params.append(('take', take))
3648
+
3649
+ if date_from is not None:
3650
+
3651
+ _query_params.append(('date_from', date_from))
3652
+
3653
+ if date_to is not None:
3654
+
3655
+ _query_params.append(('date_to', date_to))
3656
+
3657
+ # process the header parameters
3658
+ # process the form parameters
3659
+ # process the body parameter
3660
+
3661
+
3662
+ # set the HTTP header `Accept`
3663
+ if 'Accept' not in _header_params:
3664
+ _header_params['Accept'] = self.api_client.select_header_accept(
3665
+ [
3666
+ 'application/json'
3667
+ ]
3668
+ )
3669
+
3670
+
3671
+ # authentication setting
3672
+ _auth_settings: List[str] = [
3673
+ 'ApiKeyAuth'
3674
+ ]
3675
+
3676
+ return self.api_client.param_serialize(
3677
+ method='GET',
3678
+ resource_path='/api/v1/keys-api/keys/redeemed',
3679
+ path_params=_path_params,
3680
+ query_params=_query_params,
3681
+ header_params=_header_params,
3682
+ body=_body_params,
3683
+ post_params=_form_params,
3684
+ files=_files,
3685
+ auth_settings=_auth_settings,
3686
+ collection_formats=_collection_formats,
3687
+ _host=_host,
3688
+ _request_auth=_request_auth
3689
+ )
3690
+
3691
+
3692
+
3693
+
3694
+ @validate_call
3695
+ def load_keys(
3696
+ self,
3697
+ keys_load_request: KeysLoadRequest,
3698
+ _request_timeout: Union[
3699
+ None,
3700
+ Annotated[StrictFloat, Field(gt=0)],
3701
+ Tuple[
3702
+ Annotated[StrictFloat, Field(gt=0)],
3703
+ Annotated[StrictFloat, Field(gt=0)]
3704
+ ]
3705
+ ] = None,
3706
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3707
+ _content_type: Optional[StrictStr] = None,
3708
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3709
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3710
+ ) -> None:
3711
+ """Добавить ключи активации
3712
+
3713
+ Метод позволяет добавить ключи для предложения по ID. <div class=\"description_important\"> Предложение должно быть из категории (<code>section</code>): <ul> <li>Ключи активации — <code>3</code></li> <li>Купоны и развлечения — <code>12</code></li> <li>Подарочные сертификаты — <code>13</code></li> </ul> </div> <div class=\"description_limit\"> Максимум 50 запросов в секунду </div>
3714
+
3715
+ :param keys_load_request: (required)
3716
+ :type keys_load_request: KeysLoadRequest
3717
+ :param _request_timeout: timeout setting for this request. If one
3718
+ number provided, it will be total request
3719
+ timeout. It can also be a pair (tuple) of
3720
+ (connection, read) timeouts.
3721
+ :type _request_timeout: int, tuple(int, int), optional
3722
+ :param _request_auth: set to override the auth_settings for an a single
3723
+ request; this effectively ignores the
3724
+ authentication in the spec for a single request.
3725
+ :type _request_auth: dict, optional
3726
+ :param _content_type: force content-type for the request.
3727
+ :type _content_type: str, Optional
3728
+ :param _headers: set to override the headers for a single
3729
+ request; this effectively ignores the headers
3730
+ in the spec for a single request.
3731
+ :type _headers: dict, optional
3732
+ :param _host_index: set to override the host_index for a single
3733
+ request; this effectively ignores the host_index
3734
+ in the spec for a single request.
3735
+ :type _host_index: int, optional
3736
+ :return: Returns the result object.
3737
+ """ # noqa: E501
3738
+
3739
+ _param = self._load_keys_serialize(
3740
+ keys_load_request=keys_load_request,
3741
+ _request_auth=_request_auth,
3742
+ _content_type=_content_type,
3743
+ _headers=_headers,
3744
+ _host_index=_host_index
3745
+ )
3746
+
3747
+ _response_types_map: Dict[str, Optional[str]] = {
3748
+ '200': None,
3749
+ '401': "ProblemDetails401",
3750
+ '403': "ProblemDetails403",
3751
+ '404': "ProblemDetails404",
3752
+ '500': "ProblemDetails500",
3753
+ }
3754
+ response_data = self.api_client.call_api(
3755
+ *_param,
3756
+ _request_timeout=_request_timeout
3757
+ )
3758
+ response_data.read()
3759
+ return self.api_client.response_deserialize(
3760
+ response_data=response_data,
3761
+ response_types_map=_response_types_map,
3762
+ ).data
3763
+
3764
+
3765
+ @validate_call
3766
+ def load_keys_with_http_info(
3767
+ self,
3768
+ keys_load_request: KeysLoadRequest,
3769
+ _request_timeout: Union[
3770
+ None,
3771
+ Annotated[StrictFloat, Field(gt=0)],
3772
+ Tuple[
3773
+ Annotated[StrictFloat, Field(gt=0)],
3774
+ Annotated[StrictFloat, Field(gt=0)]
3775
+ ]
3776
+ ] = None,
3777
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3778
+ _content_type: Optional[StrictStr] = None,
3779
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3780
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3781
+ ) -> ApiResponse[None]:
3782
+ """Добавить ключи активации
3783
+
3784
+ Метод позволяет добавить ключи для предложения по ID. <div class=\"description_important\"> Предложение должно быть из категории (<code>section</code>): <ul> <li>Ключи активации — <code>3</code></li> <li>Купоны и развлечения — <code>12</code></li> <li>Подарочные сертификаты — <code>13</code></li> </ul> </div> <div class=\"description_limit\"> Максимум 50 запросов в секунду </div>
3785
+
3786
+ :param keys_load_request: (required)
3787
+ :type keys_load_request: KeysLoadRequest
3788
+ :param _request_timeout: timeout setting for this request. If one
3789
+ number provided, it will be total request
3790
+ timeout. It can also be a pair (tuple) of
3791
+ (connection, read) timeouts.
3792
+ :type _request_timeout: int, tuple(int, int), optional
3793
+ :param _request_auth: set to override the auth_settings for an a single
3794
+ request; this effectively ignores the
3795
+ authentication in the spec for a single request.
3796
+ :type _request_auth: dict, optional
3797
+ :param _content_type: force content-type for the request.
3798
+ :type _content_type: str, Optional
3799
+ :param _headers: set to override the headers for a single
3800
+ request; this effectively ignores the headers
3801
+ in the spec for a single request.
3802
+ :type _headers: dict, optional
3803
+ :param _host_index: set to override the host_index for a single
3804
+ request; this effectively ignores the host_index
3805
+ in the spec for a single request.
3806
+ :type _host_index: int, optional
3807
+ :return: Returns the result object.
3808
+ """ # noqa: E501
3809
+
3810
+ _param = self._load_keys_serialize(
3811
+ keys_load_request=keys_load_request,
3812
+ _request_auth=_request_auth,
3813
+ _content_type=_content_type,
3814
+ _headers=_headers,
3815
+ _host_index=_host_index
3816
+ )
3817
+
3818
+ _response_types_map: Dict[str, Optional[str]] = {
3819
+ '200': None,
3820
+ '401': "ProblemDetails401",
3821
+ '403': "ProblemDetails403",
3822
+ '404': "ProblemDetails404",
3823
+ '500': "ProblemDetails500",
3824
+ }
3825
+ response_data = self.api_client.call_api(
3826
+ *_param,
3827
+ _request_timeout=_request_timeout
3828
+ )
3829
+ response_data.read()
3830
+ return self.api_client.response_deserialize(
3831
+ response_data=response_data,
3832
+ response_types_map=_response_types_map,
3833
+ )
3834
+
3835
+
3836
+ @validate_call
3837
+ def load_keys_without_preload_content(
3838
+ self,
3839
+ keys_load_request: KeysLoadRequest,
3840
+ _request_timeout: Union[
3841
+ None,
3842
+ Annotated[StrictFloat, Field(gt=0)],
3843
+ Tuple[
3844
+ Annotated[StrictFloat, Field(gt=0)],
3845
+ Annotated[StrictFloat, Field(gt=0)]
3846
+ ]
3847
+ ] = None,
3848
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3849
+ _content_type: Optional[StrictStr] = None,
3850
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3851
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3852
+ ) -> RESTResponseType:
3853
+ """Добавить ключи активации
3854
+
3855
+ Метод позволяет добавить ключи для предложения по ID. <div class=\"description_important\"> Предложение должно быть из категории (<code>section</code>): <ul> <li>Ключи активации — <code>3</code></li> <li>Купоны и развлечения — <code>12</code></li> <li>Подарочные сертификаты — <code>13</code></li> </ul> </div> <div class=\"description_limit\"> Максимум 50 запросов в секунду </div>
3856
+
3857
+ :param keys_load_request: (required)
3858
+ :type keys_load_request: KeysLoadRequest
3859
+ :param _request_timeout: timeout setting for this request. If one
3860
+ number provided, it will be total request
3861
+ timeout. It can also be a pair (tuple) of
3862
+ (connection, read) timeouts.
3863
+ :type _request_timeout: int, tuple(int, int), optional
3864
+ :param _request_auth: set to override the auth_settings for an a single
3865
+ request; this effectively ignores the
3866
+ authentication in the spec for a single request.
3867
+ :type _request_auth: dict, optional
3868
+ :param _content_type: force content-type for the request.
3869
+ :type _content_type: str, Optional
3870
+ :param _headers: set to override the headers for a single
3871
+ request; this effectively ignores the headers
3872
+ in the spec for a single request.
3873
+ :type _headers: dict, optional
3874
+ :param _host_index: set to override the host_index for a single
3875
+ request; this effectively ignores the host_index
3876
+ in the spec for a single request.
3877
+ :type _host_index: int, optional
3878
+ :return: Returns the result object.
3879
+ """ # noqa: E501
3880
+
3881
+ _param = self._load_keys_serialize(
3882
+ keys_load_request=keys_load_request,
3883
+ _request_auth=_request_auth,
3884
+ _content_type=_content_type,
3885
+ _headers=_headers,
3886
+ _host_index=_host_index
3887
+ )
3888
+
3889
+ _response_types_map: Dict[str, Optional[str]] = {
3890
+ '200': None,
3891
+ '401': "ProblemDetails401",
3892
+ '403': "ProblemDetails403",
3893
+ '404': "ProblemDetails404",
3894
+ '500': "ProblemDetails500",
3895
+ }
3896
+ response_data = self.api_client.call_api(
3897
+ *_param,
3898
+ _request_timeout=_request_timeout
3899
+ )
3900
+ return response_data.response
3901
+
3902
+
3903
+ def _load_keys_serialize(
3904
+ self,
3905
+ keys_load_request,
3906
+ _request_auth,
3907
+ _content_type,
3908
+ _headers,
3909
+ _host_index,
3910
+ ) -> RequestSerialized:
3911
+
3912
+ _hosts = [
3913
+ 'https://devapi-digital.wildberries.ru'
3914
+ ]
3915
+ _host = _hosts[_host_index]
3916
+
3917
+ _collection_formats: Dict[str, str] = {
3918
+ }
3919
+
3920
+ _path_params: Dict[str, str] = {}
3921
+ _query_params: List[Tuple[str, str]] = []
3922
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3923
+ _form_params: List[Tuple[str, str]] = []
3924
+ _files: Dict[
3925
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3926
+ ] = {}
3927
+ _body_params: Optional[bytes] = None
3928
+
3929
+ # process the path parameters
3930
+ # process the query parameters
3931
+ # process the header parameters
3932
+ # process the form parameters
3933
+ # process the body parameter
3934
+ if keys_load_request is not None:
3935
+ _body_params = keys_load_request
3936
+
3937
+
3938
+ # set the HTTP header `Accept`
3939
+ if 'Accept' not in _header_params:
3940
+ _header_params['Accept'] = self.api_client.select_header_accept(
3941
+ [
3942
+ 'application/json'
3943
+ ]
3944
+ )
3945
+
3946
+ # set the HTTP header `Content-Type`
3947
+ if _content_type:
3948
+ _header_params['Content-Type'] = _content_type
3949
+ else:
3950
+ _default_content_type = (
3951
+ self.api_client.select_header_content_type(
3952
+ [
3953
+ 'application/json'
3954
+ ]
3955
+ )
3956
+ )
3957
+ if _default_content_type is not None:
3958
+ _header_params['Content-Type'] = _default_content_type
3959
+
3960
+ # authentication setting
3961
+ _auth_settings: List[str] = [
3962
+ 'ApiKeyAuth'
3963
+ ]
3964
+
3965
+ return self.api_client.param_serialize(
3966
+ method='POST',
3967
+ resource_path='/api/v1/keys-api/keys',
3968
+ path_params=_path_params,
3969
+ query_params=_query_params,
3970
+ header_params=_header_params,
3971
+ body=_body_params,
3972
+ post_params=_form_params,
3973
+ files=_files,
3974
+ auth_settings=_auth_settings,
3975
+ collection_formats=_collection_formats,
3976
+ _host=_host,
3977
+ _request_auth=_request_auth
3978
+ )
3979
+
3980
+
3981
+
3982
+
3983
+ @validate_call
3984
+ def offer_create(
3985
+ self,
3986
+ offer_create_request: OfferCreateRequest,
3987
+ _request_timeout: Union[
3988
+ None,
3989
+ Annotated[StrictFloat, Field(gt=0)],
3990
+ Tuple[
3991
+ Annotated[StrictFloat, Field(gt=0)],
3992
+ Annotated[StrictFloat, Field(gt=0)]
3993
+ ]
3994
+ ] = None,
3995
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3996
+ _content_type: Optional[StrictStr] = None,
3997
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3998
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3999
+ ) -> OfferResponse:
4000
+ """Создать новое предложение
4001
+
4002
+ Метод позволяет создать новое предложение.<br><br> **Обязательные поля** - `title` — Название предложения - `description` — Описание предложения - `tags` — Теги предложения - `section` — Категория предложения - `catalog_path` — Подкатегория предложения - `age_rating` — Возрастное ограничение предложения - `price` — Цена предложения **Добавить обложку**<br><br> Обложка для предложения загружается **отдельно после создания предложения**.<br> Вам необходимо воспользоваться методом [Добавить или обновить обложку предложения](/openapi/wbd#tag/Predlozheniya/operation/offersUploadThumbnail).<br><br> **Добавить дополнительные медиафайлы** 1. Загрузить медиафайлы с помощью метода [Загрузить медиафайл для предложения](/openapi/wbd#tag/Kontent/operation/contentGallery), метод возвращает список URI адресов загруженных медиафайлов. 2. Добавить URI медиафайлов в поле `gallery`. **Категория и подкатегория предложения**<br><br> Воспользуйтесь методом [Получить категории и их подкатегории](/openapi/wbd#tag/Predlozheniya/operation/GetCatalog) для получения ID подкатегории и правильного сопоставления с категорией.<br><br> **Предложение из категории \"Услуги\"**<br><br> `section` — `8`<br><br> Доступ к публикации контента этой категории предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_blank\">техническую поддержку</a>.<br><br> **Предложение c уникальными ключами**<br><br> Предложение c уникальными ключами относятся к категориям (`section`): - **Ключи активации** — `3` - **Купоны и развлечения** — `12` - **Подарочные сертификаты** — `13` Обязательные данные: - Ключи к предложению - Инструкция по активации ключа **Загрузка ключей**<br><br> Список ключей передается в параметре `keys` вашего запроса при создании предложения.<br> В дальнейшем вы можете добавлять ключи с помощью метода [Добавить ключи активации](/openapi/wbd#tag/Klyuchi-aktivacii/operation/LoadKeys).<br><br> **Добавление инструкции по активации ключа**<br><br> Инструкцию по активации ключа необходимо добавить в поле `meta` в формате **JSON** используя следующий пример.<br> Чтобы сделать текст более привлекательным и удобочитаемым, **используйте перенос строки** `\\n`.<br><br> **Пример:** ```json { \"meta\":{ \"key_instruction\": \"Инструкция по активации\\n1. Зайдите на сайт ...\\n2.Вставьте ключ в поле ...\" } } ``` **Предложение с контентом**<br><br> Предложение с контентом относится к категориям (`section`): - **Видеоконтент** — `1` - **Аудиоконтент** — `2` - **Электронные книги** — `4` - **Аудиокниги** — `5` - **Цифровые товары** — `6` Обязательные данные: - Контент для предложения **Добавление контента**<br><br> Если вы ещё не добавили контент в личный кабинет продавца, то вы можете это сделать по [инструкции](/openapi/wbd#tag/Kontent/Kak-dobavit-novyj-kontent).<br><br> Для добавления контента вам необходимо передать в параметре `content` список данных используя пример ниже.<br><br> **Пример:** ```json \"content\": [ { \"category_id\": 1, \"content\": 8942 }, { \"category_id\": 1, \"content\": 4211 } ] ``` где: - `category_id` — ID категории контента - `content` — ID контента Эту информацию вы можете получить с помощью метод [Получить список своего контента](/openapi/wbd#tag/Kontent/operation/contentAuthorGet). <div class=\"description_limit\"> Максимум 50 запросов в секунду </div>
4003
+
4004
+ :param offer_create_request: (required)
4005
+ :type offer_create_request: OfferCreateRequest
4006
+ :param _request_timeout: timeout setting for this request. If one
4007
+ number provided, it will be total request
4008
+ timeout. It can also be a pair (tuple) of
4009
+ (connection, read) timeouts.
4010
+ :type _request_timeout: int, tuple(int, int), optional
4011
+ :param _request_auth: set to override the auth_settings for an a single
4012
+ request; this effectively ignores the
4013
+ authentication in the spec for a single request.
4014
+ :type _request_auth: dict, optional
4015
+ :param _content_type: force content-type for the request.
4016
+ :type _content_type: str, Optional
4017
+ :param _headers: set to override the headers for a single
4018
+ request; this effectively ignores the headers
4019
+ in the spec for a single request.
4020
+ :type _headers: dict, optional
4021
+ :param _host_index: set to override the host_index for a single
4022
+ request; this effectively ignores the host_index
4023
+ in the spec for a single request.
4024
+ :type _host_index: int, optional
4025
+ :return: Returns the result object.
4026
+ """ # noqa: E501
4027
+
4028
+ _param = self._offer_create_serialize(
4029
+ offer_create_request=offer_create_request,
4030
+ _request_auth=_request_auth,
4031
+ _content_type=_content_type,
4032
+ _headers=_headers,
4033
+ _host_index=_host_index
4034
+ )
4035
+
4036
+ _response_types_map: Dict[str, Optional[str]] = {
4037
+ '200': "OfferResponse",
4038
+ '400': "ProblemDetails400",
4039
+ '401': "ProblemDetails401",
4040
+ '500': "ProblemDetails500",
4041
+ }
4042
+ response_data = self.api_client.call_api(
4043
+ *_param,
4044
+ _request_timeout=_request_timeout
4045
+ )
4046
+ response_data.read()
4047
+ return self.api_client.response_deserialize(
4048
+ response_data=response_data,
4049
+ response_types_map=_response_types_map,
4050
+ ).data
4051
+
4052
+
4053
+ @validate_call
4054
+ def offer_create_with_http_info(
4055
+ self,
4056
+ offer_create_request: OfferCreateRequest,
4057
+ _request_timeout: Union[
4058
+ None,
4059
+ Annotated[StrictFloat, Field(gt=0)],
4060
+ Tuple[
4061
+ Annotated[StrictFloat, Field(gt=0)],
4062
+ Annotated[StrictFloat, Field(gt=0)]
4063
+ ]
4064
+ ] = None,
4065
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4066
+ _content_type: Optional[StrictStr] = None,
4067
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4068
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
4069
+ ) -> ApiResponse[OfferResponse]:
4070
+ """Создать новое предложение
4071
+
4072
+ Метод позволяет создать новое предложение.<br><br> **Обязательные поля** - `title` — Название предложения - `description` — Описание предложения - `tags` — Теги предложения - `section` — Категория предложения - `catalog_path` — Подкатегория предложения - `age_rating` — Возрастное ограничение предложения - `price` — Цена предложения **Добавить обложку**<br><br> Обложка для предложения загружается **отдельно после создания предложения**.<br> Вам необходимо воспользоваться методом [Добавить или обновить обложку предложения](/openapi/wbd#tag/Predlozheniya/operation/offersUploadThumbnail).<br><br> **Добавить дополнительные медиафайлы** 1. Загрузить медиафайлы с помощью метода [Загрузить медиафайл для предложения](/openapi/wbd#tag/Kontent/operation/contentGallery), метод возвращает список URI адресов загруженных медиафайлов. 2. Добавить URI медиафайлов в поле `gallery`. **Категория и подкатегория предложения**<br><br> Воспользуйтесь методом [Получить категории и их подкатегории](/openapi/wbd#tag/Predlozheniya/operation/GetCatalog) для получения ID подкатегории и правильного сопоставления с категорией.<br><br> **Предложение из категории \"Услуги\"**<br><br> `section` — `8`<br><br> Доступ к публикации контента этой категории предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_blank\">техническую поддержку</a>.<br><br> **Предложение c уникальными ключами**<br><br> Предложение c уникальными ключами относятся к категориям (`section`): - **Ключи активации** — `3` - **Купоны и развлечения** — `12` - **Подарочные сертификаты** — `13` Обязательные данные: - Ключи к предложению - Инструкция по активации ключа **Загрузка ключей**<br><br> Список ключей передается в параметре `keys` вашего запроса при создании предложения.<br> В дальнейшем вы можете добавлять ключи с помощью метода [Добавить ключи активации](/openapi/wbd#tag/Klyuchi-aktivacii/operation/LoadKeys).<br><br> **Добавление инструкции по активации ключа**<br><br> Инструкцию по активации ключа необходимо добавить в поле `meta` в формате **JSON** используя следующий пример.<br> Чтобы сделать текст более привлекательным и удобочитаемым, **используйте перенос строки** `\\n`.<br><br> **Пример:** ```json { \"meta\":{ \"key_instruction\": \"Инструкция по активации\\n1. Зайдите на сайт ...\\n2.Вставьте ключ в поле ...\" } } ``` **Предложение с контентом**<br><br> Предложение с контентом относится к категориям (`section`): - **Видеоконтент** — `1` - **Аудиоконтент** — `2` - **Электронные книги** — `4` - **Аудиокниги** — `5` - **Цифровые товары** — `6` Обязательные данные: - Контент для предложения **Добавление контента**<br><br> Если вы ещё не добавили контент в личный кабинет продавца, то вы можете это сделать по [инструкции](/openapi/wbd#tag/Kontent/Kak-dobavit-novyj-kontent).<br><br> Для добавления контента вам необходимо передать в параметре `content` список данных используя пример ниже.<br><br> **Пример:** ```json \"content\": [ { \"category_id\": 1, \"content\": 8942 }, { \"category_id\": 1, \"content\": 4211 } ] ``` где: - `category_id` — ID категории контента - `content` — ID контента Эту информацию вы можете получить с помощью метод [Получить список своего контента](/openapi/wbd#tag/Kontent/operation/contentAuthorGet). <div class=\"description_limit\"> Максимум 50 запросов в секунду </div>
4073
+
4074
+ :param offer_create_request: (required)
4075
+ :type offer_create_request: OfferCreateRequest
4076
+ :param _request_timeout: timeout setting for this request. If one
4077
+ number provided, it will be total request
4078
+ timeout. It can also be a pair (tuple) of
4079
+ (connection, read) timeouts.
4080
+ :type _request_timeout: int, tuple(int, int), optional
4081
+ :param _request_auth: set to override the auth_settings for an a single
4082
+ request; this effectively ignores the
4083
+ authentication in the spec for a single request.
4084
+ :type _request_auth: dict, optional
4085
+ :param _content_type: force content-type for the request.
4086
+ :type _content_type: str, Optional
4087
+ :param _headers: set to override the headers for a single
4088
+ request; this effectively ignores the headers
4089
+ in the spec for a single request.
4090
+ :type _headers: dict, optional
4091
+ :param _host_index: set to override the host_index for a single
4092
+ request; this effectively ignores the host_index
4093
+ in the spec for a single request.
4094
+ :type _host_index: int, optional
4095
+ :return: Returns the result object.
4096
+ """ # noqa: E501
4097
+
4098
+ _param = self._offer_create_serialize(
4099
+ offer_create_request=offer_create_request,
4100
+ _request_auth=_request_auth,
4101
+ _content_type=_content_type,
4102
+ _headers=_headers,
4103
+ _host_index=_host_index
4104
+ )
4105
+
4106
+ _response_types_map: Dict[str, Optional[str]] = {
4107
+ '200': "OfferResponse",
4108
+ '400': "ProblemDetails400",
4109
+ '401': "ProblemDetails401",
4110
+ '500': "ProblemDetails500",
4111
+ }
4112
+ response_data = self.api_client.call_api(
4113
+ *_param,
4114
+ _request_timeout=_request_timeout
4115
+ )
4116
+ response_data.read()
4117
+ return self.api_client.response_deserialize(
4118
+ response_data=response_data,
4119
+ response_types_map=_response_types_map,
4120
+ )
4121
+
4122
+
4123
+ @validate_call
4124
+ def offer_create_without_preload_content(
4125
+ self,
4126
+ offer_create_request: OfferCreateRequest,
4127
+ _request_timeout: Union[
4128
+ None,
4129
+ Annotated[StrictFloat, Field(gt=0)],
4130
+ Tuple[
4131
+ Annotated[StrictFloat, Field(gt=0)],
4132
+ Annotated[StrictFloat, Field(gt=0)]
4133
+ ]
4134
+ ] = None,
4135
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4136
+ _content_type: Optional[StrictStr] = None,
4137
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4138
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
4139
+ ) -> RESTResponseType:
4140
+ """Создать новое предложение
4141
+
4142
+ Метод позволяет создать новое предложение.<br><br> **Обязательные поля** - `title` — Название предложения - `description` — Описание предложения - `tags` — Теги предложения - `section` — Категория предложения - `catalog_path` — Подкатегория предложения - `age_rating` — Возрастное ограничение предложения - `price` — Цена предложения **Добавить обложку**<br><br> Обложка для предложения загружается **отдельно после создания предложения**.<br> Вам необходимо воспользоваться методом [Добавить или обновить обложку предложения](/openapi/wbd#tag/Predlozheniya/operation/offersUploadThumbnail).<br><br> **Добавить дополнительные медиафайлы** 1. Загрузить медиафайлы с помощью метода [Загрузить медиафайл для предложения](/openapi/wbd#tag/Kontent/operation/contentGallery), метод возвращает список URI адресов загруженных медиафайлов. 2. Добавить URI медиафайлов в поле `gallery`. **Категория и подкатегория предложения**<br><br> Воспользуйтесь методом [Получить категории и их подкатегории](/openapi/wbd#tag/Predlozheniya/operation/GetCatalog) для получения ID подкатегории и правильного сопоставления с категорией.<br><br> **Предложение из категории \"Услуги\"**<br><br> `section` — `8`<br><br> Доступ к публикации контента этой категории предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_blank\">техническую поддержку</a>.<br><br> **Предложение c уникальными ключами**<br><br> Предложение c уникальными ключами относятся к категориям (`section`): - **Ключи активации** — `3` - **Купоны и развлечения** — `12` - **Подарочные сертификаты** — `13` Обязательные данные: - Ключи к предложению - Инструкция по активации ключа **Загрузка ключей**<br><br> Список ключей передается в параметре `keys` вашего запроса при создании предложения.<br> В дальнейшем вы можете добавлять ключи с помощью метода [Добавить ключи активации](/openapi/wbd#tag/Klyuchi-aktivacii/operation/LoadKeys).<br><br> **Добавление инструкции по активации ключа**<br><br> Инструкцию по активации ключа необходимо добавить в поле `meta` в формате **JSON** используя следующий пример.<br> Чтобы сделать текст более привлекательным и удобочитаемым, **используйте перенос строки** `\\n`.<br><br> **Пример:** ```json { \"meta\":{ \"key_instruction\": \"Инструкция по активации\\n1. Зайдите на сайт ...\\n2.Вставьте ключ в поле ...\" } } ``` **Предложение с контентом**<br><br> Предложение с контентом относится к категориям (`section`): - **Видеоконтент** — `1` - **Аудиоконтент** — `2` - **Электронные книги** — `4` - **Аудиокниги** — `5` - **Цифровые товары** — `6` Обязательные данные: - Контент для предложения **Добавление контента**<br><br> Если вы ещё не добавили контент в личный кабинет продавца, то вы можете это сделать по [инструкции](/openapi/wbd#tag/Kontent/Kak-dobavit-novyj-kontent).<br><br> Для добавления контента вам необходимо передать в параметре `content` список данных используя пример ниже.<br><br> **Пример:** ```json \"content\": [ { \"category_id\": 1, \"content\": 8942 }, { \"category_id\": 1, \"content\": 4211 } ] ``` где: - `category_id` — ID категории контента - `content` — ID контента Эту информацию вы можете получить с помощью метод [Получить список своего контента](/openapi/wbd#tag/Kontent/operation/contentAuthorGet). <div class=\"description_limit\"> Максимум 50 запросов в секунду </div>
4143
+
4144
+ :param offer_create_request: (required)
4145
+ :type offer_create_request: OfferCreateRequest
4146
+ :param _request_timeout: timeout setting for this request. If one
4147
+ number provided, it will be total request
4148
+ timeout. It can also be a pair (tuple) of
4149
+ (connection, read) timeouts.
4150
+ :type _request_timeout: int, tuple(int, int), optional
4151
+ :param _request_auth: set to override the auth_settings for an a single
4152
+ request; this effectively ignores the
4153
+ authentication in the spec for a single request.
4154
+ :type _request_auth: dict, optional
4155
+ :param _content_type: force content-type for the request.
4156
+ :type _content_type: str, Optional
4157
+ :param _headers: set to override the headers for a single
4158
+ request; this effectively ignores the headers
4159
+ in the spec for a single request.
4160
+ :type _headers: dict, optional
4161
+ :param _host_index: set to override the host_index for a single
4162
+ request; this effectively ignores the host_index
4163
+ in the spec for a single request.
4164
+ :type _host_index: int, optional
4165
+ :return: Returns the result object.
4166
+ """ # noqa: E501
4167
+
4168
+ _param = self._offer_create_serialize(
4169
+ offer_create_request=offer_create_request,
4170
+ _request_auth=_request_auth,
4171
+ _content_type=_content_type,
4172
+ _headers=_headers,
4173
+ _host_index=_host_index
4174
+ )
4175
+
4176
+ _response_types_map: Dict[str, Optional[str]] = {
4177
+ '200': "OfferResponse",
4178
+ '400': "ProblemDetails400",
4179
+ '401': "ProblemDetails401",
4180
+ '500': "ProblemDetails500",
4181
+ }
4182
+ response_data = self.api_client.call_api(
4183
+ *_param,
4184
+ _request_timeout=_request_timeout
4185
+ )
4186
+ return response_data.response
4187
+
4188
+
4189
+ def _offer_create_serialize(
4190
+ self,
4191
+ offer_create_request,
4192
+ _request_auth,
4193
+ _content_type,
4194
+ _headers,
4195
+ _host_index,
4196
+ ) -> RequestSerialized:
4197
+
4198
+ _hosts = [
4199
+ 'https://devapi-digital.wildberries.ru'
4200
+ ]
4201
+ _host = _hosts[_host_index]
4202
+
4203
+ _collection_formats: Dict[str, str] = {
4204
+ }
4205
+
4206
+ _path_params: Dict[str, str] = {}
4207
+ _query_params: List[Tuple[str, str]] = []
4208
+ _header_params: Dict[str, Optional[str]] = _headers or {}
4209
+ _form_params: List[Tuple[str, str]] = []
4210
+ _files: Dict[
4211
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
4212
+ ] = {}
4213
+ _body_params: Optional[bytes] = None
4214
+
4215
+ # process the path parameters
4216
+ # process the query parameters
4217
+ # process the header parameters
4218
+ # process the form parameters
4219
+ # process the body parameter
4220
+ if offer_create_request is not None:
4221
+ _body_params = offer_create_request
4222
+
4223
+
4224
+ # set the HTTP header `Accept`
4225
+ if 'Accept' not in _header_params:
4226
+ _header_params['Accept'] = self.api_client.select_header_accept(
4227
+ [
4228
+ 'application/json'
4229
+ ]
4230
+ )
4231
+
4232
+ # set the HTTP header `Content-Type`
4233
+ if _content_type:
4234
+ _header_params['Content-Type'] = _content_type
4235
+ else:
4236
+ _default_content_type = (
4237
+ self.api_client.select_header_content_type(
4238
+ [
4239
+ 'application/json'
4240
+ ]
4241
+ )
4242
+ )
4243
+ if _default_content_type is not None:
4244
+ _header_params['Content-Type'] = _default_content_type
4245
+
4246
+ # authentication setting
4247
+ _auth_settings: List[str] = [
4248
+ 'ApiKeyAuth'
4249
+ ]
4250
+
4251
+ return self.api_client.param_serialize(
4252
+ method='POST',
4253
+ resource_path='/api/v1/offers',
4254
+ path_params=_path_params,
4255
+ query_params=_query_params,
4256
+ header_params=_header_params,
4257
+ body=_body_params,
4258
+ post_params=_form_params,
4259
+ files=_files,
4260
+ auth_settings=_auth_settings,
4261
+ collection_formats=_collection_formats,
4262
+ _host=_host,
4263
+ _request_auth=_request_auth
4264
+ )
4265
+
4266
+
4267
+
4268
+
4269
+ @validate_call
4270
+ def offer_get(
4271
+ self,
4272
+ offer_id: Annotated[StrictInt, Field(description="ID предложения")],
4273
+ _request_timeout: Union[
4274
+ None,
4275
+ Annotated[StrictFloat, Field(gt=0)],
4276
+ Tuple[
4277
+ Annotated[StrictFloat, Field(gt=0)],
4278
+ Annotated[StrictFloat, Field(gt=0)]
4279
+ ]
4280
+ ] = None,
4281
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
4282
+ _content_type: Optional[StrictStr] = None,
4283
+ _headers: Optional[Dict[StrictStr, Any]] = None,
4284
+ _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
4285
+ ) -> OfferResponse:
4286
+ """Получить информацию о предложении
2826
4287
 
2827
- Метод позволяет получить дерево (структуру данных) с категориям и их подкатегориями.<br><br> **Иерархия структуры данных**<br><br> В нашей структуре есть три уровня иерархии: 1. **Корневой узел** — сущность **Каталог** 2. **Внешние узлы** представляют собой категории (`section`): - `1` — Видеоконтент - `2` — Аудиоконтент - `3` — Ключи активации - `4` — Электронные книги - `5` — Аудиокниги - `6` — Цифровые товары - `8` — Услуги - `12` — Купоны и развлечения - `13` — Подарочные сертификаты 3. **Листья дерева** являются подкатегориями (`catalog_path`): - `65` — Обучающие видео - `66` — Спорт - `67` — Мастер-класс - `68` — Йога - `69` — Медитации <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
4288
+ Метод позволяет получить информацию о конкретном предложении. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
2828
4289
 
4290
+ :param offer_id: ID предложения (required)
4291
+ :type offer_id: int
2829
4292
  :param _request_timeout: timeout setting for this request. If one
2830
4293
  number provided, it will be total request
2831
4294
  timeout. It can also be a pair (tuple) of
@@ -2848,7 +4311,8 @@ class DefaultApi:
2848
4311
  :return: Returns the result object.
2849
4312
  """ # noqa: E501
2850
4313
 
2851
- _param = self._get_catalog_serialize(
4314
+ _param = self._offer_get_serialize(
4315
+ offer_id=offer_id,
2852
4316
  _request_auth=_request_auth,
2853
4317
  _content_type=_content_type,
2854
4318
  _headers=_headers,
@@ -2856,8 +4320,10 @@ class DefaultApi:
2856
4320
  )
2857
4321
 
2858
4322
  _response_types_map: Dict[str, Optional[str]] = {
2859
- '200': "GetFullCatalogResponse",
4323
+ '200': "OfferResponse",
4324
+ '400': "ProblemDetails400",
2860
4325
  '401': "ProblemDetails401",
4326
+ '404': "ProblemDetails404",
2861
4327
  '500': "ProblemDetails500",
2862
4328
  }
2863
4329
  response_data = self.api_client.call_api(
@@ -2872,8 +4338,9 @@ class DefaultApi:
2872
4338
 
2873
4339
 
2874
4340
  @validate_call
2875
- def get_catalog_with_http_info(
4341
+ def offer_get_with_http_info(
2876
4342
  self,
4343
+ offer_id: Annotated[StrictInt, Field(description="ID предложения")],
2877
4344
  _request_timeout: Union[
2878
4345
  None,
2879
4346
  Annotated[StrictFloat, Field(gt=0)],
@@ -2886,11 +4353,13 @@ class DefaultApi:
2886
4353
  _content_type: Optional[StrictStr] = None,
2887
4354
  _headers: Optional[Dict[StrictStr, Any]] = None,
2888
4355
  _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
2889
- ) -> ApiResponse[GetFullCatalogResponse]:
2890
- """Получить категории и их подкатегории
4356
+ ) -> ApiResponse[OfferResponse]:
4357
+ """Получить информацию о предложении
2891
4358
 
2892
- Метод позволяет получить дерево (структуру данных) с категориям и их подкатегориями.<br><br> **Иерархия структуры данных**<br><br> В нашей структуре есть три уровня иерархии: 1. **Корневой узел** — сущность **Каталог** 2. **Внешние узлы** представляют собой категории (`section`): - `1` — Видеоконтент - `2` — Аудиоконтент - `3` — Ключи активации - `4` — Электронные книги - `5` — Аудиокниги - `6` — Цифровые товары - `8` — Услуги - `12` — Купоны и развлечения - `13` — Подарочные сертификаты 3. **Листья дерева** являются подкатегориями (`catalog_path`): - `65` — Обучающие видео - `66` — Спорт - `67` — Мастер-класс - `68` — Йога - `69` — Медитации <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
4359
+ Метод позволяет получить информацию о конкретном предложении. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
2893
4360
 
4361
+ :param offer_id: ID предложения (required)
4362
+ :type offer_id: int
2894
4363
  :param _request_timeout: timeout setting for this request. If one
2895
4364
  number provided, it will be total request
2896
4365
  timeout. It can also be a pair (tuple) of
@@ -2913,7 +4382,8 @@ class DefaultApi:
2913
4382
  :return: Returns the result object.
2914
4383
  """ # noqa: E501
2915
4384
 
2916
- _param = self._get_catalog_serialize(
4385
+ _param = self._offer_get_serialize(
4386
+ offer_id=offer_id,
2917
4387
  _request_auth=_request_auth,
2918
4388
  _content_type=_content_type,
2919
4389
  _headers=_headers,
@@ -2921,8 +4391,10 @@ class DefaultApi:
2921
4391
  )
2922
4392
 
2923
4393
  _response_types_map: Dict[str, Optional[str]] = {
2924
- '200': "GetFullCatalogResponse",
4394
+ '200': "OfferResponse",
4395
+ '400': "ProblemDetails400",
2925
4396
  '401': "ProblemDetails401",
4397
+ '404': "ProblemDetails404",
2926
4398
  '500': "ProblemDetails500",
2927
4399
  }
2928
4400
  response_data = self.api_client.call_api(
@@ -2937,8 +4409,9 @@ class DefaultApi:
2937
4409
 
2938
4410
 
2939
4411
  @validate_call
2940
- def get_catalog_without_preload_content(
4412
+ def offer_get_without_preload_content(
2941
4413
  self,
4414
+ offer_id: Annotated[StrictInt, Field(description="ID предложения")],
2942
4415
  _request_timeout: Union[
2943
4416
  None,
2944
4417
  Annotated[StrictFloat, Field(gt=0)],
@@ -2952,10 +4425,12 @@ class DefaultApi:
2952
4425
  _headers: Optional[Dict[StrictStr, Any]] = None,
2953
4426
  _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
2954
4427
  ) -> RESTResponseType:
2955
- """Получить категории и их подкатегории
4428
+ """Получить информацию о предложении
2956
4429
 
2957
- Метод позволяет получить дерево (структуру данных) с категориям и их подкатегориями.<br><br> **Иерархия структуры данных**<br><br> В нашей структуре есть три уровня иерархии: 1. **Корневой узел** — сущность **Каталог** 2. **Внешние узлы** представляют собой категории (`section`): - `1` — Видеоконтент - `2` — Аудиоконтент - `3` — Ключи активации - `4` — Электронные книги - `5` — Аудиокниги - `6` — Цифровые товары - `8` — Услуги - `12` — Купоны и развлечения - `13` — Подарочные сертификаты 3. **Листья дерева** являются подкатегориями (`catalog_path`): - `65` — Обучающие видео - `66` — Спорт - `67` — Мастер-класс - `68` — Йога - `69` — Медитации <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
4430
+ Метод позволяет получить информацию о конкретном предложении. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
2958
4431
 
4432
+ :param offer_id: ID предложения (required)
4433
+ :type offer_id: int
2959
4434
  :param _request_timeout: timeout setting for this request. If one
2960
4435
  number provided, it will be total request
2961
4436
  timeout. It can also be a pair (tuple) of
@@ -2978,7 +4453,8 @@ class DefaultApi:
2978
4453
  :return: Returns the result object.
2979
4454
  """ # noqa: E501
2980
4455
 
2981
- _param = self._get_catalog_serialize(
4456
+ _param = self._offer_get_serialize(
4457
+ offer_id=offer_id,
2982
4458
  _request_auth=_request_auth,
2983
4459
  _content_type=_content_type,
2984
4460
  _headers=_headers,
@@ -2986,8 +4462,10 @@ class DefaultApi:
2986
4462
  )
2987
4463
 
2988
4464
  _response_types_map: Dict[str, Optional[str]] = {
2989
- '200': "GetFullCatalogResponse",
4465
+ '200': "OfferResponse",
4466
+ '400': "ProblemDetails400",
2990
4467
  '401': "ProblemDetails401",
4468
+ '404': "ProblemDetails404",
2991
4469
  '500': "ProblemDetails500",
2992
4470
  }
2993
4471
  response_data = self.api_client.call_api(
@@ -2997,8 +4475,9 @@ class DefaultApi:
2997
4475
  return response_data.response
2998
4476
 
2999
4477
 
3000
- def _get_catalog_serialize(
4478
+ def _offer_get_serialize(
3001
4479
  self,
4480
+ offer_id,
3002
4481
  _request_auth,
3003
4482
  _content_type,
3004
4483
  _headers,
@@ -3023,6 +4502,8 @@ class DefaultApi:
3023
4502
  _body_params: Optional[bytes] = None
3024
4503
 
3025
4504
  # process the path parameters
4505
+ if offer_id is not None:
4506
+ _path_params['offer_id'] = offer_id
3026
4507
  # process the query parameters
3027
4508
  # process the header parameters
3028
4509
  # process the form parameters
@@ -3045,7 +4526,7 @@ class DefaultApi:
3045
4526
 
3046
4527
  return self.api_client.param_serialize(
3047
4528
  method='GET',
3048
- resource_path='/api/v1/catalog',
4529
+ resource_path='/api/v1/offers/{offer_id}',
3049
4530
  path_params=_path_params,
3050
4531
  query_params=_query_params,
3051
4532
  header_params=_header_params,
@@ -3062,9 +4543,9 @@ class DefaultApi:
3062
4543
 
3063
4544
 
3064
4545
  @validate_call
3065
- def offer_create(
4546
+ def offer_keys_count_get(
3066
4547
  self,
3067
- offer_create_request: OfferCreateRequest,
4548
+ offer_id: Annotated[StrictInt, Field(description="ID предложения")],
3068
4549
  _request_timeout: Union[
3069
4550
  None,
3070
4551
  Annotated[StrictFloat, Field(gt=0)],
@@ -3077,13 +4558,13 @@ class DefaultApi:
3077
4558
  _content_type: Optional[StrictStr] = None,
3078
4559
  _headers: Optional[Dict[StrictStr, Any]] = None,
3079
4560
  _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3080
- ) -> OfferResponse:
3081
- """Создать новое предложение
4561
+ ) -> KeysCountResponse:
4562
+ """Получить количество ключей для предложения
3082
4563
 
3083
- Метод позволяет создать новое предложение.<br><br> **Обязательные поля** - `title` — Название предложения - `description` — Описание предложения - `tags` — Теги предложения - `section` — Категория предложения - `catalog_path` — Подкатегория предложения - `age_rating` — Возрастное ограничение предложения - `price` — Цена предложения **Добавить обложку**<br><br> Обложка для предложения загружается **отдельно после создания предложения**.<br> Вам необходимо воспользоваться методом [Добавить или обновить обложку предложения](/openapi/wbd#tag/Predlozheniya/operation/offersUploadThumbnail).<br><br> **Добавить дополнительные медиафайлы** 1. Загрузить медиафайлы с помощью метода [Загрузить медиафайл для предложения](/openapi/wbd#tag/Kontent/operation/contentGallery), метод возвращает список URI адресов загруженных медиафайлов. 2. Добавить URI медиафайлов в поле `gallery`. **Категория и подкатегория предложения**<br><br> Воспользуйтесь методом [Получить категории и их подкатегории](/openapi/wbd#tag/Predlozheniya/operation/GetCatalog) для получения ID подкатегории и правильного сопоставления с категорией.<br><br> **Предложение из категории \"Услуги\"**<br><br> `section` — `8`<br><br> Доступ к публикации контента этой категории предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_blank\">техническую поддержку</a>.<br><br> **Предложение c уникальными ключами**<br><br> Предложение c уникальными ключами относятся к категориям (`section`): - **Ключи активации** — `3` - **Купоны и развлечения** — `12` - **Подарочные сертификаты** — `13` Обязательные данные: - Ключи к предложению - Инструкция по активации ключа **Загрузка ключей**<br><br> Список ключей передается в параметре `keys` вашего запроса при создании предложения.<br> В дальнейшем вы можете добавлять ключи с помощью метода [Добавить ключи активации](/openapi/wbd#tag/Klyuchi-aktivacii/operation/LoadKeys).<br><br> **Добавление инструкции по активации ключа**<br><br> Инструкцию по активации ключа необходимо добавить в поле `meta` в формате **JSON** используя следующий пример.<br> Чтобы сделать текст более привлекательным и удобочитаемым, **используйте перенос строки** `\\n`.<br><br> **Пример:** ```json { \"meta\":{ \"key_instruction\": \"Инструкция по активации\\n1. Зайдите на сайт ...\\n2.Вставьте ключ в поле ...\" } } ``` **Предложение с контентом**<br><br> Предложение с контентом относится к категориям (`section`): - **Видеоконтент** — `1` - **Аудиоконтент** — `2` - **Электронные книги** — `4` - **Аудиокниги** — `5` - **Цифровые товары** — `6` Обязательные данные: - Контент для предложения **Добавление контента**<br><br> Если вы ещё не добавили контент в личный кабинет продавца, то вы можете это сделать по [инструкции](/openapi/wbd#tag/Kontent/Kak-dobavit-novyj-kontent).<br><br> Для добавления контента вам необходимо передать в параметре `content` список данных используя пример ниже.<br><br> **Пример:** ```json \"content\": [ { \"category_id\": 1, \"content\": 8942 }, { \"category_id\": 1, \"content\": 4211 } ] ``` где: - `category_id` — ID категории контента - `content` — ID контента Эту информацию вы можете получить с помощью метод [Получить список своего контента](/openapi/wbd#tag/Kontent/operation/contentAuthorGet). <div class=\"description_limit\"> Максимум 50 запросов в секунду </div>
4564
+ Метод позволяет получить информацию о количестве ключей у конкретного предложения. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3084
4565
 
3085
- :param offer_create_request: (required)
3086
- :type offer_create_request: OfferCreateRequest
4566
+ :param offer_id: ID предложения (required)
4567
+ :type offer_id: int
3087
4568
  :param _request_timeout: timeout setting for this request. If one
3088
4569
  number provided, it will be total request
3089
4570
  timeout. It can also be a pair (tuple) of
@@ -3106,8 +4587,8 @@ class DefaultApi:
3106
4587
  :return: Returns the result object.
3107
4588
  """ # noqa: E501
3108
4589
 
3109
- _param = self._offer_create_serialize(
3110
- offer_create_request=offer_create_request,
4590
+ _param = self._offer_keys_count_get_serialize(
4591
+ offer_id=offer_id,
3111
4592
  _request_auth=_request_auth,
3112
4593
  _content_type=_content_type,
3113
4594
  _headers=_headers,
@@ -3115,9 +4596,9 @@ class DefaultApi:
3115
4596
  )
3116
4597
 
3117
4598
  _response_types_map: Dict[str, Optional[str]] = {
3118
- '200': "OfferResponse",
3119
- '400': "ProblemDetails400",
4599
+ '200': "KeysCountResponse",
3120
4600
  '401': "ProblemDetails401",
4601
+ '404': "ProblemDetails404",
3121
4602
  '500': "ProblemDetails500",
3122
4603
  }
3123
4604
  response_data = self.api_client.call_api(
@@ -3132,9 +4613,9 @@ class DefaultApi:
3132
4613
 
3133
4614
 
3134
4615
  @validate_call
3135
- def offer_create_with_http_info(
4616
+ def offer_keys_count_get_with_http_info(
3136
4617
  self,
3137
- offer_create_request: OfferCreateRequest,
4618
+ offer_id: Annotated[StrictInt, Field(description="ID предложения")],
3138
4619
  _request_timeout: Union[
3139
4620
  None,
3140
4621
  Annotated[StrictFloat, Field(gt=0)],
@@ -3147,13 +4628,13 @@ class DefaultApi:
3147
4628
  _content_type: Optional[StrictStr] = None,
3148
4629
  _headers: Optional[Dict[StrictStr, Any]] = None,
3149
4630
  _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3150
- ) -> ApiResponse[OfferResponse]:
3151
- """Создать новое предложение
4631
+ ) -> ApiResponse[KeysCountResponse]:
4632
+ """Получить количество ключей для предложения
3152
4633
 
3153
- Метод позволяет создать новое предложение.<br><br> **Обязательные поля** - `title` — Название предложения - `description` — Описание предложения - `tags` — Теги предложения - `section` — Категория предложения - `catalog_path` — Подкатегория предложения - `age_rating` — Возрастное ограничение предложения - `price` — Цена предложения **Добавить обложку**<br><br> Обложка для предложения загружается **отдельно после создания предложения**.<br> Вам необходимо воспользоваться методом [Добавить или обновить обложку предложения](/openapi/wbd#tag/Predlozheniya/operation/offersUploadThumbnail).<br><br> **Добавить дополнительные медиафайлы** 1. Загрузить медиафайлы с помощью метода [Загрузить медиафайл для предложения](/openapi/wbd#tag/Kontent/operation/contentGallery), метод возвращает список URI адресов загруженных медиафайлов. 2. Добавить URI медиафайлов в поле `gallery`. **Категория и подкатегория предложения**<br><br> Воспользуйтесь методом [Получить категории и их подкатегории](/openapi/wbd#tag/Predlozheniya/operation/GetCatalog) для получения ID подкатегории и правильного сопоставления с категорией.<br><br> **Предложение из категории \"Услуги\"**<br><br> `section` — `8`<br><br> Доступ к публикации контента этой категории предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_blank\">техническую поддержку</a>.<br><br> **Предложение c уникальными ключами**<br><br> Предложение c уникальными ключами относятся к категориям (`section`): - **Ключи активации** — `3` - **Купоны и развлечения** — `12` - **Подарочные сертификаты** — `13` Обязательные данные: - Ключи к предложению - Инструкция по активации ключа **Загрузка ключей**<br><br> Список ключей передается в параметре `keys` вашего запроса при создании предложения.<br> В дальнейшем вы можете добавлять ключи с помощью метода [Добавить ключи активации](/openapi/wbd#tag/Klyuchi-aktivacii/operation/LoadKeys).<br><br> **Добавление инструкции по активации ключа**<br><br> Инструкцию по активации ключа необходимо добавить в поле `meta` в формате **JSON** используя следующий пример.<br> Чтобы сделать текст более привлекательным и удобочитаемым, **используйте перенос строки** `\\n`.<br><br> **Пример:** ```json { \"meta\":{ \"key_instruction\": \"Инструкция по активации\\n1. Зайдите на сайт ...\\n2.Вставьте ключ в поле ...\" } } ``` **Предложение с контентом**<br><br> Предложение с контентом относится к категориям (`section`): - **Видеоконтент** — `1` - **Аудиоконтент** — `2` - **Электронные книги** — `4` - **Аудиокниги** — `5` - **Цифровые товары** — `6` Обязательные данные: - Контент для предложения **Добавление контента**<br><br> Если вы ещё не добавили контент в личный кабинет продавца, то вы можете это сделать по [инструкции](/openapi/wbd#tag/Kontent/Kak-dobavit-novyj-kontent).<br><br> Для добавления контента вам необходимо передать в параметре `content` список данных используя пример ниже.<br><br> **Пример:** ```json \"content\": [ { \"category_id\": 1, \"content\": 8942 }, { \"category_id\": 1, \"content\": 4211 } ] ``` где: - `category_id` — ID категории контента - `content` — ID контента Эту информацию вы можете получить с помощью метод [Получить список своего контента](/openapi/wbd#tag/Kontent/operation/contentAuthorGet). <div class=\"description_limit\"> Максимум 50 запросов в секунду </div>
4634
+ Метод позволяет получить информацию о количестве ключей у конкретного предложения. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3154
4635
 
3155
- :param offer_create_request: (required)
3156
- :type offer_create_request: OfferCreateRequest
4636
+ :param offer_id: ID предложения (required)
4637
+ :type offer_id: int
3157
4638
  :param _request_timeout: timeout setting for this request. If one
3158
4639
  number provided, it will be total request
3159
4640
  timeout. It can also be a pair (tuple) of
@@ -3176,8 +4657,8 @@ class DefaultApi:
3176
4657
  :return: Returns the result object.
3177
4658
  """ # noqa: E501
3178
4659
 
3179
- _param = self._offer_create_serialize(
3180
- offer_create_request=offer_create_request,
4660
+ _param = self._offer_keys_count_get_serialize(
4661
+ offer_id=offer_id,
3181
4662
  _request_auth=_request_auth,
3182
4663
  _content_type=_content_type,
3183
4664
  _headers=_headers,
@@ -3185,9 +4666,9 @@ class DefaultApi:
3185
4666
  )
3186
4667
 
3187
4668
  _response_types_map: Dict[str, Optional[str]] = {
3188
- '200': "OfferResponse",
3189
- '400': "ProblemDetails400",
4669
+ '200': "KeysCountResponse",
3190
4670
  '401': "ProblemDetails401",
4671
+ '404': "ProblemDetails404",
3191
4672
  '500': "ProblemDetails500",
3192
4673
  }
3193
4674
  response_data = self.api_client.call_api(
@@ -3202,9 +4683,9 @@ class DefaultApi:
3202
4683
 
3203
4684
 
3204
4685
  @validate_call
3205
- def offer_create_without_preload_content(
4686
+ def offer_keys_count_get_without_preload_content(
3206
4687
  self,
3207
- offer_create_request: OfferCreateRequest,
4688
+ offer_id: Annotated[StrictInt, Field(description="ID предложения")],
3208
4689
  _request_timeout: Union[
3209
4690
  None,
3210
4691
  Annotated[StrictFloat, Field(gt=0)],
@@ -3218,12 +4699,12 @@ class DefaultApi:
3218
4699
  _headers: Optional[Dict[StrictStr, Any]] = None,
3219
4700
  _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3220
4701
  ) -> RESTResponseType:
3221
- """Создать новое предложение
4702
+ """Получить количество ключей для предложения
3222
4703
 
3223
- Метод позволяет создать новое предложение.<br><br> **Обязательные поля** - `title` — Название предложения - `description` — Описание предложения - `tags` — Теги предложения - `section` — Категория предложения - `catalog_path` — Подкатегория предложения - `age_rating` — Возрастное ограничение предложения - `price` — Цена предложения **Добавить обложку**<br><br> Обложка для предложения загружается **отдельно после создания предложения**.<br> Вам необходимо воспользоваться методом [Добавить или обновить обложку предложения](/openapi/wbd#tag/Predlozheniya/operation/offersUploadThumbnail).<br><br> **Добавить дополнительные медиафайлы** 1. Загрузить медиафайлы с помощью метода [Загрузить медиафайл для предложения](/openapi/wbd#tag/Kontent/operation/contentGallery), метод возвращает список URI адресов загруженных медиафайлов. 2. Добавить URI медиафайлов в поле `gallery`. **Категория и подкатегория предложения**<br><br> Воспользуйтесь методом [Получить категории и их подкатегории](/openapi/wbd#tag/Predlozheniya/operation/GetCatalog) для получения ID подкатегории и правильного сопоставления с категорией.<br><br> **Предложение из категории \"Услуги\"**<br><br> `section` — `8`<br><br> Доступ к публикации контента этой категории предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_blank\">техническую поддержку</a>.<br><br> **Предложение c уникальными ключами**<br><br> Предложение c уникальными ключами относятся к категориям (`section`): - **Ключи активации** — `3` - **Купоны и развлечения** — `12` - **Подарочные сертификаты** — `13` Обязательные данные: - Ключи к предложению - Инструкция по активации ключа **Загрузка ключей**<br><br> Список ключей передается в параметре `keys` вашего запроса при создании предложения.<br> В дальнейшем вы можете добавлять ключи с помощью метода [Добавить ключи активации](/openapi/wbd#tag/Klyuchi-aktivacii/operation/LoadKeys).<br><br> **Добавление инструкции по активации ключа**<br><br> Инструкцию по активации ключа необходимо добавить в поле `meta` в формате **JSON** используя следующий пример.<br> Чтобы сделать текст более привлекательным и удобочитаемым, **используйте перенос строки** `\\n`.<br><br> **Пример:** ```json { \"meta\":{ \"key_instruction\": \"Инструкция по активации\\n1. Зайдите на сайт ...\\n2.Вставьте ключ в поле ...\" } } ``` **Предложение с контентом**<br><br> Предложение с контентом относится к категориям (`section`): - **Видеоконтент** — `1` - **Аудиоконтент** — `2` - **Электронные книги** — `4` - **Аудиокниги** — `5` - **Цифровые товары** — `6` Обязательные данные: - Контент для предложения **Добавление контента**<br><br> Если вы ещё не добавили контент в личный кабинет продавца, то вы можете это сделать по [инструкции](/openapi/wbd#tag/Kontent/Kak-dobavit-novyj-kontent).<br><br> Для добавления контента вам необходимо передать в параметре `content` список данных используя пример ниже.<br><br> **Пример:** ```json \"content\": [ { \"category_id\": 1, \"content\": 8942 }, { \"category_id\": 1, \"content\": 4211 } ] ``` где: - `category_id` — ID категории контента - `content` — ID контента Эту информацию вы можете получить с помощью метод [Получить список своего контента](/openapi/wbd#tag/Kontent/operation/contentAuthorGet). <div class=\"description_limit\"> Максимум 50 запросов в секунду </div>
4704
+ Метод позволяет получить информацию о количестве ключей у конкретного предложения. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3224
4705
 
3225
- :param offer_create_request: (required)
3226
- :type offer_create_request: OfferCreateRequest
4706
+ :param offer_id: ID предложения (required)
4707
+ :type offer_id: int
3227
4708
  :param _request_timeout: timeout setting for this request. If one
3228
4709
  number provided, it will be total request
3229
4710
  timeout. It can also be a pair (tuple) of
@@ -3246,8 +4727,8 @@ class DefaultApi:
3246
4727
  :return: Returns the result object.
3247
4728
  """ # noqa: E501
3248
4729
 
3249
- _param = self._offer_create_serialize(
3250
- offer_create_request=offer_create_request,
4730
+ _param = self._offer_keys_count_get_serialize(
4731
+ offer_id=offer_id,
3251
4732
  _request_auth=_request_auth,
3252
4733
  _content_type=_content_type,
3253
4734
  _headers=_headers,
@@ -3255,9 +4736,9 @@ class DefaultApi:
3255
4736
  )
3256
4737
 
3257
4738
  _response_types_map: Dict[str, Optional[str]] = {
3258
- '200': "OfferResponse",
3259
- '400': "ProblemDetails400",
4739
+ '200': "KeysCountResponse",
3260
4740
  '401': "ProblemDetails401",
4741
+ '404': "ProblemDetails404",
3261
4742
  '500': "ProblemDetails500",
3262
4743
  }
3263
4744
  response_data = self.api_client.call_api(
@@ -3267,9 +4748,9 @@ class DefaultApi:
3267
4748
  return response_data.response
3268
4749
 
3269
4750
 
3270
- def _offer_create_serialize(
4751
+ def _offer_keys_count_get_serialize(
3271
4752
  self,
3272
- offer_create_request,
4753
+ offer_id,
3273
4754
  _request_auth,
3274
4755
  _content_type,
3275
4756
  _headers,
@@ -3294,12 +4775,12 @@ class DefaultApi:
3294
4775
  _body_params: Optional[bytes] = None
3295
4776
 
3296
4777
  # process the path parameters
4778
+ if offer_id is not None:
4779
+ _path_params['offer_id'] = offer_id
3297
4780
  # process the query parameters
3298
4781
  # process the header parameters
3299
4782
  # process the form parameters
3300
4783
  # process the body parameter
3301
- if offer_create_request is not None:
3302
- _body_params = offer_create_request
3303
4784
 
3304
4785
 
3305
4786
  # set the HTTP header `Accept`
@@ -3310,19 +4791,6 @@ class DefaultApi:
3310
4791
  ]
3311
4792
  )
3312
4793
 
3313
- # set the HTTP header `Content-Type`
3314
- if _content_type:
3315
- _header_params['Content-Type'] = _content_type
3316
- else:
3317
- _default_content_type = (
3318
- self.api_client.select_header_content_type(
3319
- [
3320
- 'application/json'
3321
- ]
3322
- )
3323
- )
3324
- if _default_content_type is not None:
3325
- _header_params['Content-Type'] = _default_content_type
3326
4794
 
3327
4795
  # authentication setting
3328
4796
  _auth_settings: List[str] = [
@@ -3330,8 +4798,8 @@ class DefaultApi:
3330
4798
  ]
3331
4799
 
3332
4800
  return self.api_client.param_serialize(
3333
- method='POST',
3334
- resource_path='/api/v1/offers',
4801
+ method='GET',
4802
+ resource_path='/api/v1/offer/keys/{offer_id}',
3335
4803
  path_params=_path_params,
3336
4804
  query_params=_query_params,
3337
4805
  header_params=_header_params,
@@ -3348,9 +4816,15 @@ class DefaultApi:
3348
4816
 
3349
4817
 
3350
4818
  @validate_call
3351
- def offer_get(
4819
+ def offer_keys_get(
3352
4820
  self,
3353
4821
  offer_id: Annotated[StrictInt, Field(description="ID предложения")],
4822
+ take: Annotated[Optional[StrictInt], Field(description="Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе")] = None,
4823
+ skip: Annotated[Optional[StrictInt], Field(description="Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации")] = None,
4824
+ deleted: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать удалённые ключи")] = None,
4825
+ sold: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать проданные ключи")] = None,
4826
+ reserved: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать зарезервированные ключи")] = None,
4827
+ expired: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать ключи с истекшим сроком действия")] = None,
3354
4828
  _request_timeout: Union[
3355
4829
  None,
3356
4830
  Annotated[StrictFloat, Field(gt=0)],
@@ -3363,13 +4837,25 @@ class DefaultApi:
3363
4837
  _content_type: Optional[StrictStr] = None,
3364
4838
  _headers: Optional[Dict[StrictStr, Any]] = None,
3365
4839
  _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3366
- ) -> OfferResponse:
3367
- """Получить информацию о предложении
4840
+ ) -> KeysResponseList:
4841
+ """Получить список ключей
3368
4842
 
3369
- Метод позволяет получить информацию о конкретном предложении. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
4843
+ Метод позволяет получить список загруженных вами ключей для конкретного предложения. <div class=\"description_important\"> Доступ к методу предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_black\">техническую поддержку</a>. </div> <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3370
4844
 
3371
4845
  :param offer_id: ID предложения (required)
3372
4846
  :type offer_id: int
4847
+ :param take: Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе
4848
+ :type take: int
4849
+ :param skip: Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации
4850
+ :type skip: int
4851
+ :param deleted: Указывает, будут ли в ответе присутствовать удалённые ключи
4852
+ :type deleted: bool
4853
+ :param sold: Указывает, будут ли в ответе присутствовать проданные ключи
4854
+ :type sold: bool
4855
+ :param reserved: Указывает, будут ли в ответе присутствовать зарезервированные ключи
4856
+ :type reserved: bool
4857
+ :param expired: Указывает, будут ли в ответе присутствовать ключи с истекшим сроком действия
4858
+ :type expired: bool
3373
4859
  :param _request_timeout: timeout setting for this request. If one
3374
4860
  number provided, it will be total request
3375
4861
  timeout. It can also be a pair (tuple) of
@@ -3392,8 +4878,14 @@ class DefaultApi:
3392
4878
  :return: Returns the result object.
3393
4879
  """ # noqa: E501
3394
4880
 
3395
- _param = self._offer_get_serialize(
4881
+ _param = self._offer_keys_get_serialize(
3396
4882
  offer_id=offer_id,
4883
+ take=take,
4884
+ skip=skip,
4885
+ deleted=deleted,
4886
+ sold=sold,
4887
+ reserved=reserved,
4888
+ expired=expired,
3397
4889
  _request_auth=_request_auth,
3398
4890
  _content_type=_content_type,
3399
4891
  _headers=_headers,
@@ -3401,9 +4893,10 @@ class DefaultApi:
3401
4893
  )
3402
4894
 
3403
4895
  _response_types_map: Dict[str, Optional[str]] = {
3404
- '200': "OfferResponse",
4896
+ '200': "KeysResponseList",
3405
4897
  '400': "ProblemDetails400",
3406
4898
  '401': "ProblemDetails401",
4899
+ '403': "ProblemDetails403",
3407
4900
  '404': "ProblemDetails404",
3408
4901
  '500': "ProblemDetails500",
3409
4902
  }
@@ -3419,9 +4912,15 @@ class DefaultApi:
3419
4912
 
3420
4913
 
3421
4914
  @validate_call
3422
- def offer_get_with_http_info(
4915
+ def offer_keys_get_with_http_info(
3423
4916
  self,
3424
4917
  offer_id: Annotated[StrictInt, Field(description="ID предложения")],
4918
+ take: Annotated[Optional[StrictInt], Field(description="Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе")] = None,
4919
+ skip: Annotated[Optional[StrictInt], Field(description="Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации")] = None,
4920
+ deleted: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать удалённые ключи")] = None,
4921
+ sold: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать проданные ключи")] = None,
4922
+ reserved: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать зарезервированные ключи")] = None,
4923
+ expired: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать ключи с истекшим сроком действия")] = None,
3425
4924
  _request_timeout: Union[
3426
4925
  None,
3427
4926
  Annotated[StrictFloat, Field(gt=0)],
@@ -3434,13 +4933,25 @@ class DefaultApi:
3434
4933
  _content_type: Optional[StrictStr] = None,
3435
4934
  _headers: Optional[Dict[StrictStr, Any]] = None,
3436
4935
  _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3437
- ) -> ApiResponse[OfferResponse]:
3438
- """Получить информацию о предложении
4936
+ ) -> ApiResponse[KeysResponseList]:
4937
+ """Получить список ключей
3439
4938
 
3440
- Метод позволяет получить информацию о конкретном предложении. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
4939
+ Метод позволяет получить список загруженных вами ключей для конкретного предложения. <div class=\"description_important\"> Доступ к методу предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_black\">техническую поддержку</a>. </div> <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3441
4940
 
3442
4941
  :param offer_id: ID предложения (required)
3443
4942
  :type offer_id: int
4943
+ :param take: Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе
4944
+ :type take: int
4945
+ :param skip: Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации
4946
+ :type skip: int
4947
+ :param deleted: Указывает, будут ли в ответе присутствовать удалённые ключи
4948
+ :type deleted: bool
4949
+ :param sold: Указывает, будут ли в ответе присутствовать проданные ключи
4950
+ :type sold: bool
4951
+ :param reserved: Указывает, будут ли в ответе присутствовать зарезервированные ключи
4952
+ :type reserved: bool
4953
+ :param expired: Указывает, будут ли в ответе присутствовать ключи с истекшим сроком действия
4954
+ :type expired: bool
3444
4955
  :param _request_timeout: timeout setting for this request. If one
3445
4956
  number provided, it will be total request
3446
4957
  timeout. It can also be a pair (tuple) of
@@ -3463,8 +4974,14 @@ class DefaultApi:
3463
4974
  :return: Returns the result object.
3464
4975
  """ # noqa: E501
3465
4976
 
3466
- _param = self._offer_get_serialize(
4977
+ _param = self._offer_keys_get_serialize(
3467
4978
  offer_id=offer_id,
4979
+ take=take,
4980
+ skip=skip,
4981
+ deleted=deleted,
4982
+ sold=sold,
4983
+ reserved=reserved,
4984
+ expired=expired,
3468
4985
  _request_auth=_request_auth,
3469
4986
  _content_type=_content_type,
3470
4987
  _headers=_headers,
@@ -3472,9 +4989,10 @@ class DefaultApi:
3472
4989
  )
3473
4990
 
3474
4991
  _response_types_map: Dict[str, Optional[str]] = {
3475
- '200': "OfferResponse",
4992
+ '200': "KeysResponseList",
3476
4993
  '400': "ProblemDetails400",
3477
4994
  '401': "ProblemDetails401",
4995
+ '403': "ProblemDetails403",
3478
4996
  '404': "ProblemDetails404",
3479
4997
  '500': "ProblemDetails500",
3480
4998
  }
@@ -3490,9 +5008,15 @@ class DefaultApi:
3490
5008
 
3491
5009
 
3492
5010
  @validate_call
3493
- def offer_get_without_preload_content(
5011
+ def offer_keys_get_without_preload_content(
3494
5012
  self,
3495
5013
  offer_id: Annotated[StrictInt, Field(description="ID предложения")],
5014
+ take: Annotated[Optional[StrictInt], Field(description="Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе")] = None,
5015
+ skip: Annotated[Optional[StrictInt], Field(description="Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации")] = None,
5016
+ deleted: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать удалённые ключи")] = None,
5017
+ sold: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать проданные ключи")] = None,
5018
+ reserved: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать зарезервированные ключи")] = None,
5019
+ expired: Annotated[Optional[StrictBool], Field(description="Указывает, будут ли в ответе присутствовать ключи с истекшим сроком действия")] = None,
3496
5020
  _request_timeout: Union[
3497
5021
  None,
3498
5022
  Annotated[StrictFloat, Field(gt=0)],
@@ -3506,12 +5030,24 @@ class DefaultApi:
3506
5030
  _headers: Optional[Dict[StrictStr, Any]] = None,
3507
5031
  _host_index: Annotated[StrictInt, Field(ge=0, le=1)] = 0,
3508
5032
  ) -> RESTResponseType:
3509
- """Получить информацию о предложении
5033
+ """Получить список ключей
3510
5034
 
3511
- Метод позволяет получить информацию о конкретном предложении. <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
5035
+ Метод позволяет получить список загруженных вами ключей для конкретного предложения. <div class=\"description_important\"> Доступ к методу предоставляется через заявку в <a href=\"https://digital.wildberries.ru/support\" target=\"_black\">техническую поддержку</a>. </div> <div class=\"description_limit\"> Максимум 100 запросов в секунду </div>
3512
5036
 
3513
5037
  :param offer_id: ID предложения (required)
3514
5038
  :type offer_id: int
5039
+ :param take: Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе
5040
+ :type take: int
5041
+ :param skip: Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для пагинации
5042
+ :type skip: int
5043
+ :param deleted: Указывает, будут ли в ответе присутствовать удалённые ключи
5044
+ :type deleted: bool
5045
+ :param sold: Указывает, будут ли в ответе присутствовать проданные ключи
5046
+ :type sold: bool
5047
+ :param reserved: Указывает, будут ли в ответе присутствовать зарезервированные ключи
5048
+ :type reserved: bool
5049
+ :param expired: Указывает, будут ли в ответе присутствовать ключи с истекшим сроком действия
5050
+ :type expired: bool
3515
5051
  :param _request_timeout: timeout setting for this request. If one
3516
5052
  number provided, it will be total request
3517
5053
  timeout. It can also be a pair (tuple) of
@@ -3534,8 +5070,14 @@ class DefaultApi:
3534
5070
  :return: Returns the result object.
3535
5071
  """ # noqa: E501
3536
5072
 
3537
- _param = self._offer_get_serialize(
5073
+ _param = self._offer_keys_get_serialize(
3538
5074
  offer_id=offer_id,
5075
+ take=take,
5076
+ skip=skip,
5077
+ deleted=deleted,
5078
+ sold=sold,
5079
+ reserved=reserved,
5080
+ expired=expired,
3539
5081
  _request_auth=_request_auth,
3540
5082
  _content_type=_content_type,
3541
5083
  _headers=_headers,
@@ -3543,9 +5085,10 @@ class DefaultApi:
3543
5085
  )
3544
5086
 
3545
5087
  _response_types_map: Dict[str, Optional[str]] = {
3546
- '200': "OfferResponse",
5088
+ '200': "KeysResponseList",
3547
5089
  '400': "ProblemDetails400",
3548
5090
  '401': "ProblemDetails401",
5091
+ '403': "ProblemDetails403",
3549
5092
  '404': "ProblemDetails404",
3550
5093
  '500': "ProblemDetails500",
3551
5094
  }
@@ -3556,9 +5099,15 @@ class DefaultApi:
3556
5099
  return response_data.response
3557
5100
 
3558
5101
 
3559
- def _offer_get_serialize(
5102
+ def _offer_keys_get_serialize(
3560
5103
  self,
3561
5104
  offer_id,
5105
+ take,
5106
+ skip,
5107
+ deleted,
5108
+ sold,
5109
+ reserved,
5110
+ expired,
3562
5111
  _request_auth,
3563
5112
  _content_type,
3564
5113
  _headers,
@@ -3586,6 +5135,30 @@ class DefaultApi:
3586
5135
  if offer_id is not None:
3587
5136
  _path_params['offer_id'] = offer_id
3588
5137
  # process the query parameters
5138
+ if take is not None:
5139
+
5140
+ _query_params.append(('take', take))
5141
+
5142
+ if skip is not None:
5143
+
5144
+ _query_params.append(('skip', skip))
5145
+
5146
+ if deleted is not None:
5147
+
5148
+ _query_params.append(('deleted', deleted))
5149
+
5150
+ if sold is not None:
5151
+
5152
+ _query_params.append(('sold', sold))
5153
+
5154
+ if reserved is not None:
5155
+
5156
+ _query_params.append(('reserved', reserved))
5157
+
5158
+ if expired is not None:
5159
+
5160
+ _query_params.append(('expired', expired))
5161
+
3589
5162
  # process the header parameters
3590
5163
  # process the form parameters
3591
5164
  # process the body parameter
@@ -3607,7 +5180,7 @@ class DefaultApi:
3607
5180
 
3608
5181
  return self.api_client.param_serialize(
3609
5182
  method='GET',
3610
- resource_path='/api/v1/offers/{offer_id}',
5183
+ resource_path='/api/v1/offer/keys/{offer_id}/list',
3611
5184
  path_params=_path_params,
3612
5185
  query_params=_query_params,
3613
5186
  header_params=_header_params,