byteplus-python-sdk-v2 3.0.43__py2.py3-none-any.whl → 3.0.45__py2.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 (562) hide show
  1. {byteplus_python_sdk_v2-3.0.43.dist-info → byteplus_python_sdk_v2-3.0.45.dist-info}/METADATA +27 -1
  2. {byteplus_python_sdk_v2-3.0.43.dist-info → byteplus_python_sdk_v2-3.0.45.dist-info}/RECORD +562 -94
  3. {byteplus_python_sdk_v2-3.0.43.dist-info → byteplus_python_sdk_v2-3.0.45.dist-info}/top_level.txt +2 -0
  4. byteplussdkcore/api_client.py +219 -1
  5. byteplussdkcore/auth/credential.py +4 -0
  6. byteplussdkcore/auth/providers/__init__.py +5 -1
  7. byteplussdkcore/auth/providers/cli_config_provider.py +628 -0
  8. byteplussdkcore/auth/providers/default_provider.py +103 -0
  9. byteplussdkcore/auth/providers/ecs_role_provider.py +186 -0
  10. byteplussdkcore/auth/providers/env_provider.py +38 -0
  11. byteplussdkcore/auth/providers/provider.py +36 -1
  12. byteplussdkcore/auth/providers/static_provider.py +3 -3
  13. byteplussdkcore/auth/providers/sts_oidc_provider.py +132 -42
  14. byteplussdkcore/auth/providers/sts_provider.py +10 -1
  15. byteplussdkcore/auth/providers/sts_saml_provider.py +77 -32
  16. byteplussdkcore/configuration.py +1 -1
  17. byteplussdkcore/endpoint/providers/default_provider.py +28 -0
  18. byteplussdkcore/endpoint/providers/standard_provider.py +2 -3
  19. byteplussdkcore/feature/__init__.py +6 -0
  20. byteplussdkcore/feature/rds/__init__.py +4 -0
  21. byteplussdkcore/feature/rds/connect_utils.py +88 -0
  22. byteplussdkcore/interceptor/interceptors/request.py +4 -0
  23. byteplussdkcore/interceptor/interceptors/resolve_endpoint_interceptor.py +8 -1
  24. byteplussdkcore/interceptor/interceptors/sign_request_interceptor.py +42 -14
  25. byteplussdkcore/signv4.py +86 -0
  26. byteplussdkexamples/byteplussdkarkruntime/async_completions.py +0 -2
  27. byteplussdkexamples/byteplussdkarkruntime/completions.py +1 -3
  28. byteplussdkexamples/byteplussdkarkruntime/context.py +1 -3
  29. byteplussdkkickart/__init__.py +251 -0
  30. byteplussdkkickart/api/__init__.py +6 -0
  31. byteplussdkkickart/api/kickart_api.py +11189 -0
  32. byteplussdkkickart/models/__init__.py +247 -0
  33. byteplussdkkickart/models/batch_delete_asset_request.py +123 -0
  34. byteplussdkkickart/models/batch_delete_asset_response.py +95 -0
  35. byteplussdkkickart/models/batch_delete_media_request.py +123 -0
  36. byteplussdkkickart/models/batch_delete_media_response.py +123 -0
  37. byteplussdkkickart/models/check_delete_media_request.py +123 -0
  38. byteplussdkkickart/models/check_delete_media_response.py +123 -0
  39. byteplussdkkickart/models/check_product_url_request.py +149 -0
  40. byteplussdkkickart/models/check_product_url_response.py +123 -0
  41. byteplussdkkickart/models/clear_ad_variations_output_videos_request.py +124 -0
  42. byteplussdkkickart/models/clear_ad_variations_output_videos_response.py +95 -0
  43. byteplussdkkickart/models/clear_ad_variations_project_request.py +150 -0
  44. byteplussdkkickart/models/clear_ad_variations_project_response.py +95 -0
  45. byteplussdkkickart/models/copy_genius_project_request.py +149 -0
  46. byteplussdkkickart/models/copy_genius_project_response.py +149 -0
  47. byteplussdkkickart/models/create_ad_variations_project_request.py +123 -0
  48. byteplussdkkickart/models/create_ad_variations_project_response.py +123 -0
  49. byteplussdkkickart/models/create_ai_template_task_request.py +227 -0
  50. byteplussdkkickart/models/create_ai_template_task_response.py +123 -0
  51. byteplussdkkickart/models/create_api_key_request.py +123 -0
  52. byteplussdkkickart/models/create_api_key_response.py +123 -0
  53. byteplussdkkickart/models/create_auth_url_request.py +149 -0
  54. byteplussdkkickart/models/create_auth_url_response.py +175 -0
  55. byteplussdkkickart/models/create_avatar_request.py +149 -0
  56. byteplussdkkickart/models/create_avatar_response.py +123 -0
  57. byteplussdkkickart/models/create_draft_request.py +149 -0
  58. byteplussdkkickart/models/create_draft_response.py +149 -0
  59. byteplussdkkickart/models/create_film_request.py +721 -0
  60. byteplussdkkickart/models/create_film_response.py +95 -0
  61. byteplussdkkickart/models/create_folder_request.py +279 -0
  62. byteplussdkkickart/models/create_folder_response.py +123 -0
  63. byteplussdkkickart/models/create_item_request.py +227 -0
  64. byteplussdkkickart/models/create_item_response.py +149 -0
  65. byteplussdkkickart/models/create_material_request.py +851 -0
  66. byteplussdkkickart/models/create_material_response.py +95 -0
  67. byteplussdkkickart/models/create_media_request.py +357 -0
  68. byteplussdkkickart/models/create_media_response.py +149 -0
  69. byteplussdkkickart/models/create_project_from_template_request.py +123 -0
  70. byteplussdkkickart/models/create_project_from_template_response.py +123 -0
  71. byteplussdkkickart/models/create_project_request.py +487 -0
  72. byteplussdkkickart/models/create_project_response.py +201 -0
  73. byteplussdkkickart/models/create_template_project_request.py +149 -0
  74. byteplussdkkickart/models/create_template_project_response.py +175 -0
  75. byteplussdkkickart/models/delete_all_task_item_request.py +124 -0
  76. byteplussdkkickart/models/delete_all_task_item_response.py +95 -0
  77. byteplussdkkickart/models/delete_api_key_request.py +123 -0
  78. byteplussdkkickart/models/delete_api_key_response.py +95 -0
  79. byteplussdkkickart/models/delete_task_item_request.py +123 -0
  80. byteplussdkkickart/models/delete_task_item_response.py +95 -0
  81. byteplussdkkickart/models/download_asset_request.py +149 -0
  82. byteplussdkkickart/models/download_asset_response.py +149 -0
  83. byteplussdkkickart/models/export_editor_video_request.py +279 -0
  84. byteplussdkkickart/models/export_editor_video_response.py +123 -0
  85. byteplussdkkickart/models/export_video_request.py +149 -0
  86. byteplussdkkickart/models/export_video_response.py +123 -0
  87. byteplussdkkickart/models/gen_ad_variations_analysis_request.py +124 -0
  88. byteplussdkkickart/models/gen_ad_variations_analysis_response.py +123 -0
  89. byteplussdkkickart/models/gen_ad_variations_video_request.py +124 -0
  90. byteplussdkkickart/models/gen_ad_variations_video_response.py +123 -0
  91. byteplussdkkickart/models/gen_bgm_by_product_request.py +175 -0
  92. byteplussdkkickart/models/gen_bgm_by_product_response.py +123 -0
  93. byteplussdkkickart/models/gen_bgm_by_video_request.py +175 -0
  94. byteplussdkkickart/models/gen_bgm_by_video_response.py +123 -0
  95. byteplussdkkickart/models/gen_main_video_request.py +175 -0
  96. byteplussdkkickart/models/gen_main_video_response.py +149 -0
  97. byteplussdkkickart/models/gen_pic_by_prompt_request.py +175 -0
  98. byteplussdkkickart/models/gen_pic_by_prompt_response.py +123 -0
  99. byteplussdkkickart/models/gen_pics_video_by_story_request.py +175 -0
  100. byteplussdkkickart/models/gen_pics_video_by_story_response.py +123 -0
  101. byteplussdkkickart/models/gen_product_intro_creative_request.py +149 -0
  102. byteplussdkkickart/models/gen_product_intro_creative_response.py +123 -0
  103. byteplussdkkickart/models/gen_product_intro_script_request.py +149 -0
  104. byteplussdkkickart/models/gen_product_intro_script_response.py +123 -0
  105. byteplussdkkickart/models/gen_product_intro_video_request.py +149 -0
  106. byteplussdkkickart/models/gen_product_intro_video_response.py +149 -0
  107. byteplussdkkickart/models/gen_product_storyboard_outline_request.py +149 -0
  108. byteplussdkkickart/models/gen_product_storyboard_outline_response.py +149 -0
  109. byteplussdkkickart/models/gen_product_storyboard_video_request.py +175 -0
  110. byteplussdkkickart/models/gen_product_storyboard_video_response.py +175 -0
  111. byteplussdkkickart/models/gen_story_by_prompt_request.py +123 -0
  112. byteplussdkkickart/models/gen_story_by_prompt_response.py +123 -0
  113. byteplussdkkickart/models/gen_template_script_request.py +175 -0
  114. byteplussdkkickart/models/gen_template_script_response.py +175 -0
  115. byteplussdkkickart/models/gen_template_video_request.py +201 -0
  116. byteplussdkkickart/models/gen_template_video_response.py +149 -0
  117. byteplussdkkickart/models/gen_video_by_prompt_request.py +175 -0
  118. byteplussdkkickart/models/gen_video_by_prompt_response.py +123 -0
  119. byteplussdkkickart/models/get_ai_template_task_status_request.py +123 -0
  120. byteplussdkkickart/models/get_ai_template_task_status_response.py +123 -0
  121. byteplussdkkickart/models/get_ai_template_template_info_request.py +123 -0
  122. byteplussdkkickart/models/get_ai_template_template_info_response.py +123 -0
  123. byteplussdkkickart/models/get_avatar_request.py +123 -0
  124. byteplussdkkickart/models/get_avatar_response.py +123 -0
  125. byteplussdkkickart/models/get_block_detail_request.py +149 -0
  126. byteplussdkkickart/models/get_block_detail_response.py +123 -0
  127. byteplussdkkickart/models/get_block_request.py +124 -0
  128. byteplussdkkickart/models/get_block_response.py +123 -0
  129. byteplussdkkickart/models/get_category_detail_request.py +201 -0
  130. byteplussdkkickart/models/get_category_detail_response.py +123 -0
  131. byteplussdkkickart/models/get_combo_balance_request.py +124 -0
  132. byteplussdkkickart/models/get_combo_balance_response.py +149 -0
  133. byteplussdkkickart/models/get_composition_request.py +123 -0
  134. byteplussdkkickart/models/get_composition_response.py +253 -0
  135. byteplussdkkickart/models/get_create_cost_request.py +123 -0
  136. byteplussdkkickart/models/get_create_cost_response.py +123 -0
  137. byteplussdkkickart/models/get_creator_info_request.py +123 -0
  138. byteplussdkkickart/models/get_creator_info_response.py +123 -0
  139. byteplussdkkickart/models/get_draft_request.py +123 -0
  140. byteplussdkkickart/models/get_draft_response.py +123 -0
  141. byteplussdkkickart/models/get_film_detail_request.py +175 -0
  142. byteplussdkkickart/models/get_film_detail_response.py +123 -0
  143. byteplussdkkickart/models/get_genius_project_request.py +124 -0
  144. byteplussdkkickart/models/get_genius_project_response.py +123 -0
  145. byteplussdkkickart/models/get_genius_template_request.py +123 -0
  146. byteplussdkkickart/models/get_genius_template_response.py +123 -0
  147. byteplussdkkickart/models/get_home_bootstrap2_request.py +149 -0
  148. byteplussdkkickart/models/get_home_bootstrap2_response.py +253 -0
  149. byteplussdkkickart/models/get_home_bootstrap_request.py +149 -0
  150. byteplussdkkickart/models/get_home_bootstrap_response.py +253 -0
  151. byteplussdkkickart/models/get_list_request.py +177 -0
  152. byteplussdkkickart/models/get_list_response.py +175 -0
  153. byteplussdkkickart/models/get_material_detail_request.py +227 -0
  154. byteplussdkkickart/models/get_material_detail_response.py +123 -0
  155. byteplussdkkickart/models/get_material_transcoding_list_request.py +331 -0
  156. byteplussdkkickart/models/get_material_transcoding_list_response.py +149 -0
  157. byteplussdkkickart/models/get_media_request.py +123 -0
  158. byteplussdkkickart/models/get_media_response.py +123 -0
  159. byteplussdkkickart/models/get_meta_list_request.py +201 -0
  160. byteplussdkkickart/models/get_meta_list_response.py +175 -0
  161. byteplussdkkickart/models/get_price_request.py +123 -0
  162. byteplussdkkickart/models/get_price_response.py +123 -0
  163. byteplussdkkickart/models/get_product_info_request.py +123 -0
  164. byteplussdkkickart/models/get_product_info_response.py +149 -0
  165. byteplussdkkickart/models/get_public_template_list_request.py +436 -0
  166. byteplussdkkickart/models/get_public_template_list_response.py +149 -0
  167. byteplussdkkickart/models/get_publish_draft_by_task_request.py +124 -0
  168. byteplussdkkickart/models/get_publish_draft_by_task_response.py +149 -0
  169. byteplussdkkickart/models/get_publish_draft_request.py +175 -0
  170. byteplussdkkickart/models/get_publish_draft_response.py +149 -0
  171. byteplussdkkickart/models/get_raw_api_key_request.py +123 -0
  172. byteplussdkkickart/models/get_raw_api_key_response.py +123 -0
  173. byteplussdkkickart/models/get_special_zone_config_request.py +124 -0
  174. byteplussdkkickart/models/get_special_zone_config_response.py +227 -0
  175. byteplussdkkickart/models/get_task_item_request.py +149 -0
  176. byteplussdkkickart/models/get_task_item_response.py +565 -0
  177. byteplussdkkickart/models/get_tasks_detail_request.py +123 -0
  178. byteplussdkkickart/models/get_tasks_detail_response.py +123 -0
  179. byteplussdkkickart/models/get_tenant_config_request.py +124 -0
  180. byteplussdkkickart/models/get_tenant_config_response.py +929 -0
  181. byteplussdkkickart/models/get_voice_recommendation_request.py +227 -0
  182. byteplussdkkickart/models/get_voice_recommendation_response.py +123 -0
  183. byteplussdkkickart/models/get_watermark_switch_status_request.py +124 -0
  184. byteplussdkkickart/models/get_watermark_switch_status_response.py +253 -0
  185. byteplussdkkickart/models/handle_o_auth_callback_request.py +177 -0
  186. byteplussdkkickart/models/handle_o_auth_callback_response.py +123 -0
  187. byteplussdkkickart/models/health_check_request.py +123 -0
  188. byteplussdkkickart/models/health_check_response.py +123 -0
  189. byteplussdkkickart/models/invoke_project_event_request.py +201 -0
  190. byteplussdkkickart/models/invoke_project_event_response.py +123 -0
  191. byteplussdkkickart/models/list_api_key_request.py +149 -0
  192. byteplussdkkickart/models/list_api_key_response.py +201 -0
  193. byteplussdkkickart/models/list_avatar_request.py +201 -0
  194. byteplussdkkickart/models/list_avatar_response.py +201 -0
  195. byteplussdkkickart/models/list_avatar_voice_request.py +279 -0
  196. byteplussdkkickart/models/list_avatar_voice_response.py +201 -0
  197. byteplussdkkickart/models/list_block_request.py +201 -0
  198. byteplussdkkickart/models/list_block_response.py +149 -0
  199. byteplussdkkickart/models/list_combo_request.py +149 -0
  200. byteplussdkkickart/models/list_combo_response.py +149 -0
  201. byteplussdkkickart/models/list_create_cost_request.py +149 -0
  202. byteplussdkkickart/models/list_create_cost_response.py +123 -0
  203. byteplussdkkickart/models/list_creative_point_logs_request.py +253 -0
  204. byteplussdkkickart/models/list_creative_point_logs_response.py +149 -0
  205. byteplussdkkickart/models/list_genius_project_request.py +149 -0
  206. byteplussdkkickart/models/list_genius_project_response.py +149 -0
  207. byteplussdkkickart/models/list_genius_template_request.py +175 -0
  208. byteplussdkkickart/models/list_genius_template_response.py +149 -0
  209. byteplussdkkickart/models/list_prompt_request.py +95 -0
  210. byteplussdkkickart/models/list_prompt_response.py +123 -0
  211. byteplussdkkickart/models/list_publish_accounts_request.py +149 -0
  212. byteplussdkkickart/models/list_publish_accounts_response.py +123 -0
  213. byteplussdkkickart/models/list_resources_request.py +95 -0
  214. byteplussdkkickart/models/list_resources_response.py +123 -0
  215. byteplussdkkickart/models/list_select_item_request.py +123 -0
  216. byteplussdkkickart/models/list_select_item_response.py +149 -0
  217. byteplussdkkickart/models/list_tasks_request.py +177 -0
  218. byteplussdkkickart/models/list_tasks_response.py +175 -0
  219. byteplussdkkickart/models/query_creative_point_logs_request.py +253 -0
  220. byteplussdkkickart/models/query_creative_point_logs_response.py +149 -0
  221. byteplussdkkickart/models/query_select_item_request.py +123 -0
  222. byteplussdkkickart/models/query_select_item_response.py +149 -0
  223. byteplussdkkickart/models/reorder_check_request.py +123 -0
  224. byteplussdkkickart/models/reorder_check_response.py +123 -0
  225. byteplussdkkickart/models/retry_risk_task_request.py +123 -0
  226. byteplussdkkickart/models/retry_risk_task_response.py +123 -0
  227. byteplussdkkickart/models/retry_task_request.py +149 -0
  228. byteplussdkkickart/models/retry_task_response.py +123 -0
  229. byteplussdkkickart/models/save_publish_draft_request.py +149 -0
  230. byteplussdkkickart/models/save_publish_draft_response.py +123 -0
  231. byteplussdkkickart/models/search_asset_request.py +487 -0
  232. byteplussdkkickart/models/search_asset_response.py +201 -0
  233. byteplussdkkickart/models/search_list_media_request.py +617 -0
  234. byteplussdkkickart/models/search_list_media_response.py +201 -0
  235. byteplussdkkickart/models/set_watermark_switch_status_request.py +253 -0
  236. byteplussdkkickart/models/set_watermark_switch_status_response.py +95 -0
  237. byteplussdkkickart/models/show_popup_request.py +124 -0
  238. byteplussdkkickart/models/show_popup_response.py +175 -0
  239. byteplussdkkickart/models/submit_publish_request.py +124 -0
  240. byteplussdkkickart/models/submit_publish_response.py +123 -0
  241. byteplussdkkickart/models/unbind_publish_account_request.py +124 -0
  242. byteplussdkkickart/models/unbind_publish_account_response.py +95 -0
  243. byteplussdkkickart/models/update_api_key_request.py +175 -0
  244. byteplussdkkickart/models/update_api_key_response.py +95 -0
  245. byteplussdkkickart/models/update_asset_request.py +149 -0
  246. byteplussdkkickart/models/update_asset_response.py +95 -0
  247. byteplussdkkickart/models/update_composition_product_info_request.py +151 -0
  248. byteplussdkkickart/models/update_composition_product_info_response.py +123 -0
  249. byteplussdkkickart/models/update_composition_request.py +149 -0
  250. byteplussdkkickart/models/update_composition_response.py +123 -0
  251. byteplussdkkickart/models/update_draft_request.py +227 -0
  252. byteplussdkkickart/models/update_draft_response.py +95 -0
  253. byteplussdkkickart/models/update_draft_title_request.py +151 -0
  254. byteplussdkkickart/models/update_draft_title_response.py +123 -0
  255. byteplussdkkickart/models/update_film_request.py +435 -0
  256. byteplussdkkickart/models/update_film_response.py +95 -0
  257. byteplussdkkickart/models/update_folder_media_path_request.py +175 -0
  258. byteplussdkkickart/models/update_folder_media_path_response.py +95 -0
  259. byteplussdkkickart/models/update_material_request.py +513 -0
  260. byteplussdkkickart/models/update_material_response.py +95 -0
  261. byteplussdkkickart/models/validate_avatar_image_request.py +123 -0
  262. byteplussdkkickart/models/validate_avatar_image_response.py +149 -0
  263. byteplussdkllmshield/models/llm_shield_sign.py +1 -1
  264. byteplussdkrdsmssql/__init__.py +1 -1
  265. byteplussdkrdsmssql/models/__init__.py +1 -1
  266. byteplussdkrdsmssql/models/describe_db_instance_specs_response.py +17 -17
  267. byteplussdkrdsmssql/models/{instance_spec_info_for_describe_db_instance_specs_output.py → instance_specs_info_for_describe_db_instance_specs_output.py} +45 -45
  268. byteplussdkvepfs/__init__.py +26 -0
  269. byteplussdkvepfs/api/vepfs_api.py +582 -0
  270. byteplussdkvepfs/models/__init__.py +26 -0
  271. byteplussdkvepfs/models/add_mount_service_clients_request.py +202 -0
  272. byteplussdkvepfs/models/add_mount_service_clients_response.py +123 -0
  273. byteplussdkvepfs/models/client_for_add_mount_service_clients_input.py +149 -0
  274. byteplussdkvepfs/models/client_for_describe_mount_service_tasks_output.py +149 -0
  275. byteplussdkvepfs/models/client_for_remove_mount_service_clients_input.py +149 -0
  276. byteplussdkvepfs/models/client_for_verify_mount_service_clients_input.py +149 -0
  277. byteplussdkvepfs/models/client_snapshot_for_describe_mount_service_task_results_output.py +305 -0
  278. byteplussdkvepfs/models/describe_lens_tasks_request.py +60 -1
  279. byteplussdkvepfs/models/describe_mount_service_clients_request.py +440 -0
  280. byteplussdkvepfs/models/describe_mount_service_clients_response.py +201 -0
  281. byteplussdkvepfs/models/describe_mount_service_task_results_request.py +415 -0
  282. byteplussdkvepfs/models/describe_mount_service_task_results_response.py +201 -0
  283. byteplussdkvepfs/models/describe_mount_service_tasks_request.py +267 -0
  284. byteplussdkvepfs/models/describe_mount_service_tasks_response.py +201 -0
  285. byteplussdkvepfs/models/instance_for_describe_mount_service_clients_output.py +253 -0
  286. byteplussdkvepfs/models/instance_for_describe_mount_service_task_results_output.py +253 -0
  287. byteplussdkvepfs/models/monitor_for_describe_mount_service_clients_output.py +123 -0
  288. byteplussdkvepfs/models/monitor_for_describe_mount_service_task_results_output.py +123 -0
  289. byteplussdkvepfs/models/mount_service_client_for_describe_mount_service_clients_output.py +305 -0
  290. byteplussdkvepfs/models/mount_service_task_result_for_describe_mount_service_task_results_output.py +201 -0
  291. byteplussdkvepfs/models/progress_for_describe_mount_service_tasks_output.py +201 -0
  292. byteplussdkvepfs/models/remove_mount_service_clients_request.py +150 -0
  293. byteplussdkvepfs/models/remove_mount_service_clients_response.py +123 -0
  294. byteplussdkvepfs/models/result_for_verify_mount_service_clients_output.py +175 -0
  295. byteplussdkvepfs/models/task_for_describe_mount_service_tasks_output.py +305 -0
  296. byteplussdkvepfs/models/verify_mount_service_clients_request.py +150 -0
  297. byteplussdkvepfs/models/verify_mount_service_clients_response.py +123 -0
  298. byteplussdkvke/__init__.py +69 -0
  299. byteplussdkvke/api/vke_api.py +1273 -206
  300. byteplussdkvke/models/__init__.py +69 -0
  301. byteplussdkvke/models/action_for_list_remedy_configs_output.py +149 -0
  302. byteplussdkvke/models/affinity_group_config_for_create_node_pool_input.py +149 -0
  303. byteplussdkvke/models/affinity_group_config_for_list_node_pools_output.py +149 -0
  304. byteplussdkvke/models/affinity_group_config_for_update_node_pool_config_input.py +149 -0
  305. byteplussdkvke/models/binding_remedy_config_request.py +262 -0
  306. byteplussdkvke/models/binding_remedy_config_response.py +123 -0
  307. byteplussdkvke/models/cluster_config_for_list_clusters_output.py +27 -1
  308. byteplussdkvke/models/cluster_config_for_update_cluster_config_input.py +53 -1
  309. byteplussdkvke/models/cluster_connector_config_request_for_update_cluster_config_input.py +215 -0
  310. byteplussdkvke/models/config_for_list_remedy_configs_output.py +253 -0
  311. byteplussdkvke/models/container_image_commitment_for_describe_container_image_commitments_output.py +227 -0
  312. byteplussdkvke/models/containerd_config_for_create_default_node_pool_input.py +149 -0
  313. byteplussdkvke/models/containerd_config_for_create_node_pool_input.py +149 -0
  314. byteplussdkvke/models/containerd_config_for_list_node_pools_output.py +149 -0
  315. byteplussdkvke/models/containerd_config_for_update_node_pool_config_input.py +149 -0
  316. byteplussdkvke/models/create_node_pool_request.py +27 -1
  317. byteplussdkvke/models/create_nodes_request.py +81 -3
  318. byteplussdkvke/models/create_snapshot_request.py +255 -0
  319. byteplussdkvke/models/create_snapshot_response.py +123 -0
  320. byteplussdkvke/models/data_volume_for_create_node_pool_input.py +87 -2
  321. byteplussdkvke/models/data_volume_for_list_node_pools_output.py +79 -1
  322. byteplussdkvke/models/data_volume_for_update_node_pool_config_input.py +87 -2
  323. byteplussdkvke/models/delete_nodes_request.py +2 -3
  324. byteplussdkvke/models/delete_snapshot_request.py +124 -0
  325. byteplussdkvke/models/delete_snapshot_response.py +123 -0
  326. byteplussdkvke/models/describe_container_image_commitments_request.py +227 -0
  327. byteplussdkvke/models/describe_container_image_commitments_response.py +149 -0
  328. byteplussdkvke/models/describe_snapshots_request.py +175 -0
  329. byteplussdkvke/models/describe_snapshots_response.py +149 -0
  330. byteplussdkvke/models/drain_for_list_remedy_configs_output.py +123 -0
  331. byteplussdkvke/models/eviction_hard_for_create_default_node_pool_input.py +62 -1
  332. byteplussdkvke/models/eviction_hard_for_create_node_pool_input.py +62 -1
  333. byteplussdkvke/models/eviction_hard_for_list_node_pools_output.py +55 -1
  334. byteplussdkvke/models/eviction_hard_for_update_node_pool_config_input.py +62 -1
  335. byteplussdkvke/models/exec_container_image_commitment_request.py +27 -1
  336. byteplussdkvke/models/exec_container_image_commitment_response.py +29 -1
  337. byteplussdkvke/models/filter_for_list_clusters_input.py +1 -1
  338. byteplussdkvke/models/filter_for_list_nodes_input.py +53 -1
  339. byteplussdkvke/models/filter_for_list_remedy_configs_input.py +234 -0
  340. byteplussdkvke/models/flannel_config_for_list_clusters_output.py +29 -3
  341. byteplussdkvke/models/flannel_config_for_update_cluster_config_input.py +123 -0
  342. byteplussdkvke/models/image_spec_for_describe_container_image_commitments_output.py +201 -0
  343. byteplussdkvke/models/instances_distribution_for_create_node_pool_input.py +201 -0
  344. byteplussdkvke/models/instances_distribution_for_list_node_pools_output.py +201 -0
  345. byteplussdkvke/models/instances_distribution_for_update_node_pool_config_input.py +201 -0
  346. byteplussdkvke/models/intersection_item_for_list_supported_images_output.py +149 -0
  347. byteplussdkvke/models/intervene_cordon_for_list_remedy_configs_output.py +149 -0
  348. byteplussdkvke/models/intervene_drain_for_list_remedy_configs_output.py +149 -0
  349. byteplussdkvke/models/irsa_config_for_list_clusters_output.py +253 -0
  350. byteplussdkvke/models/item_for_list_clusters_output.py +27 -1
  351. byteplussdkvke/models/item_for_list_instance_type_labels_output.py +175 -0
  352. byteplussdkvke/models/item_for_list_node_pools_output.py +27 -1
  353. byteplussdkvke/models/item_for_list_nodes_output.py +105 -1
  354. byteplussdkvke/models/item_for_list_remedy_configs_output.py +305 -0
  355. byteplussdkvke/models/item_for_list_supported_images_output.py +149 -0
  356. byteplussdkvke/models/kube_reserved_for_create_default_node_pool_input.py +7 -0
  357. byteplussdkvke/models/kube_reserved_for_create_node_pool_input.py +7 -0
  358. byteplussdkvke/models/kube_reserved_for_update_node_pool_config_input.py +7 -0
  359. byteplussdkvke/models/kubelet_config_for_create_default_node_pool_input.py +7 -24
  360. byteplussdkvke/models/kubelet_config_for_create_node_pool_input.py +7 -24
  361. byteplussdkvke/models/kubelet_config_for_update_node_pool_config_input.py +7 -24
  362. byteplussdkvke/models/kubernetes_config_for_create_default_node_pool_input.py +105 -1
  363. byteplussdkvke/models/kubernetes_config_for_create_node_pool_input.py +105 -1
  364. byteplussdkvke/models/kubernetes_config_for_list_node_pools_output.py +105 -1
  365. byteplussdkvke/models/kubernetes_config_for_update_node_pool_config_input.py +105 -1
  366. byteplussdkvke/models/label_for_list_instance_type_labels_output.py +149 -0
  367. byteplussdkvke/models/label_for_list_remedy_configs_output.py +149 -0
  368. byteplussdkvke/models/list_instance_type_labels_request.py +123 -0
  369. byteplussdkvke/models/list_instance_type_labels_response.py +123 -0
  370. byteplussdkvke/models/list_remedy_configs_request.py +175 -0
  371. byteplussdkvke/models/list_remedy_configs_response.py +201 -0
  372. byteplussdkvke/models/list_supported_add_instance_types_request.py +95 -0
  373. byteplussdkvke/models/list_supported_add_instance_types_response.py +123 -0
  374. byteplussdkvke/models/list_supported_gpu_driver_versions_request.py +176 -0
  375. byteplussdkvke/models/list_supported_gpu_driver_versions_response.py +123 -0
  376. byteplussdkvke/models/list_supported_images_request.py +175 -0
  377. byteplussdkvke/models/list_supported_images_response.py +149 -0
  378. byteplussdkvke/models/log_setup_for_create_cluster_input.py +1 -1
  379. byteplussdkvke/models/log_setup_for_update_cluster_config_input.py +1 -1
  380. byteplussdkvke/models/management_for_create_node_pool_input.py +149 -0
  381. byteplussdkvke/models/management_for_list_node_pools_output.py +149 -0
  382. byteplussdkvke/models/management_for_update_node_pool_config_input.py +149 -0
  383. byteplussdkvke/models/monitoring_config_for_list_clusters_output.py +27 -1
  384. byteplussdkvke/models/monitoring_config_for_update_cluster_config_input.py +27 -1
  385. byteplussdkvke/models/node_config_for_create_default_node_pool_input.py +27 -1
  386. byteplussdkvke/models/node_config_for_create_node_pool_input.py +216 -1
  387. byteplussdkvke/models/node_config_for_list_node_pools_output.py +209 -1
  388. byteplussdkvke/models/node_config_for_update_node_pool_config_input.py +216 -1
  389. byteplussdkvke/models/pods_config_for_update_cluster_config_input.py +27 -1
  390. byteplussdkvke/models/proxy_config_for_update_cluster_config_input.py +227 -0
  391. byteplussdkvke/models/public_access_config_for_create_node_pool_input.py +1 -1
  392. byteplussdkvke/models/public_access_config_for_update_node_pool_config_input.py +1 -1
  393. byteplussdkvke/models/public_access_network_config_for_create_cluster_input.py +1 -1
  394. byteplussdkvke/models/public_access_network_config_for_update_cluster_config_input.py +1 -1
  395. byteplussdkvke/models/registry_proxy_config_for_create_default_node_pool_input.py +149 -0
  396. byteplussdkvke/models/registry_proxy_config_for_create_node_pool_input.py +149 -0
  397. byteplussdkvke/models/registry_proxy_config_for_list_node_pools_output.py +149 -0
  398. byteplussdkvke/models/registry_proxy_config_for_update_node_pool_config_input.py +149 -0
  399. byteplussdkvke/models/remedy_config_for_create_node_pool_input.py +149 -0
  400. byteplussdkvke/models/remedy_config_for_list_node_pools_output.py +149 -0
  401. byteplussdkvke/models/remedy_config_for_update_node_pool_config_input.py +149 -0
  402. byteplussdkvke/models/remedy_strategy_for_list_remedy_configs_output.py +149 -0
  403. byteplussdkvke/models/rule_for_list_remedy_configs_output.py +175 -0
  404. byteplussdkvke/models/runtime_for_create_default_node_pool_input.py +156 -0
  405. byteplussdkvke/models/runtime_for_create_node_pool_input.py +156 -0
  406. byteplussdkvke/models/runtime_for_list_node_pools_output.py +149 -0
  407. byteplussdkvke/models/runtime_for_update_node_pool_config_input.py +156 -0
  408. byteplussdkvke/models/scheduled_instance_policy_for_create_scaling_policy_input.py +27 -1
  409. byteplussdkvke/models/scheduled_instance_policy_for_list_scaling_policies_output.py +27 -1
  410. byteplussdkvke/models/scheduled_instance_policy_for_update_scaling_policy_input.py +27 -1
  411. byteplussdkvke/models/snapshot_for_describe_snapshots_output.py +461 -0
  412. byteplussdkvke/models/status_for_list_clusters_input.py +1 -1
  413. byteplussdkvke/models/status_for_list_node_pools_input.py +1 -1
  414. byteplussdkvke/models/status_for_list_nodes_input.py +2 -2
  415. byteplussdkvke/models/supported_image_for_list_supported_images_output.py +149 -0
  416. byteplussdkvke/models/system_reserved_for_create_default_node_pool_input.py +7 -0
  417. byteplussdkvke/models/system_reserved_for_create_node_pool_input.py +7 -0
  418. byteplussdkvke/models/system_reserved_for_update_node_pool_config_input.py +7 -0
  419. byteplussdkvke/models/system_volume_for_create_node_pool_input.py +1 -1
  420. byteplussdkvke/models/system_volume_for_update_node_pool_config_input.py +1 -1
  421. byteplussdkvke/models/tag_for_create_snapshot_input.py +149 -0
  422. byteplussdkvke/models/unbinding_remedy_config_request.py +211 -0
  423. byteplussdkvke/models/unbinding_remedy_config_response.py +95 -0
  424. byteplussdkvke/models/update_cluster_config_request.py +27 -1
  425. byteplussdkvke/models/update_node_pool_config_request.py +27 -1
  426. byteplussdkvke/models/vpc_cni_config_for_list_clusters_output.py +29 -3
  427. byteplussdkvke/models/vpc_cni_config_for_update_cluster_config_input.py +29 -3
  428. byteplussdkvpc20250901/__init__.py +149 -0
  429. byteplussdkvpc20250901/api/__init__.py +6 -0
  430. byteplussdkvpc20250901/api/vpc20250901_api.py +4399 -0
  431. byteplussdkvpc20250901/models/__init__.py +145 -0
  432. byteplussdkvpc20250901/models/assign_private_ip_addresses_request.py +202 -0
  433. byteplussdkvpc20250901/models/assign_private_ip_addresses_response.py +201 -0
  434. byteplussdkvpc20250901/models/associate_route_table_request.py +176 -0
  435. byteplussdkvpc20250901/models/associate_route_table_response.py +149 -0
  436. byteplussdkvpc20250901/models/associate_vpc_cidr_block_request.py +150 -0
  437. byteplussdkvpc20250901/models/associate_vpc_cidr_block_response.py +201 -0
  438. byteplussdkvpc20250901/models/associated_elastic_ip_for_describe_network_interface_attributes_output.py +175 -0
  439. byteplussdkvpc20250901/models/associated_elastic_ip_for_describe_network_interfaces_output.py +175 -0
  440. byteplussdkvpc20250901/models/attach_network_interface_request.py +151 -0
  441. byteplussdkvpc20250901/models/attach_network_interface_response.py +149 -0
  442. byteplussdkvpc20250901/models/attachment_for_describe_network_interfaces_output.py +149 -0
  443. byteplussdkvpc20250901/models/authorize_security_group_egress_request.py +309 -0
  444. byteplussdkvpc20250901/models/authorize_security_group_egress_response.py +149 -0
  445. byteplussdkvpc20250901/models/authorize_security_group_ingress_request.py +309 -0
  446. byteplussdkvpc20250901/models/authorize_security_group_ingress_response.py +149 -0
  447. byteplussdkvpc20250901/models/create_network_interface_request.py +396 -0
  448. byteplussdkvpc20250901/models/create_network_interface_response.py +175 -0
  449. byteplussdkvpc20250901/models/create_route_entry_request.py +294 -0
  450. byteplussdkvpc20250901/models/create_route_entry_response.py +175 -0
  451. byteplussdkvpc20250901/models/create_route_table_request.py +266 -0
  452. byteplussdkvpc20250901/models/create_route_table_response.py +175 -0
  453. byteplussdkvpc20250901/models/create_security_group_request.py +254 -0
  454. byteplussdkvpc20250901/models/create_security_group_response.py +175 -0
  455. byteplussdkvpc20250901/models/create_subnet_request.py +294 -0
  456. byteplussdkvpc20250901/models/create_subnet_response.py +175 -0
  457. byteplussdkvpc20250901/models/create_vpc_request.py +292 -0
  458. byteplussdkvpc20250901/models/create_vpc_response.py +201 -0
  459. byteplussdkvpc20250901/models/delete_network_interface_request.py +124 -0
  460. byteplussdkvpc20250901/models/delete_network_interface_response.py +149 -0
  461. byteplussdkvpc20250901/models/delete_route_entry_request.py +124 -0
  462. byteplussdkvpc20250901/models/delete_route_entry_response.py +149 -0
  463. byteplussdkvpc20250901/models/delete_route_table_request.py +124 -0
  464. byteplussdkvpc20250901/models/delete_route_table_response.py +149 -0
  465. byteplussdkvpc20250901/models/delete_security_group_request.py +124 -0
  466. byteplussdkvpc20250901/models/delete_security_group_response.py +149 -0
  467. byteplussdkvpc20250901/models/delete_subnet_request.py +124 -0
  468. byteplussdkvpc20250901/models/delete_subnet_response.py +149 -0
  469. byteplussdkvpc20250901/models/delete_vpc_request.py +124 -0
  470. byteplussdkvpc20250901/models/delete_vpc_response.py +149 -0
  471. byteplussdkvpc20250901/models/describe_network_interface_attributes_request.py +124 -0
  472. byteplussdkvpc20250901/models/describe_network_interface_attributes_response.py +695 -0
  473. byteplussdkvpc20250901/models/describe_network_interfaces_request.py +548 -0
  474. byteplussdkvpc20250901/models/describe_network_interfaces_response.py +253 -0
  475. byteplussdkvpc20250901/models/describe_route_entry_list_request.py +393 -0
  476. byteplussdkvpc20250901/models/describe_route_entry_list_response.py +253 -0
  477. byteplussdkvpc20250901/models/describe_route_table_list_request.py +334 -0
  478. byteplussdkvpc20250901/models/describe_route_table_list_response.py +253 -0
  479. byteplussdkvpc20250901/models/describe_security_group_attributes_request.py +228 -0
  480. byteplussdkvpc20250901/models/describe_security_group_attributes_response.py +461 -0
  481. byteplussdkvpc20250901/models/describe_security_groups_request.py +340 -0
  482. byteplussdkvpc20250901/models/describe_security_groups_response.py +253 -0
  483. byteplussdkvpc20250901/models/describe_subnet_attributes_request.py +124 -0
  484. byteplussdkvpc20250901/models/describe_subnet_attributes_response.py +539 -0
  485. byteplussdkvpc20250901/models/describe_subnets_request.py +438 -0
  486. byteplussdkvpc20250901/models/describe_subnets_response.py +253 -0
  487. byteplussdkvpc20250901/models/describe_vpc_attributes_request.py +124 -0
  488. byteplussdkvpc20250901/models/describe_vpc_attributes_response.py +565 -0
  489. byteplussdkvpc20250901/models/describe_vpcs_request.py +366 -0
  490. byteplussdkvpc20250901/models/describe_vpcs_response.py +253 -0
  491. byteplussdkvpc20250901/models/detach_network_interface_request.py +151 -0
  492. byteplussdkvpc20250901/models/detach_network_interface_response.py +149 -0
  493. byteplussdkvpc20250901/models/disassociate_route_table_request.py +176 -0
  494. byteplussdkvpc20250901/models/disassociate_route_table_response.py +149 -0
  495. byteplussdkvpc20250901/models/disassociate_vpc_cidr_block_request.py +150 -0
  496. byteplussdkvpc20250901/models/disassociate_vpc_cidr_block_response.py +149 -0
  497. byteplussdkvpc20250901/models/list_tags_for_resources_request.py +264 -0
  498. byteplussdkvpc20250901/models/list_tags_for_resources_response.py +175 -0
  499. byteplussdkvpc20250901/models/modify_network_interface_attributes_request.py +266 -0
  500. byteplussdkvpc20250901/models/modify_network_interface_attributes_response.py +149 -0
  501. byteplussdkvpc20250901/models/modify_route_entry_request.py +188 -0
  502. byteplussdkvpc20250901/models/modify_route_entry_response.py +123 -0
  503. byteplussdkvpc20250901/models/modify_route_table_attributes_request.py +188 -0
  504. byteplussdkvpc20250901/models/modify_route_table_attributes_response.py +123 -0
  505. byteplussdkvpc20250901/models/modify_security_group_attributes_request.py +176 -0
  506. byteplussdkvpc20250901/models/modify_security_group_attributes_response.py +123 -0
  507. byteplussdkvpc20250901/models/modify_security_group_rule_descriptions_egress_request.py +283 -0
  508. byteplussdkvpc20250901/models/modify_security_group_rule_descriptions_egress_response.py +123 -0
  509. byteplussdkvpc20250901/models/modify_security_group_rule_descriptions_ingress_request.py +283 -0
  510. byteplussdkvpc20250901/models/modify_security_group_rule_descriptions_ingress_response.py +123 -0
  511. byteplussdkvpc20250901/models/modify_subnet_attributes_request.py +188 -0
  512. byteplussdkvpc20250901/models/modify_subnet_attributes_response.py +149 -0
  513. byteplussdkvpc20250901/models/modify_vpc_attributes_request.py +214 -0
  514. byteplussdkvpc20250901/models/modify_vpc_attributes_response.py +149 -0
  515. byteplussdkvpc20250901/models/network_interface_set_for_describe_network_interfaces_output.py +695 -0
  516. byteplussdkvpc20250901/models/permission_for_describe_security_group_attributes_output.py +331 -0
  517. byteplussdkvpc20250901/models/private_ip_set_for_describe_network_interface_attributes_output.py +175 -0
  518. byteplussdkvpc20250901/models/private_ip_set_for_describe_network_interfaces_output.py +175 -0
  519. byteplussdkvpc20250901/models/private_ip_sets_for_describe_network_interface_attributes_output.py +123 -0
  520. byteplussdkvpc20250901/models/private_ip_sets_for_describe_network_interfaces_output.py +123 -0
  521. byteplussdkvpc20250901/models/resource_tag_for_list_tags_for_resources_output.py +201 -0
  522. byteplussdkvpc20250901/models/revoke_security_group_egress_request.py +283 -0
  523. byteplussdkvpc20250901/models/revoke_security_group_egress_response.py +149 -0
  524. byteplussdkvpc20250901/models/revoke_security_group_ingress_request.py +283 -0
  525. byteplussdkvpc20250901/models/revoke_security_group_ingress_response.py +149 -0
  526. byteplussdkvpc20250901/models/route_entry_for_describe_route_entry_list_output.py +357 -0
  527. byteplussdkvpc20250901/models/route_table_for_describe_subnet_attributes_output.py +149 -0
  528. byteplussdkvpc20250901/models/route_table_for_describe_subnets_output.py +149 -0
  529. byteplussdkvpc20250901/models/router_table_list_for_describe_route_table_list_output.py +435 -0
  530. byteplussdkvpc20250901/models/security_group_for_describe_security_groups_output.py +383 -0
  531. byteplussdkvpc20250901/models/subnet_for_describe_subnets_output.py +513 -0
  532. byteplussdkvpc20250901/models/tag_filter_for_describe_network_interfaces_input.py +149 -0
  533. byteplussdkvpc20250901/models/tag_filter_for_describe_route_table_list_input.py +149 -0
  534. byteplussdkvpc20250901/models/tag_filter_for_describe_security_groups_input.py +149 -0
  535. byteplussdkvpc20250901/models/tag_filter_for_describe_subnets_input.py +149 -0
  536. byteplussdkvpc20250901/models/tag_filter_for_describe_vpcs_input.py +149 -0
  537. byteplussdkvpc20250901/models/tag_filter_for_list_tags_for_resources_input.py +149 -0
  538. byteplussdkvpc20250901/models/tag_for_create_network_interface_input.py +149 -0
  539. byteplussdkvpc20250901/models/tag_for_create_route_table_input.py +149 -0
  540. byteplussdkvpc20250901/models/tag_for_create_security_group_input.py +149 -0
  541. byteplussdkvpc20250901/models/tag_for_create_subnet_input.py +149 -0
  542. byteplussdkvpc20250901/models/tag_for_create_vpc_input.py +149 -0
  543. byteplussdkvpc20250901/models/tag_for_describe_network_interface_attributes_output.py +149 -0
  544. byteplussdkvpc20250901/models/tag_for_describe_network_interfaces_output.py +149 -0
  545. byteplussdkvpc20250901/models/tag_for_describe_route_table_list_output.py +149 -0
  546. byteplussdkvpc20250901/models/tag_for_describe_security_group_attributes_output.py +149 -0
  547. byteplussdkvpc20250901/models/tag_for_describe_security_groups_output.py +149 -0
  548. byteplussdkvpc20250901/models/tag_for_describe_subnet_attributes_output.py +149 -0
  549. byteplussdkvpc20250901/models/tag_for_describe_subnets_output.py +149 -0
  550. byteplussdkvpc20250901/models/tag_for_describe_vpc_attributes_output.py +149 -0
  551. byteplussdkvpc20250901/models/tag_for_describe_vpcs_output.py +149 -0
  552. byteplussdkvpc20250901/models/tag_for_tag_resources_input.py +150 -0
  553. byteplussdkvpc20250901/models/tag_resources_request.py +183 -0
  554. byteplussdkvpc20250901/models/tag_resources_response.py +123 -0
  555. byteplussdkvpc20250901/models/unassign_private_ip_addresses_request.py +150 -0
  556. byteplussdkvpc20250901/models/unassign_private_ip_addresses_response.py +149 -0
  557. byteplussdkvpc20250901/models/untag_resources_request.py +183 -0
  558. byteplussdkvpc20250901/models/untag_resources_response.py +123 -0
  559. byteplussdkvpc20250901/models/vpc_for_describe_vpcs_output.py +539 -0
  560. {byteplus_python_sdk_v2-3.0.43.dist-info → byteplus_python_sdk_v2-3.0.45.dist-info}/WHEEL +0 -0
  561. {byteplus_python_sdk_v2-3.0.43.dist-info → byteplus_python_sdk_v2-3.0.45.dist-info}/licenses/LICENSE.txt +0 -0
  562. {byteplus_python_sdk_v2-3.0.43.dist-info → byteplus_python_sdk_v2-3.0.45.dist-info}/licenses/NOTICE.md +0 -0
@@ -4,10 +4,9 @@ import uuid
4
4
  from datetime import datetime
5
5
 
6
6
  import dateutil.parser
7
+ import dateutil.tz
7
8
 
8
- from byteplussdkcore import UniversalApi, UniversalInfo, ApiClient, Configuration
9
9
  from .provider import Provider, CredentialValue
10
- import json
11
10
 
12
11
 
13
12
  class AssumeRoleSamlCredentials:
@@ -20,25 +19,46 @@ class AssumeRoleSamlCredentials:
20
19
 
21
20
 
22
21
  class StsSamlCredentialProvider(Provider):
23
- def __init__(self, role_name, account_id, provider_name, saml_resp, duration_seconds=3600, scheme='https',
24
- host=None, region=None, timeout=30, expired_buffer_seconds=60, policy=None):
22
+ PROVIDER_NAME = "StsSamlCredentialProvider"
23
+
24
+ def __init__(self, role_name=None, account_id=None, provider_name=None, saml_resp=None,
25
+ duration_seconds=3600, scheme='https',
26
+ host='sts.ap-southeast-1.byteplusapi.com', region='ap-southeast-1', timeout=30, expired_buffer_seconds=60,
27
+ policy=None, role_trn=None, saml_provider_trn=None, max_retries=3, retry_interval=1):
25
28
  self.role_name = role_name
26
29
  self.account_id = account_id
27
30
  self.provider_name = provider_name
28
31
  self.saml_resp = saml_resp
29
32
 
33
+ if role_trn:
34
+ self._role_trn = role_trn
35
+ elif role_name and account_id:
36
+ self._role_trn = 'trn:iam::' + account_id + ':role/' + role_name
37
+ else:
38
+ self._role_trn = None
39
+
40
+ if saml_provider_trn:
41
+ self._saml_provider_trn = saml_provider_trn
42
+ elif provider_name:
43
+ resolved_account_id = account_id or self._extract_account_id_from_role_trn(self._role_trn)
44
+ if resolved_account_id:
45
+ self._saml_provider_trn = 'trn:iam::' + resolved_account_id + ':saml-provider/' + provider_name
46
+ else:
47
+ self._saml_provider_trn = None
48
+ else:
49
+ self._saml_provider_trn = None
50
+
30
51
  self.timeout = timeout
52
+ self.max_retries = max(max_retries, 1)
53
+ self.retry_interval = retry_interval
31
54
  self.duration_seconds = duration_seconds
32
55
 
33
56
  self.host = host
34
57
  self.region = region
35
58
  self.scheme = scheme
36
59
  self.policy = policy
60
+
37
61
  self.expired_time = None
38
- if host is None:
39
- raise ValueError('host is required')
40
- if region is None:
41
- raise ValueError('region is required')
42
62
  if expired_buffer_seconds > 600:
43
63
  raise ValueError('expired_buffer_seconds must be less than or equal to 600')
44
64
  self.expired_buffer_seconds = expired_buffer_seconds
@@ -63,40 +83,65 @@ class StsSamlCredentialProvider(Provider):
63
83
  self.refresh()
64
84
  return self.credentials
65
85
 
86
+ @staticmethod
87
+ def _extract_account_id_from_role_trn(role_trn):
88
+ if not role_trn:
89
+ return None
90
+ parts = role_trn.split(':')
91
+ if len(parts) >= 4 and parts[0] == 'trn' and parts[1] == 'iam' and parts[3]:
92
+ return parts[3]
93
+ return None
94
+
66
95
  def _assume_role_saml(self):
96
+ if not self._role_trn:
97
+ raise RuntimeError(
98
+ "{}: role_trn not provided. Set role_trn or (role_name + account_id).".format(self.PROVIDER_NAME)
99
+ )
100
+ if not self._saml_provider_trn:
101
+ raise RuntimeError(
102
+ "{}: saml_provider_trn not provided. "
103
+ "Set saml_provider_trn, or (account_id + provider_name), "
104
+ "or (role_trn + provider_name).".format(self.PROVIDER_NAME)
105
+ )
106
+ if not self.saml_resp:
107
+ raise RuntimeError(
108
+ "{}: saml_resp is required.".format(self.PROVIDER_NAME)
109
+ )
110
+
67
111
  params = {
68
112
  'DurationSeconds': self.duration_seconds,
69
113
  'RoleSessionName': uuid.uuid4().hex,
70
- 'RoleTrn': 'trn:iam::' + self.account_id + ':role/' + self.role_name,
71
- 'SAMLProviderTrn': 'trn:iam::' + self.account_id + ':saml-provider/' + self.provider_name,
114
+ 'RoleTrn': self._role_trn,
115
+ 'SAMLProviderTrn': self._saml_provider_trn,
72
116
  'SAMLResp': self.saml_resp,
73
117
  }
74
118
  if self.policy is not None:
75
119
  params['Policy'] = self.policy
76
- configuration = type.__call__(Configuration)
77
-
78
- # configuration.ak = self.ak
79
- # configuration.sk = self.sk
80
- configuration.host = self.host
81
- configuration.region = self.region
82
- configuration.scheme = self.scheme
83
- configuration.read_timeout = self.timeout
84
- c = UniversalApi(ApiClient(configuration))
85
- info = UniversalInfo(method='POST', service='sts', version='2018-01-01', action='AssumeRoleWithSAML',
86
- content_type='application/x-www-form-urlencoded')
87
-
88
- resp, status_code, resp_header = c.do_call_with_http_info(info=info, body=params)
89
- if 'Credentials' not in resp:
90
- raise RuntimeError('failed to retrieve credentials from sts' + str(resp_header))
91
- resp_cred = resp['Credentials']
92
-
93
- # Parse the ISO string
94
- dt = dateutil.parser.parse(resp_cred['Expiration'])
95
-
96
- # Convert to timestamp (seconds since epoch)
120
+ from byteplussdkcore import ApiClient, Configuration
121
+ resp_result = ApiClient(Configuration())._sts_call(
122
+ action='AssumeRoleWithSAML',
123
+ version='2018-01-01',
124
+ params=params,
125
+ host=self.host,
126
+ scheme=self.scheme,
127
+ region=self.region,
128
+ timeout=self.timeout,
129
+ max_retries=self.max_retries,
130
+ retry_interval=self.retry_interval,
131
+ provider_name=self.PROVIDER_NAME,
132
+ )
133
+ if 'Credentials' not in resp_result:
134
+ raise RuntimeError(
135
+ 'failed to retrieve credentials from sts: {}:{}'.format(
136
+ self.PROVIDER_NAME, str(resp_result)
137
+ )
138
+ )
139
+ resp_cred = resp_result['Credentials']
140
+
141
+ dt = dateutil.parser.parse(resp_cred.get('Expiration', resp_cred.get('ExpiredTime')))
97
142
  self.expired_time = (dt - datetime(1970, 1, 1, tzinfo=dateutil.tz.tzutc())).total_seconds()
98
143
 
99
144
  self.credentials = CredentialValue(ak=resp_cred['AccessKeyId'],
100
145
  sk=resp_cred['SecretAccessKey'],
101
146
  session_token=resp_cred['SessionToken'],
102
- provider_name='StsSamlCredentialProvider')
147
+ provider_name='StsSamlCredentialProvider')
@@ -287,7 +287,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
287
287
  "OS: {env}\n" \
288
288
  "Python Version: {pyversion}\n" \
289
289
  "Version of the API: 0.1.0\n" \
290
- "SDK Package Version: 3.0.43".\
290
+ "SDK Package Version: 3.0.45".\
291
291
  format(env=sys.platform, pyversion=sys.version)
292
292
 
293
293
  @property
@@ -135,6 +135,34 @@ default_endpoint = {
135
135
  region_endpoint_map={},
136
136
  fallback_endpoint=fallback_endpoint,
137
137
  ),
138
+ 'vepfs': ServiceEndpointInfo(
139
+ service='vepfs',
140
+ is_global=False,
141
+ global_endpoint='',
142
+ region_endpoint_map={},
143
+ fallback_endpoint=fallback_endpoint,
144
+ ),
145
+ 'vke': ServiceEndpointInfo(
146
+ service='vke',
147
+ is_global=False,
148
+ global_endpoint='',
149
+ region_endpoint_map={},
150
+ fallback_endpoint=fallback_endpoint,
151
+ ),
152
+ 'kickart': ServiceEndpointInfo(
153
+ service='kickart',
154
+ is_global=True,
155
+ global_endpoint='',
156
+ region_endpoint_map={},
157
+ fallback_endpoint=fallback_endpoint,
158
+ ),
159
+ 'rds_mssql': ServiceEndpointInfo(
160
+ service='rds_mssql',
161
+ is_global=False,
162
+ global_endpoint='',
163
+ region_endpoint_map={},
164
+ fallback_endpoint=fallback_endpoint,
165
+ ),
138
166
  }
139
167
 
140
168
 
@@ -4,8 +4,6 @@ import re
4
4
  from byteplussdkcore.endpoint.endpoint_provider import EndpointProvider, ResolvedEndpoint
5
5
 
6
6
 
7
- # -----------------------------
8
- # Errors (模仿 volcengineerr.New)
9
7
  # -----------------------------
10
8
  class StandProviderError(Exception):
11
9
  def __init__(self, code, message):
@@ -167,6 +165,7 @@ ServiceInfos = {
167
165
  "vms": ServiceInfo("vms", False),
168
166
  "eco_partner": ServiceInfo("eco_partner", True),
169
167
  "smc": ServiceInfo("smc", True),
168
+ "kickart": ServiceInfo("kickart", True),
170
169
  }
171
170
 
172
171
 
@@ -342,6 +341,6 @@ if __name__ == "__main__":
342
341
  region="cn-hongkon",
343
342
  use_dual_stack=False,
344
343
  )
345
- print(ep.host) # 例如:vpc.ap-southeast-1.volcengine-api.com
344
+ print(ep.host) # 例如:vpc.ap-southeast-1.byteplus-api.com
346
345
  except Exception as e:
347
346
  e.print()
@@ -0,0 +1,6 @@
1
+ # coding: utf-8
2
+ """
3
+ Feature modules for specific service utilities.
4
+
5
+ This package contains specialized utility modules for various BytePlus services.
6
+ """
@@ -0,0 +1,4 @@
1
+ # coding: utf-8
2
+ from byteplussdkcore.feature.rds.connect_utils import build_auth_token
3
+
4
+ __all__ = ['build_auth_token']
@@ -0,0 +1,88 @@
1
+ # coding: utf-8
2
+ """
3
+ RDS MySQL connection authentication utilities.
4
+
5
+ This module provides utilities for generating authentication tokens for RDS MySQL database connections.
6
+ """
7
+
8
+ from byteplussdkcore.endpoint.providers.standard_provider import StandardEndpointResolver
9
+ from byteplussdkcore.interceptor import InterceptorChain, InterceptorContext, SignRequestInterceptor, \
10
+ ResolveEndpointInterceptor
11
+ from byteplussdkcore.interceptor import Request
12
+
13
+ DEFAULT_SERVICE = 'rds_mysql'
14
+ DEFAULT_API_VERSION = '2022-01-01'
15
+ DEFAULT_API = 'ConnectDatabase'
16
+ DEFAULT_EXPIRES = 900
17
+
18
+
19
+ def build_auth_token(api_client, db_user, instance_id, expires=None):
20
+ """
21
+ Build an authentication token (presigned URL query string) for connecting to RDS MySQL database.
22
+
23
+ :param api_client: ApiClient instance
24
+ :param db_user: Database username
25
+ :param instance_id: RDS instance ID
26
+ :param expires: Token expiration time in seconds (default: 900, i.e., 15 minutes)
27
+ :return: Presigned query string for database authentication
28
+ :raises ValueError: If required parameters are missing or invalid
29
+ """
30
+ # Validate api_client
31
+ if api_client is None:
32
+ raise ValueError("api_client must not be None")
33
+
34
+ configuration = api_client.configuration
35
+ region = configuration.region
36
+
37
+ # Validate inputs
38
+ if not region:
39
+ raise ValueError("region must not be empty")
40
+
41
+ if not db_user:
42
+ raise ValueError("db_user must not be empty")
43
+
44
+ if not instance_id:
45
+ raise ValueError("instance_id must not be empty")
46
+
47
+ # Set default expiration time
48
+ if expires is None or expires <= 0:
49
+ expires = DEFAULT_EXPIRES
50
+
51
+ # Build query parameters
52
+ query = {
53
+ 'Action': DEFAULT_API,
54
+ 'Version': DEFAULT_API_VERSION,
55
+ 'X-Expires': str(expires),
56
+ 'DBUser': db_user,
57
+ 'InstanceId': instance_id,
58
+ }
59
+
60
+ # Create Request with presign mode
61
+ request = Request(configuration,
62
+ resource_path='/{}/{}/{}/get/text_plain/'.format(DEFAULT_API, DEFAULT_API_VERSION,
63
+ DEFAULT_SERVICE),
64
+ method='GET',
65
+ query_params=query)
66
+ request.endpoint_provider = StandardEndpointResolver()
67
+ request.service = DEFAULT_SERVICE
68
+ request.is_presign = True
69
+
70
+ context = InterceptorContext(request=request)
71
+
72
+ # Step 1: Resolve endpoint to get host
73
+ resolve_chain = InterceptorChain()
74
+ resolve_chain.append_request_interceptor(ResolveEndpointInterceptor())
75
+ context = resolve_chain.execute_request(context)
76
+
77
+ # Step 2: Save resolved host to X-Host query param, then clear host so it won't be signed
78
+ resolved_host = context.request.host
79
+ context.request.query_params['X-Host'] = '{scheme}://{host}'.format(
80
+ scheme=context.request.scheme, host=resolved_host)
81
+ context.request.host = None
82
+
83
+ # Step 3: Sign request (host is None, won't be included in signature)
84
+ sign_chain = InterceptorChain()
85
+ sign_chain.append_request_interceptor(SignRequestInterceptor())
86
+ context = sign_chain.execute_request(context)
87
+
88
+ return context.request.signed_query
@@ -63,6 +63,10 @@ class Request(object):
63
63
  self.retryer = configuration.retryer
64
64
  self.credential_provider = configuration.credential_provider
65
65
 
66
+ # Presign support
67
+ self.is_presign = False
68
+ self.signed_query = None
69
+
66
70
  self.runtime_options = None
67
71
  if hasattr(body, '_configuration') and isinstance(body._configuration, RuntimeOption):
68
72
  self.runtime_options = body._configuration
@@ -19,7 +19,14 @@ class ResolveEndpointInterceptor(RequestInterceptor):
19
19
  context.request.host = endpoint_resolver.host
20
20
  prefix = endpoint_resolver.url_for(scheme)
21
21
  else:
22
- prefix = scheme + '://' + host
22
+ if host.startswith('https://'):
23
+ prefix = host
24
+ context.request.host = host[len('https://'):]
25
+ elif host.startswith('http://'):
26
+ prefix = host
27
+ context.request.host = host[len('http://'):]
28
+ else:
29
+ prefix = scheme + '://' + host
23
30
  context.request.url = prefix + context.request.true_path
24
31
  sdk_core_logger.debug_endpoint(
25
32
  "Using endpoint: %s", context.request.host
@@ -1,8 +1,11 @@
1
1
  import json
2
+ import threading
2
3
 
3
4
  from byteplussdkcore.signv4 import SignerV4
4
5
  from .interceptor import RequestInterceptor
5
6
 
7
+ _DEFAULT_PROVIDER_INIT_LOCK = threading.Lock()
8
+
6
9
 
7
10
  class SignRequestInterceptor(RequestInterceptor):
8
11
 
@@ -10,25 +13,50 @@ class SignRequestInterceptor(RequestInterceptor):
10
13
  return 'byteplus-sign-request-interceptor'
11
14
 
12
15
  def intercept(self, context):
13
- # 新增代码。处理assume_role和assume_role_oidc和assume_role_saml
16
+ # Auto-inject DefaultCredentialProvider when no credentials are configured
17
+ if context.request.credential_provider is None and not context.request.ak and not context.request.sk:
18
+ from byteplussdkcore.auth.providers.default_provider import DefaultCredentialProvider
19
+ provider = getattr(self, '_default_credential_provider', None)
20
+ if provider is None:
21
+ with _DEFAULT_PROVIDER_INIT_LOCK:
22
+ provider = getattr(self, '_default_credential_provider', None)
23
+ if provider is None:
24
+ provider = DefaultCredentialProvider()
25
+ self._default_credential_provider = provider
26
+ context.request.credential_provider = provider
27
+
28
+ # Resolve credentials from provider (STS AssumeRole / OIDC / SAML / default chain)
14
29
  if context.request.credential_provider is not None:
15
- credentials = context.request.credential_provider.get_credentials() # 这会调用 _assume_role_oidc() 方法获取临时凭证
30
+ credentials = context.request.credential_provider.get_credentials()
16
31
  context.request.ak = credentials.ak
17
32
  context.request.sk = credentials.sk
18
33
  context.request.session_token = credentials.session_token
19
34
 
20
- self.update_params_for_auth(host=context.request.host, path=context.request.true_path,
21
- method=context.request.method,
22
- headers=context.request.header_params,
23
- querys=context.request.query_params,
24
- auth_settings=context.request.auth_settings,
25
- body=context.request.body,
26
- post_params=context.request.post_params,
27
- service=context.request.service,
28
- ak=context.request.ak,
29
- sk=context.request.sk,
30
- session_token=context.request.session_token,
31
- region=context.request.region)
35
+ if context.request.is_presign:
36
+ context.request.signed_query = SignerV4.sign_url(
37
+ path=context.request.true_path,
38
+ method=context.request.method,
39
+ query=context.request.query_params,
40
+ ak=context.request.ak,
41
+ sk=context.request.sk,
42
+ region=context.request.region,
43
+ service=context.request.service,
44
+ session_token=context.request.session_token,
45
+ host=context.request.host,
46
+ )
47
+ else:
48
+ self.update_params_for_auth(host=context.request.host, path=context.request.true_path,
49
+ method=context.request.method,
50
+ headers=context.request.header_params,
51
+ querys=context.request.query_params,
52
+ auth_settings=context.request.auth_settings,
53
+ body=context.request.body,
54
+ post_params=context.request.post_params,
55
+ service=context.request.service,
56
+ ak=context.request.ak,
57
+ sk=context.request.sk,
58
+ session_token=context.request.session_token,
59
+ region=context.request.region)
32
60
  return context
33
61
 
34
62
  @staticmethod
byteplussdkcore/signv4.py CHANGED
@@ -92,3 +92,89 @@ class SignerV4(object):
92
92
  @staticmethod
93
93
  def hmac_sha256(key, msg):
94
94
  return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).digest()
95
+
96
+ @staticmethod
97
+ def sign_url(path, method, query, ak, sk, region, service, session_token=None, host=None):
98
+ """
99
+ Generate presigned URL query string (AWS Signature V4)
100
+
101
+ :param path: Request path
102
+ :param method: HTTP method (GET, POST, etc.)
103
+ :param query: Query parameters dict
104
+ :param ak: Access Key
105
+ :param sk: Secret Key
106
+ :param region: Service region
107
+ :param service: Service name
108
+ :param session_token: Optional session token
109
+ :param host: Optional host header to sign
110
+ :return: Query string with signature
111
+ """
112
+ format_date = datetime.datetime.utcnow().strftime("%Y%m%dT%H%M%SZ")
113
+ date = format_date[:8]
114
+
115
+ # Build credential scope
116
+ credential_scope = '/'.join([date, region, service, 'request'])
117
+
118
+ # Determine if host header should be signed
119
+ sign_host = host is not None and host != ''
120
+
121
+ # Add required query parameters
122
+ query = dict(query) # Make a copy to avoid modifying original
123
+ query['X-Date'] = format_date
124
+ query['X-NotSignBody'] = ''
125
+ query['X-Credential'] = ak + '/' + credential_scope
126
+ query['X-Algorithm'] = 'HMAC-SHA256'
127
+ query['X-SignedHeaders'] = 'host' if sign_host else ''
128
+ query['X-SignedQueries'] = ''
129
+
130
+ # Generate X-SignedQueries BEFORE adding X-Security-Token
131
+ query['X-SignedQueries'] = ';'.join(sorted(query.keys()))
132
+ signed_query_keys = set(query.keys())
133
+
134
+ # X-Security-Token must be added AFTER X-SignedQueries calculation
135
+ if session_token:
136
+ query['X-Security-Token'] = session_token
137
+
138
+ # Build canonical request
139
+ body_hash = hashlib.sha256(b'').hexdigest()
140
+ canonical_query_params = {k: v for k, v in query.items() if k in signed_query_keys}
141
+
142
+ if sign_host:
143
+ canonical_request = '\n'.join([
144
+ method,
145
+ path,
146
+ SignerV4.canonical_query(canonical_query_params),
147
+ 'host:' + host + '\n',
148
+ 'host',
149
+ body_hash
150
+ ])
151
+ else:
152
+ canonical_request = '\n'.join([
153
+ method,
154
+ path,
155
+ SignerV4.canonical_query(canonical_query_params),
156
+ '\n',
157
+ '',
158
+ body_hash
159
+ ])
160
+ sdk_core_logger.debug_sign("[sign_url] canonical_request:\n%s", canonical_request)
161
+
162
+ # Build string to sign
163
+ signing_str = '\n'.join([
164
+ 'HMAC-SHA256',
165
+ format_date,
166
+ credential_scope,
167
+ hashlib.sha256(canonical_request.encode('utf-8')).hexdigest()
168
+ ])
169
+ sdk_core_logger.debug_sign("[sign_url] string_to_sign:\n%s", signing_str)
170
+
171
+ # Calculate signature
172
+ signing_key = SignerV4.get_signing_secret_key_v4(sk, date, region, service)
173
+ signature = hmac.new(signing_key, signing_str.encode('utf-8'), hashlib.sha256).hexdigest()
174
+ sdk_core_logger.debug_sign("[sign_url] calculated signature: %s", signature)
175
+
176
+ # Add signature to query
177
+ query['X-Signature'] = signature
178
+
179
+ # Return encoded query string
180
+ return urlencode(sorted(query.items()))
@@ -10,8 +10,6 @@ from byteplussdkarkruntime import AsyncArk
10
10
 
11
11
  # 2.If you authorize your endpoint with Identity and Access Management(IAM), set your api key to environment variable "BYTEPLUS_ACCESSKEY", "BYTEPLUS_SECRETKEY"
12
12
  # or specify ak&sk by Ark(ak="${YOUR_AK}", sk="${YOUR_SK}").
13
- # To get your ak&sk, please refer to this document(https://www.volcengine.com/docs/6291/65568)
14
- # For more information,please check this document(https://www.volcengine.com/docs/82379/1263279)
15
13
  client = AsyncArk()
16
14
 
17
15
 
@@ -6,10 +6,8 @@ from byteplussdkarkruntime import Ark
6
6
  # Note: If you use an API key, this API key will not be refreshed.
7
7
  # To prevent the API from expiring and failing after some time, choose an API key with no expiration date.
8
8
 
9
- # 2.If you authorize your endpoint with Volcengine Identity and Access Management(IAM), set your api key to environment variable "BYTEPLUS_ACCESSKEY", "BYTEPLUS_SECRETKEY"
9
+ # 2.If you authorize your endpoint with BytePlus Identity and Access Management(IAM), set your api key to environment variable "BYTEPLUS_ACCESSKEY", "BYTEPLUS_SECRETKEY"
10
10
  # or specify ak&sk by Ark(ak="${YOUR_AK}", sk="${YOUR_SK}").
11
- # To get your ak&sk, please refer to this document(https://www.volcengine.com/docs/6291/65568)
12
- # For more information,please check this document(https://www.volcengine.com/docs/82379/1263279)
13
11
  client = Ark()
14
12
 
15
13
  if __name__ == "__main__":
@@ -7,11 +7,9 @@ from byteplussdkarkruntime import Ark
7
7
  # Note: If you use an API key, this API key will not be refreshed.
8
8
  # To prevent the API from expiring and failing after some time, choose an API key with no expiration date.
9
9
 
10
- # 2.If you authorize your endpoint with Volcengine Identity and Access Management(IAM),
10
+ # 2.If you authorize your endpoint with BytePlus Identity and Access Management(IAM),
11
11
  # set your api key to environment variable "BYTEPLUS_ACCESSKEY", "BYTEPLUS_SECRETKEY"
12
12
  # or specify ak&sk by Ark(ak="${YOUR_AK}", sk="${YOUR_SK}").
13
- # To get your ak&sk, please refer to this document(https://www.volcengine.com/docs/6291/65568)
14
- # For more information,please check this document(https://www.volcengine.com/docs/82379/1263279)
15
13
  client = Ark()
16
14
 
17
15
  if __name__ == "__main__":