volcengine-python-sdk 4.0.21__py2.py3-none-any.whl → 4.0.23__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.

Potentially problematic release.


This version of volcengine-python-sdk might be problematic. Click here for more details.

Files changed (490) hide show
  1. {volcengine_python_sdk-4.0.21.dist-info → volcengine_python_sdk-4.0.23.dist-info}/METADATA +1 -1
  2. {volcengine_python_sdk-4.0.21.dist-info → volcengine_python_sdk-4.0.23.dist-info}/RECORD +489 -115
  3. {volcengine_python_sdk-4.0.21.dist-info → volcengine_python_sdk-4.0.23.dist-info}/top_level.txt +1 -0
  4. volcenginesdkarkruntime/_utils/_key_agreement.py +23 -0
  5. volcenginesdkarkruntime/resources/chat/completions.py +13 -3
  6. volcenginesdkarkruntime/resources/responses/responses.py +5 -1
  7. volcenginesdkcloudmonitor/__init__.py +309 -0
  8. volcenginesdkcloudmonitor/api/__init__.py +6 -0
  9. volcenginesdkcloudmonitor/api/cloudmonitor_api.py +6048 -0
  10. volcenginesdkcloudmonitor/models/__init__.py +305 -0
  11. volcenginesdkcloudmonitor/models/alert_notification_for_list_preset_alert_templates_output.py +305 -0
  12. volcenginesdkcloudmonitor/models/applied_rule_for_list_alert_templates_output.py +201 -0
  13. volcenginesdkcloudmonitor/models/applied_rule_for_list_preset_alert_templates_output.py +149 -0
  14. volcenginesdkcloudmonitor/models/apply_object_for_apply_object_groups_by_alert_template_input.py +331 -0
  15. volcenginesdkcloudmonitor/models/apply_object_groups_by_alert_template_request.py +177 -0
  16. volcenginesdkcloudmonitor/models/apply_object_groups_by_alert_template_response.py +123 -0
  17. volcenginesdkcloudmonitor/models/condition_for_create_alert_template_input.py +227 -0
  18. volcenginesdkcloudmonitor/models/condition_for_create_rule_input.py +253 -0
  19. volcenginesdkcloudmonitor/models/condition_for_list_alert_templates_output.py +227 -0
  20. volcenginesdkcloudmonitor/models/condition_for_list_preset_alert_templates_output.py +227 -0
  21. volcenginesdkcloudmonitor/models/condition_for_list_rules_by_ids_output.py +279 -0
  22. volcenginesdkcloudmonitor/models/condition_for_list_rules_output.py +279 -0
  23. volcenginesdkcloudmonitor/models/condition_for_update_alert_template_input.py +227 -0
  24. volcenginesdkcloudmonitor/models/condition_for_update_rule_input.py +253 -0
  25. volcenginesdkcloudmonitor/models/contact_for_list_contact_group_by_ids_output.py +201 -0
  26. volcenginesdkcloudmonitor/models/contact_for_list_contact_groups_output.py +201 -0
  27. volcenginesdkcloudmonitor/models/contact_group_for_list_contacts_output.py +253 -0
  28. volcenginesdkcloudmonitor/models/convert_tag_for_create_rule_input.py +149 -0
  29. volcenginesdkcloudmonitor/models/convert_tag_for_list_rules_by_ids_output.py +149 -0
  30. volcenginesdkcloudmonitor/models/convert_tag_for_list_rules_output.py +149 -0
  31. volcenginesdkcloudmonitor/models/convert_tag_for_update_rule_input.py +149 -0
  32. volcenginesdkcloudmonitor/models/create_alert_template_request.py +282 -0
  33. volcenginesdkcloudmonitor/models/create_alert_template_response.py +123 -0
  34. volcenginesdkcloudmonitor/models/create_contact_group_request.py +176 -0
  35. volcenginesdkcloudmonitor/models/create_contact_group_response.py +123 -0
  36. volcenginesdkcloudmonitor/models/create_contacts_request.py +177 -0
  37. volcenginesdkcloudmonitor/models/create_contacts_response.py +123 -0
  38. volcenginesdkcloudmonitor/models/create_event_rule_request.py +537 -0
  39. volcenginesdkcloudmonitor/models/create_event_rule_response.py +123 -0
  40. volcenginesdkcloudmonitor/models/create_notification_request.py +204 -0
  41. volcenginesdkcloudmonitor/models/create_notification_response.py +123 -0
  42. volcenginesdkcloudmonitor/models/create_notify_template_request.py +277 -0
  43. volcenginesdkcloudmonitor/models/create_notify_template_response.py +123 -0
  44. volcenginesdkcloudmonitor/models/create_object_group_request.py +150 -0
  45. volcenginesdkcloudmonitor/models/create_object_group_response.py +123 -0
  46. volcenginesdkcloudmonitor/models/create_rule_request.py +850 -0
  47. volcenginesdkcloudmonitor/models/create_rule_response.py +123 -0
  48. volcenginesdkcloudmonitor/models/create_silence_policy_request.py +256 -0
  49. volcenginesdkcloudmonitor/models/create_silence_policy_response.py +123 -0
  50. volcenginesdkcloudmonitor/models/create_webhook_request.py +191 -0
  51. volcenginesdkcloudmonitor/models/create_webhook_response.py +123 -0
  52. volcenginesdkcloudmonitor/models/data_for_create_event_rule_output.py +123 -0
  53. volcenginesdkcloudmonitor/models/data_for_delete_event_rule_output.py +123 -0
  54. volcenginesdkcloudmonitor/models/data_for_disable_event_rule_output.py +123 -0
  55. volcenginesdkcloudmonitor/models/data_for_enable_event_rule_output.py +123 -0
  56. volcenginesdkcloudmonitor/models/data_for_get_metric_data_output.py +331 -0
  57. volcenginesdkcloudmonitor/models/data_for_get_top_data_output.py +175 -0
  58. volcenginesdkcloudmonitor/models/data_for_list_alert_group_output.py +513 -0
  59. volcenginesdkcloudmonitor/models/data_for_list_alert_templates_output.py +409 -0
  60. volcenginesdkcloudmonitor/models/data_for_list_contact_group_by_ids_output.py +279 -0
  61. volcenginesdkcloudmonitor/models/data_for_list_contact_groups_output.py +279 -0
  62. volcenginesdkcloudmonitor/models/data_for_list_contacts_by_ids_output.py +201 -0
  63. volcenginesdkcloudmonitor/models/data_for_list_contacts_output.py +227 -0
  64. volcenginesdkcloudmonitor/models/data_for_list_default_notify_templates_output.py +227 -0
  65. volcenginesdkcloudmonitor/models/data_for_list_event_rules_output.py +669 -0
  66. volcenginesdkcloudmonitor/models/data_for_list_events_output.py +279 -0
  67. volcenginesdkcloudmonitor/models/data_for_list_notifications_output.py +305 -0
  68. volcenginesdkcloudmonitor/models/data_for_list_notify_templates_output.py +331 -0
  69. volcenginesdkcloudmonitor/models/data_for_list_object_groups_output.py +305 -0
  70. volcenginesdkcloudmonitor/models/data_for_list_preset_alert_templates_output.py +435 -0
  71. volcenginesdkcloudmonitor/models/data_for_list_rules_by_ids_output.py +929 -0
  72. volcenginesdkcloudmonitor/models/data_for_list_rules_output.py +929 -0
  73. volcenginesdkcloudmonitor/models/data_for_list_send_alert_output.py +253 -0
  74. volcenginesdkcloudmonitor/models/data_for_list_silence_policy_output.py +409 -0
  75. volcenginesdkcloudmonitor/models/data_for_list_webhooks_by_ids_output.py +305 -0
  76. volcenginesdkcloudmonitor/models/data_for_list_webhooks_output.py +305 -0
  77. volcenginesdkcloudmonitor/models/data_for_tag_resources_output.py +149 -0
  78. volcenginesdkcloudmonitor/models/data_for_update_event_rule_output.py +123 -0
  79. volcenginesdkcloudmonitor/models/data_point_for_get_metric_data_output.py +149 -0
  80. volcenginesdkcloudmonitor/models/delete_alert_templates_by_ids_request.py +123 -0
  81. volcenginesdkcloudmonitor/models/delete_alert_templates_by_ids_response.py +123 -0
  82. volcenginesdkcloudmonitor/models/delete_contact_group_by_ids_request.py +123 -0
  83. volcenginesdkcloudmonitor/models/delete_contact_group_by_ids_response.py +123 -0
  84. volcenginesdkcloudmonitor/models/delete_contacts_by_ids_request.py +123 -0
  85. volcenginesdkcloudmonitor/models/delete_contacts_by_ids_response.py +123 -0
  86. volcenginesdkcloudmonitor/models/delete_event_rule_request.py +123 -0
  87. volcenginesdkcloudmonitor/models/delete_event_rule_response.py +123 -0
  88. volcenginesdkcloudmonitor/models/delete_notifications_by_ids_request.py +123 -0
  89. volcenginesdkcloudmonitor/models/delete_notifications_by_ids_response.py +123 -0
  90. volcenginesdkcloudmonitor/models/delete_notify_templates_by_ids_request.py +123 -0
  91. volcenginesdkcloudmonitor/models/delete_notify_templates_by_ids_response.py +123 -0
  92. volcenginesdkcloudmonitor/models/delete_object_group_request.py +124 -0
  93. volcenginesdkcloudmonitor/models/delete_object_group_response.py +123 -0
  94. volcenginesdkcloudmonitor/models/delete_rules_by_ids_request.py +123 -0
  95. volcenginesdkcloudmonitor/models/delete_rules_by_ids_response.py +123 -0
  96. volcenginesdkcloudmonitor/models/delete_silence_policy_by_ids_request.py +123 -0
  97. volcenginesdkcloudmonitor/models/delete_silence_policy_by_ids_response.py +123 -0
  98. volcenginesdkcloudmonitor/models/delete_webhooks_by_ids_request.py +123 -0
  99. volcenginesdkcloudmonitor/models/delete_webhooks_by_ids_response.py +123 -0
  100. volcenginesdkcloudmonitor/models/dimension_conditions_for_create_object_group_input.py +201 -0
  101. volcenginesdkcloudmonitor/models/dimension_conditions_for_create_rule_input.py +201 -0
  102. volcenginesdkcloudmonitor/models/dimension_conditions_for_list_rules_by_ids_output.py +201 -0
  103. volcenginesdkcloudmonitor/models/dimension_conditions_for_list_rules_output.py +201 -0
  104. volcenginesdkcloudmonitor/models/dimension_conditions_for_update_object_group_input.py +201 -0
  105. volcenginesdkcloudmonitor/models/dimension_conditions_for_update_rule_input.py +201 -0
  106. volcenginesdkcloudmonitor/models/dimension_for_get_metric_data_input.py +149 -0
  107. volcenginesdkcloudmonitor/models/dimension_for_get_metric_data_output.py +149 -0
  108. volcenginesdkcloudmonitor/models/dimension_for_get_top_data_input.py +149 -0
  109. volcenginesdkcloudmonitor/models/disable_event_rule_request.py +123 -0
  110. volcenginesdkcloudmonitor/models/disable_event_rule_response.py +123 -0
  111. volcenginesdktransitrouter/models/accept_shared_transit_router_request.py → volcenginesdkcloudmonitor/models/disable_preset_alert_template_request.py +22 -22
  112. volcenginesdkcloudmonitor/models/disable_preset_alert_template_response.py +123 -0
  113. volcenginesdkcloudmonitor/models/effect_time_for_create_silence_policy_input.py +149 -0
  114. volcenginesdkcloudmonitor/models/effect_time_for_list_silence_policy_output.py +149 -0
  115. volcenginesdkcloudmonitor/models/effect_time_for_update_silence_policy_input.py +149 -0
  116. volcenginesdkcloudmonitor/models/effective_time_for_create_event_rule_input.py +149 -0
  117. volcenginesdkcloudmonitor/models/effective_time_for_update_event_rule_input.py +149 -0
  118. volcenginesdkcloudmonitor/models/enable_event_rule_request.py +123 -0
  119. volcenginesdkcloudmonitor/models/enable_event_rule_response.py +123 -0
  120. volcenginesdkcloudmonitor/models/enable_preset_alert_template_request.py +387 -0
  121. volcenginesdkcloudmonitor/models/enable_preset_alert_template_response.py +123 -0
  122. volcenginesdkcloudmonitor/models/get_metric_data_request.py +308 -0
  123. volcenginesdkcloudmonitor/models/get_metric_data_response.py +123 -0
  124. volcenginesdkcloudmonitor/models/get_top_data_request.py +357 -0
  125. volcenginesdkcloudmonitor/models/get_top_data_response.py +123 -0
  126. volcenginesdkcloudmonitor/models/instance_for_get_metric_data_input.py +123 -0
  127. volcenginesdkcloudmonitor/models/instance_for_get_top_data_input.py +123 -0
  128. volcenginesdkcloudmonitor/models/level_condition_for_create_alert_template_input.py +156 -0
  129. volcenginesdkcloudmonitor/models/level_condition_for_create_rule_input.py +149 -0
  130. volcenginesdkcloudmonitor/models/level_condition_for_list_alert_templates_output.py +149 -0
  131. volcenginesdkcloudmonitor/models/level_condition_for_list_preset_alert_templates_output.py +149 -0
  132. volcenginesdkcloudmonitor/models/level_condition_for_list_rules_by_ids_output.py +149 -0
  133. volcenginesdkcloudmonitor/models/level_condition_for_list_rules_output.py +149 -0
  134. volcenginesdkcloudmonitor/models/level_condition_for_update_alert_template_input.py +156 -0
  135. volcenginesdkcloudmonitor/models/level_condition_for_update_rule_input.py +149 -0
  136. volcenginesdkcloudmonitor/models/list_alert_group_request.py +357 -0
  137. volcenginesdkcloudmonitor/models/list_alert_group_response.py +253 -0
  138. volcenginesdkcloudmonitor/models/list_alert_templates_request.py +253 -0
  139. volcenginesdkcloudmonitor/models/list_alert_templates_response.py +201 -0
  140. volcenginesdkcloudmonitor/models/list_contact_group_by_ids_request.py +123 -0
  141. volcenginesdkcloudmonitor/models/list_contact_group_by_ids_response.py +123 -0
  142. volcenginesdkcloudmonitor/models/list_contact_groups_request.py +175 -0
  143. volcenginesdkcloudmonitor/models/list_contact_groups_response.py +201 -0
  144. volcenginesdkcloudmonitor/models/list_contacts_by_ids_request.py +123 -0
  145. volcenginesdkcloudmonitor/models/list_contacts_by_ids_response.py +123 -0
  146. volcenginesdktransitrouter/models/describe_transit_router_grant_rules_request.py → volcenginesdkcloudmonitor/models/list_contacts_request.py +69 -44
  147. volcenginesdkcloudmonitor/models/list_contacts_response.py +201 -0
  148. volcenginesdkcloudmonitor/models/list_default_notify_templates_request.py +198 -0
  149. volcenginesdkcloudmonitor/models/list_default_notify_templates_response.py +123 -0
  150. volcenginesdkcloudmonitor/models/list_event_rules_request.py +279 -0
  151. volcenginesdkcloudmonitor/models/list_event_rules_response.py +253 -0
  152. volcenginesdkcloudmonitor/models/list_events_request.py +364 -0
  153. volcenginesdkcloudmonitor/models/list_events_response.py +253 -0
  154. volcenginesdkcloudmonitor/models/list_notifications_request.py +261 -0
  155. volcenginesdkcloudmonitor/models/list_notifications_response.py +201 -0
  156. volcenginesdkcloudmonitor/models/list_notify_templates_request.py +275 -0
  157. volcenginesdkcloudmonitor/models/list_notify_templates_response.py +201 -0
  158. volcenginesdkcloudmonitor/models/list_object_groups_request.py +227 -0
  159. volcenginesdktransitrouter/models/describe_transit_router_grant_rules_response.py → volcenginesdkcloudmonitor/models/list_object_groups_response.py +47 -47
  160. volcenginesdkcloudmonitor/models/list_preset_alert_templates_request.py +227 -0
  161. volcenginesdkcloudmonitor/models/list_preset_alert_templates_response.py +201 -0
  162. volcenginesdkcloudmonitor/models/list_rules_by_ids_request.py +123 -0
  163. volcenginesdkcloudmonitor/models/list_rules_by_ids_response.py +123 -0
  164. volcenginesdkcloudmonitor/models/list_rules_request.py +357 -0
  165. volcenginesdkcloudmonitor/models/list_rules_response.py +201 -0
  166. volcenginesdkcloudmonitor/models/list_send_alert_request.py +176 -0
  167. volcenginesdkcloudmonitor/models/list_send_alert_response.py +201 -0
  168. volcenginesdkcloudmonitor/models/list_silence_policy_request.py +305 -0
  169. volcenginesdkcloudmonitor/models/list_silence_policy_response.py +201 -0
  170. volcenginesdkcloudmonitor/models/list_webhooks_by_ids_request.py +123 -0
  171. volcenginesdkcloudmonitor/models/list_webhooks_by_ids_response.py +123 -0
  172. volcenginesdkcloudmonitor/models/list_webhooks_request.py +331 -0
  173. volcenginesdkcloudmonitor/models/list_webhooks_response.py +253 -0
  174. volcenginesdkcloudmonitor/models/message_queue_for_create_event_rule_input.py +331 -0
  175. volcenginesdkcloudmonitor/models/message_queue_for_list_event_rules_output.py +227 -0
  176. volcenginesdkcloudmonitor/models/message_queue_for_update_event_rule_input.py +331 -0
  177. volcenginesdkcloudmonitor/models/meta_condition_for_create_object_group_input.py +175 -0
  178. volcenginesdkcloudmonitor/models/meta_condition_for_create_rule_input.py +175 -0
  179. volcenginesdkcloudmonitor/models/meta_condition_for_create_silence_policy_input.py +149 -0
  180. volcenginesdkcloudmonitor/models/meta_condition_for_list_rules_by_ids_output.py +175 -0
  181. volcenginesdkcloudmonitor/models/meta_condition_for_list_rules_output.py +175 -0
  182. volcenginesdkcloudmonitor/models/meta_condition_for_list_silence_policy_output.py +149 -0
  183. volcenginesdkcloudmonitor/models/meta_condition_for_update_object_group_input.py +175 -0
  184. volcenginesdkcloudmonitor/models/meta_condition_for_update_rule_input.py +175 -0
  185. volcenginesdkcloudmonitor/models/meta_condition_for_update_silence_policy_input.py +149 -0
  186. volcenginesdkcloudmonitor/models/meta_for_create_object_group_input.py +175 -0
  187. volcenginesdkcloudmonitor/models/meta_for_create_rule_input.py +175 -0
  188. volcenginesdkcloudmonitor/models/meta_for_create_silence_policy_input.py +175 -0
  189. volcenginesdkcloudmonitor/models/meta_for_list_rules_by_ids_output.py +175 -0
  190. volcenginesdkcloudmonitor/models/meta_for_list_rules_output.py +175 -0
  191. volcenginesdktransitrouter/models/delete_transit_router_grant_rule_request.py → volcenginesdkcloudmonitor/models/meta_for_list_silence_policy_output.py +61 -37
  192. volcenginesdkcloudmonitor/models/meta_for_update_object_group_input.py +175 -0
  193. volcenginesdkcloudmonitor/models/meta_for_update_rule_input.py +175 -0
  194. volcenginesdkcloudmonitor/models/meta_for_update_silence_policy_input.py +175 -0
  195. volcenginesdkcloudmonitor/models/metric_data_result_for_get_metric_data_output.py +175 -0
  196. volcenginesdkcloudmonitor/models/modify_state_of_silence_policy_by_ids_request.py +157 -0
  197. volcenginesdkcloudmonitor/models/modify_state_of_silence_policy_by_ids_response.py +123 -0
  198. volcenginesdkcloudmonitor/models/no_data_for_create_alert_template_input.py +175 -0
  199. volcenginesdkcloudmonitor/models/no_data_for_create_rule_input.py +149 -0
  200. volcenginesdkcloudmonitor/models/no_data_for_list_alert_templates_output.py +175 -0
  201. volcenginesdkcloudmonitor/models/no_data_for_list_preset_alert_templates_output.py +175 -0
  202. volcenginesdkcloudmonitor/models/no_data_for_update_alert_template_input.py +175 -0
  203. volcenginesdkcloudmonitor/models/no_data_for_update_rule_input.py +149 -0
  204. volcenginesdkcloudmonitor/models/notification_for_create_notification_input.py +242 -0
  205. volcenginesdkcloudmonitor/models/notification_for_list_notifications_output.py +227 -0
  206. volcenginesdkcloudmonitor/models/notification_for_update_notification_input.py +242 -0
  207. volcenginesdkcloudmonitor/models/notify_template_for_apply_object_groups_by_alert_template_input.py +156 -0
  208. volcenginesdkcloudmonitor/models/notify_template_for_create_event_rule_input.py +156 -0
  209. volcenginesdkcloudmonitor/models/notify_template_for_create_notification_input.py +156 -0
  210. volcenginesdkcloudmonitor/models/notify_template_for_create_rule_input.py +156 -0
  211. volcenginesdkcloudmonitor/models/notify_template_for_enable_preset_alert_template_input.py +156 -0
  212. volcenginesdkcloudmonitor/models/notify_template_for_list_alert_templates_output.py +149 -0
  213. volcenginesdkcloudmonitor/models/notify_template_for_list_event_rules_output.py +149 -0
  214. volcenginesdkcloudmonitor/models/notify_template_for_list_notifications_output.py +149 -0
  215. volcenginesdkcloudmonitor/models/notify_template_for_list_preset_alert_templates_output.py +149 -0
  216. volcenginesdkcloudmonitor/models/notify_template_for_list_rules_by_ids_output.py +149 -0
  217. volcenginesdkcloudmonitor/models/notify_template_for_list_rules_output.py +149 -0
  218. volcenginesdkcloudmonitor/models/notify_template_for_update_event_rule_input.py +156 -0
  219. volcenginesdkcloudmonitor/models/notify_template_for_update_notification_input.py +156 -0
  220. volcenginesdkcloudmonitor/models/notify_template_for_update_rule_input.py +156 -0
  221. volcenginesdkcloudmonitor/models/object_for_create_object_group_input.py +227 -0
  222. volcenginesdkcloudmonitor/models/object_for_list_object_groups_output.py +279 -0
  223. volcenginesdkcloudmonitor/models/object_for_update_object_group_input.py +227 -0
  224. volcenginesdkcloudmonitor/models/object_group_for_list_alert_templates_output.py +357 -0
  225. volcenginesdkcloudmonitor/models/project_condition_for_create_object_group_input.py +123 -0
  226. volcenginesdkcloudmonitor/models/project_condition_for_create_rule_input.py +123 -0
  227. volcenginesdkcloudmonitor/models/project_condition_for_list_rules_by_ids_output.py +123 -0
  228. volcenginesdkcloudmonitor/models/project_condition_for_list_rules_output.py +123 -0
  229. volcenginesdkcloudmonitor/models/project_condition_for_update_object_group_input.py +123 -0
  230. volcenginesdkcloudmonitor/models/project_condition_for_update_rule_input.py +123 -0
  231. volcenginesdkcloudmonitor/models/range_for_create_silence_policy_input.py +201 -0
  232. volcenginesdkcloudmonitor/models/range_for_list_silence_policy_output.py +201 -0
  233. volcenginesdkcloudmonitor/models/range_for_update_silence_policy_input.py +201 -0
  234. volcenginesdkcloudmonitor/models/recovery_notify_for_create_alert_template_input.py +123 -0
  235. volcenginesdkcloudmonitor/models/recovery_notify_for_create_rule_input.py +123 -0
  236. volcenginesdkcloudmonitor/models/recovery_notify_for_list_alert_templates_output.py +123 -0
  237. volcenginesdkcloudmonitor/models/recovery_notify_for_list_preset_alert_templates_output.py +123 -0
  238. volcenginesdkcloudmonitor/models/recovery_notify_for_list_rules_by_ids_output.py +123 -0
  239. volcenginesdkcloudmonitor/models/recovery_notify_for_list_rules_output.py +123 -0
  240. volcenginesdkcloudmonitor/models/recovery_notify_for_update_alert_template_input.py +123 -0
  241. volcenginesdkcloudmonitor/models/recovery_notify_for_update_rule_input.py +123 -0
  242. volcenginesdkcloudmonitor/models/rule_for_list_object_groups_output.py +201 -0
  243. volcenginesdkcloudmonitor/models/send_result_for_list_send_alert_output.py +227 -0
  244. volcenginesdkcloudmonitor/models/set_state_of_rules_by_ids_request.py +157 -0
  245. volcenginesdkcloudmonitor/models/set_state_of_rules_by_ids_response.py +123 -0
  246. volcenginesdkcloudmonitor/models/silence_conditions_for_create_silence_policy_input.py +175 -0
  247. volcenginesdkcloudmonitor/models/silence_conditions_for_list_silence_policy_output.py +201 -0
  248. volcenginesdkcloudmonitor/models/silence_conditions_for_update_silence_policy_input.py +175 -0
  249. volcenginesdkcloudmonitor/models/tag_condition_for_create_object_group_input.py +149 -0
  250. volcenginesdkcloudmonitor/models/tag_condition_for_create_rule_input.py +149 -0
  251. volcenginesdkcloudmonitor/models/tag_condition_for_list_rules_by_ids_output.py +149 -0
  252. volcenginesdkcloudmonitor/models/tag_condition_for_list_rules_output.py +149 -0
  253. volcenginesdkcloudmonitor/models/tag_condition_for_update_object_group_input.py +149 -0
  254. volcenginesdkcloudmonitor/models/tag_condition_for_update_rule_input.py +149 -0
  255. volcenginesdkcloudmonitor/models/tag_for_create_object_group_input.py +175 -0
  256. volcenginesdkcloudmonitor/models/tag_for_create_rule_input.py +175 -0
  257. volcenginesdkcloudmonitor/models/tag_for_list_rules_by_ids_output.py +175 -0
  258. volcenginesdkcloudmonitor/models/tag_for_list_rules_output.py +175 -0
  259. volcenginesdkcloudmonitor/models/tag_for_tag_resources_input.py +149 -0
  260. volcenginesdkcloudmonitor/models/tag_for_update_object_group_input.py +175 -0
  261. volcenginesdkcloudmonitor/models/tag_for_update_rule_input.py +175 -0
  262. volcenginesdkcloudmonitor/models/tag_resources_request.py +176 -0
  263. volcenginesdkcloudmonitor/models/tag_resources_response.py +123 -0
  264. volcenginesdkcloudmonitor/models/template_detail_for_list_object_groups_output.py +149 -0
  265. volcenginesdkcloudmonitor/models/template_rule_for_create_alert_template_input.py +279 -0
  266. volcenginesdkcloudmonitor/models/template_rule_for_list_alert_templates_output.py +331 -0
  267. volcenginesdkcloudmonitor/models/template_rule_for_list_preset_alert_templates_output.py +331 -0
  268. volcenginesdkcloudmonitor/models/template_rule_for_update_alert_template_input.py +279 -0
  269. volcenginesdkcloudmonitor/models/tls_target_for_create_event_rule_input.py +227 -0
  270. volcenginesdkcloudmonitor/models/tls_target_for_list_event_rules_output.py +227 -0
  271. volcenginesdkcloudmonitor/models/tls_target_for_update_event_rule_input.py +227 -0
  272. volcenginesdkcloudmonitor/models/top_data_result_for_get_top_data_output.py +149 -0
  273. volcenginesdkcloudmonitor/models/untag_resources_request.py +176 -0
  274. volcenginesdkcloudmonitor/models/untag_resources_response.py +123 -0
  275. volcenginesdkcloudmonitor/models/update_alert_template_request.py +309 -0
  276. volcenginesdkcloudmonitor/models/update_alert_template_response.py +123 -0
  277. volcenginesdktransitrouter/models/create_transit_router_grant_rule_request.py → volcenginesdkcloudmonitor/models/update_contact_group_request.py +40 -41
  278. volcenginesdkcloudmonitor/models/update_contact_group_response.py +123 -0
  279. volcenginesdkcloudmonitor/models/update_contact_group_with_contacts_request.py +150 -0
  280. volcenginesdkcloudmonitor/models/update_contact_group_with_contacts_response.py +123 -0
  281. volcenginesdkcloudmonitor/models/update_contacts_request.py +204 -0
  282. volcenginesdkcloudmonitor/models/update_contacts_response.py +123 -0
  283. volcenginesdkcloudmonitor/models/update_contacts_with_contact_groups_request.py +150 -0
  284. volcenginesdkcloudmonitor/models/update_contacts_with_contact_groups_response.py +123 -0
  285. volcenginesdkcloudmonitor/models/update_event_rule_request.py +564 -0
  286. volcenginesdkcloudmonitor/models/update_event_rule_response.py +123 -0
  287. volcenginesdkcloudmonitor/models/update_notification_request.py +231 -0
  288. volcenginesdkcloudmonitor/models/update_notification_response.py +123 -0
  289. volcenginesdkcloudmonitor/models/update_notify_template_request.py +304 -0
  290. volcenginesdkcloudmonitor/models/update_notify_template_response.py +123 -0
  291. volcenginesdkcloudmonitor/models/update_object_group_request.py +177 -0
  292. volcenginesdkcloudmonitor/models/update_object_group_response.py +123 -0
  293. volcenginesdkcloudmonitor/models/update_rule_request.py +851 -0
  294. volcenginesdkcloudmonitor/models/update_rule_response.py +123 -0
  295. volcenginesdkcloudmonitor/models/update_silence_policy_request.py +283 -0
  296. volcenginesdkcloudmonitor/models/update_silence_policy_response.py +123 -0
  297. volcenginesdkcloudmonitor/models/update_webhook_request.py +205 -0
  298. volcenginesdkcloudmonitor/models/update_webhook_response.py +123 -0
  299. volcenginesdkcore/api_client.py +74 -7
  300. volcenginesdkcore/auth/__init__.py +1 -1
  301. volcenginesdkcore/auth/providers/__init__.py +2 -0
  302. volcenginesdkcore/auth/providers/provider.py +4 -0
  303. volcenginesdkcore/auth/providers/sts_oidc_provider.py +96 -0
  304. volcenginesdkcore/auth/providers/sts_provider.py +9 -4
  305. volcenginesdkcore/auth/providers/sts_saml_provider.py +100 -0
  306. volcenginesdkcore/configuration.py +17 -4
  307. volcenginesdkcore/endpoint/providers/default_provider.py +59 -4
  308. volcenginesdkcore/interceptor/interceptors/request.py +1 -0
  309. volcenginesdkcore/interceptor/interceptors/sign_request_interceptor.py +7 -0
  310. volcenginesdkcore/observability/__init__.py +0 -0
  311. volcenginesdkcore/observability/debugger.py +235 -0
  312. volcenginesdkcore/rest.py +67 -1
  313. volcenginesdkcore/retryer/retry_condition.py +8 -3
  314. volcenginesdkcore/signv4.py +8 -0
  315. volcenginesdkecs/__init__.py +12 -0
  316. volcenginesdkecs/api/ecs_api.py +291 -0
  317. volcenginesdkecs/models/__init__.py +12 -0
  318. volcenginesdkecs/models/create_hpc_cluster_request.py +53 -1
  319. volcenginesdkecs/models/describe_hpc_clusters_request.py +53 -1
  320. volcenginesdkecs/models/describe_system_event_default_action_request.py +124 -0
  321. volcenginesdkecs/models/describe_system_event_default_action_response.py +175 -0
  322. volcenginesdkecs/models/extra_info_for_describe_system_event_default_action_output.py +95 -0
  323. volcenginesdkecs/models/hpc_cluster_for_describe_hpc_clusters_output.py +53 -1
  324. volcenginesdkecs/models/instance_for_describe_instances_output.py +27 -1
  325. volcenginesdkecs/models/modify_system_event_default_action_request.py +210 -0
  326. volcenginesdkecs/models/modify_system_event_default_action_response.py +149 -0
  327. volcenginesdkecs/models/rdma_network_interface_detail_for_describe_instances_output.py +227 -0
  328. volcenginesdkecs/models/related_system_event_for_describe_system_event_default_action_output.py +383 -0
  329. volcenginesdkecs/models/report_instances_status_request.py +280 -0
  330. volcenginesdktransitrouter/models/reject_shared_transit_router_response.py → volcenginesdkecs/models/report_instances_status_response.py +6 -6
  331. volcenginesdkecs/models/tag_filter_for_describe_hpc_clusters_input.py +149 -0
  332. volcenginesdkecs/models/tag_for_create_hpc_cluster_input.py +149 -0
  333. volcenginesdkecs/models/tag_for_describe_hpc_clusters_output.py +149 -0
  334. volcenginesdkprivatezone/__init__.py +1 -1
  335. volcenginesdkprivatezone/models/__init__.py +1 -1
  336. volcenginesdkprivatezone/models/{ip_configs_for_update_resolver_endpoint_input.py → ip_config_for_update_resolver_endpoint_input.py} +21 -21
  337. volcenginesdkprivatezone/models/update_resolver_endpoint_request.py +3 -3
  338. volcenginesdkredis/__init__.py +2 -0
  339. volcenginesdkredis/api/redis_api.py +97 -0
  340. volcenginesdkredis/models/__init__.py +2 -0
  341. volcenginesdkredis/models/instance_for_describe_db_instances_output.py +27 -1
  342. volcenginesdkredis/models/modify_db_instance_private_dns_visibility_request.py +177 -0
  343. volcenginesdkredis/models/modify_db_instance_private_dns_visibility_response.py +95 -0
  344. volcenginesdkredis/models/visit_addr_for_describe_db_instance_detail_output.py +29 -3
  345. volcenginesdktag/models/get_tag_keys_request.py +60 -1
  346. volcenginesdktag/models/get_tag_values_request.py +62 -3
  347. volcenginesdktag/models/get_tags_request.py +34 -1
  348. volcenginesdktransitrouter/__init__.py +1 -13
  349. volcenginesdktransitrouter/api/transitrouter_api.py +0 -582
  350. volcenginesdktransitrouter/models/__init__.py +1 -13
  351. volcenginesdktransitrouter/models/create_transit_router_vpc_attachment_request.py +27 -1
  352. volcenginesdktransitrouter/models/describe_transit_router_flow_logs_response.py +79 -1
  353. volcenginesdktransitrouter/models/describe_transit_router_multicast_groups_response.py +79 -1
  354. volcenginesdktransitrouter/models/describe_transit_router_route_entries_request.py +27 -1
  355. volcenginesdktransitrouter/models/describe_transit_router_route_entries_response.py +3 -55
  356. volcenginesdktransitrouter/models/models.py +1960 -1935
  357. volcenginesdktransitrouter/models/modify_transit_router_vpc_attachment_attributes_request.py +27 -1
  358. volcenginesdktransitrouter/models/modify_transit_router_vpn_attachment_attributes_request.py +27 -1
  359. volcenginesdktransitrouter/models/tag_for_describe_transit_router_flow_logs_output.py +149 -0
  360. volcenginesdktransitrouter/models/transit_router_attachment_for_describe_transit_router_peer_attachments_output.py +3 -3
  361. volcenginesdktransitrouter/models/transit_router_attachment_for_describe_transit_router_vpc_attachments_output.py +53 -1
  362. volcenginesdktransitrouter/models/transit_router_attachment_for_describe_transit_router_vpn_attachments_output.py +30 -4
  363. volcenginesdktransitrouter/models/transit_router_flow_log_for_describe_transit_router_flow_logs_output.py +27 -1
  364. volcenginesdktransitrouter/models/transit_router_for_describe_transit_routers_output.py +27 -1
  365. volcenginesdktransitrouter/models/transit_router_route_entry_for_describe_transit_router_route_entries_output.py +53 -1
  366. volcenginesdkvedbm/__init__.py +54 -0
  367. volcenginesdkvedbm/api/vedbm_api.py +2193 -253
  368. volcenginesdkvedbm/models/__init__.py +54 -0
  369. volcenginesdkvedbm/models/authorized_allow_list_for_describe_instance_allow_lists_output.py +279 -0
  370. volcenginesdkvedbm/models/cancel_schedule_events_request.py +149 -0
  371. volcenginesdktransitrouter/models/accept_shared_transit_router_response.py → volcenginesdkvedbm/models/cancel_schedule_events_response.py +6 -6
  372. volcenginesdkvedbm/models/change_master_request.py +151 -0
  373. volcenginesdkvedbm/models/change_master_response.py +95 -0
  374. volcenginesdkvedbm/models/charge_item_price_for_describe_db_instance_price_detail_output.py +227 -0
  375. volcenginesdkvedbm/models/charge_item_price_for_describe_exist_db_instance_price_output.py +227 -0
  376. volcenginesdkvedbm/models/charge_item_price_for_describe_storage_payable_price_output.py +227 -0
  377. volcenginesdkvedbm/models/config_item_price_for_describe_db_instance_price_detail_output.py +331 -0
  378. volcenginesdkvedbm/models/config_item_price_for_describe_exist_db_instance_price_output.py +331 -0
  379. volcenginesdkvedbm/models/create_db_instance_request.py +1 -1
  380. volcenginesdkvedbm/models/describe_availability_zones_request.py +123 -0
  381. volcenginesdkvedbm/models/describe_availability_zones_response.py +149 -0
  382. volcenginesdkvedbm/models/describe_db_instance_parameter_change_history_request.py +256 -0
  383. volcenginesdkvedbm/models/describe_db_instance_parameter_change_history_response.py +149 -0
  384. volcenginesdkvedbm/models/describe_db_instance_price_detail_request.py +328 -0
  385. volcenginesdkvedbm/models/describe_db_instance_price_detail_response.py +279 -0
  386. volcenginesdkvedbm/models/describe_db_instance_specs_request.py +95 -0
  387. volcenginesdkvedbm/models/describe_db_instance_specs_response.py +149 -0
  388. volcenginesdktransitrouter/models/reject_shared_transit_router_request.py → volcenginesdkvedbm/models/describe_db_instance_version_request.py +22 -22
  389. volcenginesdkvedbm/models/describe_db_instance_version_response.py +175 -0
  390. volcenginesdkvedbm/models/describe_exist_db_instance_price_request.py +248 -0
  391. volcenginesdkvedbm/models/describe_exist_db_instance_price_response.py +279 -0
  392. volcenginesdkvedbm/models/describe_instance_allow_lists_request.py +124 -0
  393. volcenginesdkvedbm/models/describe_instance_allow_lists_response.py +149 -0
  394. volcenginesdkvedbm/models/describe_modifiable_parameters_request.py +199 -0
  395. volcenginesdkvedbm/models/describe_modifiable_parameters_response.py +123 -0
  396. volcenginesdkvedbm/models/describe_regions_request.py +95 -0
  397. volcenginesdkvedbm/models/describe_regions_response.py +123 -0
  398. volcenginesdkvedbm/models/describe_schedule_events_request.py +347 -0
  399. volcenginesdkvedbm/models/describe_schedule_events_response.py +149 -0
  400. volcenginesdkvedbm/models/describe_storage_payable_price_request.py +131 -0
  401. volcenginesdkvedbm/models/describe_storage_payable_price_response.py +123 -0
  402. volcenginesdkvedbm/models/instance_for_describe_exist_db_instance_price_input.py +208 -0
  403. volcenginesdkvedbm/models/modify_allow_list_request.py +1 -1
  404. volcenginesdkvedbm/models/modify_db_endpoint_address_request.py +237 -0
  405. volcenginesdktransitrouter/models/create_transit_router_grant_rule_response.py → volcenginesdkvedbm/models/modify_db_endpoint_address_response.py +6 -6
  406. volcenginesdkvedbm/models/modify_db_endpoint_dns_request.py +95 -0
  407. volcenginesdkvedbm/models/modify_db_endpoint_dns_response.py +95 -0
  408. volcenginesdkvedbm/models/modify_db_instance_charge_type_request.py +295 -0
  409. volcenginesdkvedbm/models/modify_db_instance_charge_type_response.py +149 -0
  410. volcenginesdkvedbm/models/modify_db_instance_deletion_protection_policy_request.py +158 -0
  411. volcenginesdktransitrouter/models/modify_transit_router_grant_rule_attributes_response.py → volcenginesdkvedbm/models/modify_db_instance_deletion_protection_policy_response.py +6 -6
  412. volcenginesdkvedbm/models/modify_db_instance_maintenance_window_request.py +151 -0
  413. volcenginesdkvedbm/models/modify_db_instance_maintenance_window_response.py +95 -0
  414. volcenginesdkvedbm/models/modify_db_node_config_request.py +176 -0
  415. volcenginesdkvedbm/models/modify_db_node_config_response.py +95 -0
  416. volcenginesdkvedbm/models/modify_schedule_events_request.py +182 -0
  417. volcenginesdkvedbm/models/modify_schedule_events_response.py +95 -0
  418. volcenginesdkvedbm/models/node_for_describe_db_instance_detail_output.py +27 -1
  419. volcenginesdkvedbm/models/node_for_describe_db_instances_output.py +27 -1
  420. volcenginesdkvedbm/models/node_spec_for_describe_db_instance_specs_output.py +305 -0
  421. volcenginesdkvedbm/models/node_spec_for_describe_exist_db_instance_price_input.py +182 -0
  422. volcenginesdkvedbm/models/parameter_change_history_for_describe_db_instance_parameter_change_history_output.py +227 -0
  423. volcenginesdkvedbm/models/parameter_for_describe_modifiable_parameters_output.py +357 -0
  424. volcenginesdkvedbm/models/region_for_describe_regions_output.py +149 -0
  425. volcenginesdkvedbm/models/restart_db_instance_request.py +29 -3
  426. volcenginesdkvedbm/models/restore_to_new_instance_request.py +1 -1
  427. volcenginesdkvedbm/models/schedule_tasks_info_for_describe_schedule_events_output.py +435 -0
  428. volcenginesdktransitrouter/models/modify_transit_router_grant_rule_attributes_request.py → volcenginesdkvedbm/models/zone_for_describe_availability_zones_output.py +39 -41
  429. volcenginesdkvod20250101/__init__.py +18 -0
  430. volcenginesdkvod20250101/api/vod20250101_api.py +194 -0
  431. volcenginesdkvod20250101/models/__init__.py +18 -0
  432. volcenginesdkvod20250101/models/bilingual_subtitle_for_get_ai_translation_project_output.py +253 -0
  433. volcenginesdkvod20250101/models/clip_audio_for_create_ai_translation_utterance_output.py +253 -0
  434. volcenginesdkvod20250101/models/clip_video_for_create_ai_translation_utterance_output.py +253 -0
  435. volcenginesdkvod20250101/models/convert_highlight_cuts_for_get_execution_output.py +149 -0
  436. volcenginesdkvod20250101/models/convert_highlight_for_get_execution_output.py +27 -1
  437. volcenginesdkvod20250101/models/create_ai_translation_utterance_request.py +232 -0
  438. volcenginesdkvod20250101/models/create_ai_translation_utterance_response.py +201 -0
  439. volcenginesdkvod20250101/models/highlight_cuts_for_get_execution_output.py +201 -0
  440. volcenginesdkvod20250101/models/highlight_cuts_for_start_execution_input.py +201 -0
  441. volcenginesdkvod20250101/models/highlight_for_get_execution_output.py +53 -1
  442. volcenginesdkvod20250101/models/highlight_for_start_execution_input.py +53 -1
  443. volcenginesdkvod20250101/models/opening_hook_for_get_execution_output.py +227 -0
  444. volcenginesdkvod20250101/models/opening_hook_for_start_execution_input.py +227 -0
  445. volcenginesdkvod20250101/models/project_info_for_get_ai_translation_project_output.py +27 -1
  446. volcenginesdkvod20250101/models/remove_ai_translation_utterance_request.py +178 -0
  447. volcenginesdktransitrouter/models/delete_transit_router_grant_rule_response.py → volcenginesdkvod20250101/models/remove_ai_translation_utterance_response.py +6 -6
  448. volcenginesdkvod20250101/models/source_clip_for_create_ai_translation_utterance_output.py +279 -0
  449. volcenginesdkvod20250101/models/source_utterance_for_create_ai_translation_utterance_output.py +357 -0
  450. volcenginesdkvod20250101/models/storyboard_for_get_execution_output.py +253 -0
  451. volcenginesdkvod20250101/models/subtitle_recognition_config_for_get_ai_translation_project_output.py +81 -3
  452. volcenginesdkvod20250101/models/subtitle_recognition_config_for_list_ai_translation_project_output.py +81 -3
  453. volcenginesdkvod20250101/models/subtitle_recognition_config_for_submit_ai_translation_workflow_input.py +81 -3
  454. volcenginesdkvod20250101/models/target_clip_for_create_ai_translation_utterance_output.py +279 -0
  455. volcenginesdkvod20250101/models/target_utterance_for_create_ai_translation_utterance_output.py +357 -0
  456. volcenginesdkvod20250101/models/trim_for_create_ai_translation_utterance_output.py +149 -0
  457. volcenginesdkvod20250101/models/update_ai_translation_utterances_request.py +27 -1
  458. volcenginesdkvod20250101/models/vision_for_get_execution_output.py +53 -1
  459. volcenginesdkvod20250101/models/vision_for_start_execution_input.py +53 -1
  460. volcenginesdkvpn/__init__.py +4 -0
  461. volcenginesdkvpn/models/__init__.py +4 -0
  462. volcenginesdkvpn/models/bgp_config_for_modify_vpn_connection_tunnel_attributes_input.py +149 -0
  463. volcenginesdkvpn/models/bgp_info_for_describe_vpn_connection_attributes_output.py +3 -3
  464. volcenginesdkvpn/models/bgp_info_for_describe_vpn_connections_output.py +3 -3
  465. volcenginesdkvpn/models/convert_bgp_config_for_create_vpn_connection_input.py +149 -0
  466. volcenginesdkvpn/models/convert_bgp_config_for_modify_vpn_connection_attributes_input.py +149 -0
  467. volcenginesdkvpn/models/create_customer_gateway_request.py +34 -1
  468. volcenginesdkvpn/models/create_ssl_vpn_server_request.py +34 -1
  469. volcenginesdkvpn/models/create_vpn_connection_request.py +27 -1
  470. volcenginesdkvpn/models/create_vpn_gateway_request.py +53 -1
  471. volcenginesdkvpn/models/customer_gateway_for_describe_customer_gateways_output.py +27 -1
  472. volcenginesdkvpn/models/describe_customer_gateways_request.py +27 -1
  473. volcenginesdkvpn/models/describe_vpn_connection_attributes_response.py +27 -1
  474. volcenginesdkvpn/models/describe_vpn_gateway_attributes_response.py +53 -1
  475. volcenginesdkvpn/models/describe_vpn_gateways_request.py +79 -1
  476. volcenginesdkvpn/models/modify_ssl_vpn_server_request.py +34 -1
  477. volcenginesdkvpn/models/modify_vpn_connection_attributes_request.py +53 -1
  478. volcenginesdkvpn/models/modify_vpn_connection_tunnel_attributes_request.py +27 -1
  479. volcenginesdkvpn/models/ssl_vpn_server_for_describe_ssl_vpn_servers_output.py +27 -1
  480. volcenginesdkvpn/models/tunnel_bgp_info_for_describe_vpn_connection_attributes_output.py +279 -0
  481. volcenginesdkvpn/models/tunnel_option_for_create_vpn_connection_input.py +27 -1
  482. volcenginesdkvpn/models/tunnel_option_for_describe_vpn_connection_attributes_output.py +27 -1
  483. volcenginesdkvpn/models/tunnel_option_for_describe_vpn_connections_output.py +27 -1
  484. volcenginesdkvpn/models/tunnel_option_for_modify_vpn_connection_attributes_input.py +27 -1
  485. volcenginesdkvpn/models/vpn_gateway_for_describe_vpn_gateways_billing_output.py +53 -1
  486. volcenginesdkvpn/models/vpn_gateway_for_describe_vpn_gateways_output.py +53 -1
  487. volcenginesdktransitrouter/models/transit_router_grant_rule_for_describe_transit_router_grant_rules_output.py +0 -253
  488. {volcengine_python_sdk-4.0.21.dist-info → volcengine_python_sdk-4.0.23.dist-info}/WHEEL +0 -0
  489. {volcengine_python_sdk-4.0.21.dist-info → volcengine_python_sdk-4.0.23.dist-info}/licenses/LICENSE.txt +0 -0
  490. {volcengine_python_sdk-4.0.21.dist-info → volcengine_python_sdk-4.0.23.dist-info}/licenses/NOTICE.md +0 -0
@@ -0,0 +1,100 @@
1
+ import threading
2
+ import time
3
+ import uuid
4
+ from datetime import datetime
5
+
6
+ import dateutil.parser
7
+
8
+ from volcenginesdkcore import UniversalApi, UniversalInfo, ApiClient, Configuration
9
+ from .provider import Provider, CredentialValue
10
+ import json
11
+
12
+
13
+ class AssumeRoleSamlCredentials:
14
+ def __init__(self, ak, sk, session_token, current_time, expired_time):
15
+ self.ak = ak
16
+ self.sk = sk
17
+ self.session_token = session_token
18
+ self.current_time = current_time
19
+ self.expired_time = expired_time
20
+
21
+
22
+ class StsSamlCredentialProvider(Provider):
23
+ def __init__(self, role_name, account_id, provider_name, saml_resp, duration_seconds=3600, scheme='https',
24
+ host='sts.volcengineapi.com', region='cn-beijing', timeout=30, expired_buffer_seconds=60, policy=None):
25
+ # self.ak = ak
26
+ # self.sk = sk
27
+ self.role_name = role_name
28
+ self.account_id = account_id
29
+ self.provider_name = provider_name
30
+ self.saml_resp = saml_resp
31
+
32
+ self.timeout = timeout
33
+ self.duration_seconds = duration_seconds
34
+
35
+ self.host = host
36
+ self.region = region
37
+ self.scheme = scheme
38
+ self.policy = policy
39
+ self.expired_time = None
40
+ if expired_buffer_seconds > 600:
41
+ raise ValueError('expired_buffer_seconds must be less than or equal to 600')
42
+ self.expired_buffer_seconds = expired_buffer_seconds
43
+
44
+ self.credentials = None
45
+
46
+ self._lock = threading.Lock()
47
+
48
+ def retrieve(self):
49
+ return self.credentials
50
+
51
+ def is_expired(self):
52
+ return (self.credentials is None or
53
+ (self.expired_time and self.expired_time < time.time() + self.expired_buffer_seconds))
54
+
55
+ def refresh(self):
56
+ with self._lock:
57
+ if self.is_expired():
58
+ self._assume_role_saml()
59
+
60
+ def get_credentials(self):
61
+ self.refresh()
62
+ return self.credentials
63
+
64
+ def _assume_role_saml(self):
65
+ params = {
66
+ 'DurationSeconds': self.duration_seconds,
67
+ 'RoleSessionName': uuid.uuid4().hex,
68
+ 'RoleTrn': 'trn:iam::' + self.account_id + ':role/' + self.role_name,
69
+ 'SAMLProviderTrn': 'trn:iam::' + self.account_id + ':saml-provider/' + self.provider_name,
70
+ 'SAMLResp': self.saml_resp,
71
+ }
72
+ if self.policy is not None:
73
+ params['Policy'] = self.policy
74
+ configuration = type.__call__(Configuration)
75
+
76
+ # configuration.ak = self.ak
77
+ # configuration.sk = self.sk
78
+ configuration.host = self.host
79
+ configuration.region = self.region
80
+ configuration.scheme = self.scheme
81
+ configuration.read_timeout = self.timeout
82
+ c = UniversalApi(ApiClient(configuration))
83
+ info = UniversalInfo(method='POST', service='sts', version='2018-01-01', action='AssumeRoleWithSAML',
84
+ content_type='application/x-www-form-urlencoded')
85
+
86
+ resp, status_code, resp_header = c.do_call_with_http_info(info=info, body=params)
87
+ if 'Credentials' not in resp:
88
+ raise RuntimeError('failed to retrieve credentials from sts' + str(resp_header))
89
+ resp_cred = resp['Credentials']
90
+
91
+ # Parse the ISO string
92
+ dt = dateutil.parser.parse(resp_cred['Expiration'])
93
+
94
+ # Convert to timestamp (seconds since epoch)
95
+ self.expired_time = (dt - datetime(1970, 1, 1, tzinfo=dateutil.tz.tzutc())).total_seconds()
96
+
97
+ self.credentials = CredentialValue(ak=resp_cred['AccessKeyId'],
98
+ sk=resp_cred['SecretAccessKey'],
99
+ session_token=resp_cred['SessionToken'],
100
+ provider_name='StsSamlCredentialProvider')
@@ -12,6 +12,7 @@ import six
12
12
  from six.moves import http_client as httplib
13
13
 
14
14
  from volcenginesdkcore.endpoint import DefaultEndpointProvider
15
+ from volcenginesdkcore.observability.debugger import sdk_core_logger
15
16
  from volcenginesdkcore.retryer.retryer import DEFAULT_RETRYER
16
17
 
17
18
 
@@ -87,7 +88,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
87
88
 
88
89
  # Logging Settings
89
90
  self.logger = {}
90
- self.logger["package_logger"] = logging.getLogger("volcenginesdkcore")
91
+ self.logger["package_logger"] = sdk_core_logger
91
92
  self.logger["urllib3_logger"] = logging.getLogger("urllib3")
92
93
  # Log format
93
94
  self.logger_format = '%(asctime)s %(levelname)s %(message)s'
@@ -137,6 +138,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
137
138
  self.client_side_validation = True
138
139
 
139
140
  self.endpoint_provider = DefaultEndpointProvider()
141
+ self.credential_provider = None
140
142
 
141
143
  self.auto_retry = True
142
144
  self.__retryer = DEFAULT_RETRYER
@@ -208,14 +210,14 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
208
210
  for _, logger in six.iteritems(self.logger):
209
211
  logger.setLevel(logging.DEBUG)
210
212
  # turn on httplib debug
211
- httplib.HTTPConnection.debuglevel = 1
213
+ #httplib.HTTPConnection.debuglevel = 1
212
214
  else:
213
215
  # if debug status is False, turn off debug logging,
214
216
  # setting log level to default `logging.WARNING`
215
217
  for _, logger in six.iteritems(self.logger):
216
218
  logger.setLevel(logging.WARNING)
217
219
  # turn off httplib debug
218
- httplib.HTTPConnection.debuglevel = 0
220
+ #httplib.HTTPConnection.debuglevel = 0
219
221
 
220
222
  @property
221
223
  def logger_format(self):
@@ -239,6 +241,9 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
239
241
  """
240
242
  self.__logger_format = value
241
243
  self.logger_formatter = logging.Formatter(self.__logger_format)
244
+ for _, lg in six.iteritems(self.logger):
245
+ for h in lg.handlers:
246
+ h.setFormatter(self.logger_formatter)
242
247
 
243
248
  def get_api_key_with_prefix(self, identifier):
244
249
  """Gets API key (with prefix if set).
@@ -267,7 +272,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
267
272
  "OS: {env}\n" \
268
273
  "Python Version: {pyversion}\n" \
269
274
  "Version of the API: 0.1.0\n" \
270
- "SDK Package Version: 4.0.21".\
275
+ "SDK Package Version: 4.0.23".\
271
276
  format(env=sys.platform, pyversion=sys.version)
272
277
 
273
278
  @property
@@ -334,3 +339,11 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
334
339
  @property
335
340
  def retryer(self):
336
341
  return self.__retryer
342
+
343
+ @property
344
+ def log_level(self):
345
+ return sdk_core_logger.get_log_level()
346
+
347
+ @log_level.setter
348
+ def log_level(self, value):
349
+ sdk_core_logger.set_log_level(value)
@@ -3,6 +3,7 @@ import os
3
3
  import warnings
4
4
 
5
5
  from volcenginesdkcore.endpoint.endpoint_provider import EndpointProvider, ResolvedEndpoint
6
+ from volcenginesdkcore.observability.debugger import sdk_core_logger
6
7
 
7
8
  open_prefix = 'open'
8
9
  endpoint_suffix = '.volcengineapi.com'
@@ -29,14 +30,36 @@ class ServiceEndpointInfo:
29
30
  return self.service.lower().replace('_', '-')
30
31
 
31
32
  def get_endpoint_for(self, region, suffix=endpoint_suffix):
33
+ sdk_core_logger.debug_endpoint(
34
+ "get_endpoint_for start: service=%s, region=%s, suffix=%s",
35
+ self.service, region, suffix
36
+ )
32
37
  if self.is_global:
33
38
  if self.global_endpoint:
39
+ sdk_core_logger.debug_endpoint(
40
+ "use global endpoint: service=%s, endpoint=%s",
41
+ self.service, self.global_endpoint
42
+ )
34
43
  return self.global_endpoint
35
- return self.__standardize_domain_service_code + suffix
44
+
45
+ endpoint = self.__standardize_domain_service_code + suffix
46
+ sdk_core_logger.debug_endpoint(
47
+ "build global endpoint from service code: %s", endpoint
48
+ )
49
+ return endpoint
36
50
  if region in self.region_endpoint_map:
37
- return self.region_endpoint_map[region]
51
+ endpoint = self.region_endpoint_map[region]
52
+ sdk_core_logger.debug_endpoint(
53
+ "use region endpoint from map: service=%s, region=%s, endpoint=%s",
54
+ self.service, region, endpoint
55
+ )
56
+ return endpoint
38
57
 
39
- return self.__standardize_domain_service_code + '.' + region + suffix
58
+ endpoint = self.__standardize_domain_service_code + '.' + region + suffix
59
+ sdk_core_logger.debug_endpoint(
60
+ "build region endpoint by default rule: %s", endpoint
61
+ )
62
+ return endpoint
40
63
 
41
64
 
42
65
  default_endpoint = {
@@ -483,9 +506,21 @@ class DefaultEndpointProvider(EndpointProvider):
483
506
  self.custom_endpoints = custom_endpoints or {}
484
507
 
485
508
  def get_default_endpoint(self, service, region, suffix=endpoint_suffix):
509
+ sdk_core_logger.debug_endpoint(
510
+ "get_default_endpoint: service=%s, region=%s, suffix=%s",
511
+ service, region, suffix
512
+ )
486
513
  if service in default_endpoint:
487
514
  e = default_endpoint[service]
488
- return e.get_endpoint_for(region, suffix)
515
+ endpoint = e.get_endpoint_for(region, suffix)
516
+ sdk_core_logger.debug_endpoint(
517
+ "resolved default endpoint: service=%s, endpoint=%s",
518
+ service, endpoint
519
+ )
520
+ return endpoint
521
+ sdk_core_logger.debug_endpoint(
522
+ "service not found in default_endpoint, use fallback=%s", fallback_endpoint
523
+ )
489
524
  return fallback_endpoint
490
525
 
491
526
  def __in_bootstrap_region_list(self, region, custom_bootstrap_region):
@@ -525,20 +560,36 @@ class DefaultEndpointProvider(EndpointProvider):
525
560
  return use_dual_stack
526
561
 
527
562
  def endpoint_for(self, service, region, custom_bootstrap_region=None, use_dual_stack=None, **kwargs):
563
+ sdk_core_logger.debug_endpoint(
564
+ "endpoint_for called: service=%s, region=%s, custom_bootstrap_region=%s, use_dual_stack=%s",
565
+ service, region, custom_bootstrap_region, use_dual_stack
566
+ )
528
567
  if service in self.custom_endpoints:
529
568
  conf = self.custom_endpoints[service]
530
569
  host = conf.get_endpoint_for(region)
570
+ sdk_core_logger.debug_endpoint(
571
+ "use custom endpoint: service=%s, region=%s, host=%s",
572
+ service, region, host
573
+ )
531
574
  return ResolvedEndpoint(host)
532
575
 
533
576
  if custom_bootstrap_region is None:
534
577
  custom_bootstrap_region = {}
535
578
 
536
579
  if not self.__in_bootstrap_region_list(region, custom_bootstrap_region):
580
+ sdk_core_logger.debug_endpoint(
581
+ "region=%s not in bootstrap list, fallback=%s",
582
+ region, fallback_endpoint
583
+ )
537
584
  return ResolvedEndpoint(fallback_endpoint)
538
585
 
539
586
  suffix = dualstack_endpoint_suffix if self.__has_enabled_dualstack(use_dual_stack) else endpoint_suffix
540
587
  host = self.get_default_endpoint(service=service, region=region, suffix=suffix)
541
588
 
589
+ sdk_core_logger.debug_endpoint(
590
+ "final resolved endpoint: service=%s, region=%s, host=%s",
591
+ service, region, host
592
+ )
542
593
  return ResolvedEndpoint(host)
543
594
 
544
595
 
@@ -547,4 +598,8 @@ class HostEndpointProvider(EndpointProvider):
547
598
  self.host = host
548
599
 
549
600
  def endpoint_for(self, service, region, **kwargs):
601
+ sdk_core_logger.debug_endpoint(
602
+ "HostEndpointProvider.endpoint_for: service=%s, region=%s, host=%s",
603
+ service, region, self.host
604
+ )
550
605
  return ResolvedEndpoint(self.host)
@@ -61,6 +61,7 @@ class Request(object):
61
61
  # retryer setting, default use global configration if value not set
62
62
  self.auto_retry = configuration.auto_retry
63
63
  self.retryer = configuration.retryer
64
+ self.credential_provider = configuration.credential_provider
64
65
 
65
66
  self.runtime_options = None
66
67
  if hasattr(body, '_configuration') and isinstance(body._configuration, RuntimeOption):
@@ -10,6 +10,13 @@ class SignRequestInterceptor(RequestInterceptor):
10
10
  return 'volcengine-sign-request-interceptor'
11
11
 
12
12
  def intercept(self, context):
13
+ # 新增代码。处理assume_role和assume_role_oidc和assume_role_saml
14
+ if context.request.credential_provider is not None:
15
+ credentials = context.request.credential_provider.get_credentials() # 这会调用 _assume_role_oidc() 方法获取临时凭证
16
+ context.request.ak = credentials.ak
17
+ context.request.sk = credentials.sk
18
+ context.request.session_token = credentials.session_token
19
+
13
20
  self.update_params_for_auth(host=context.request.host, path=context.request.true_path,
14
21
  method=context.request.method,
15
22
  headers=context.request.header_params,
File without changes
@@ -0,0 +1,235 @@
1
+ # coding: utf-8
2
+
3
+ from __future__ import print_function
4
+
5
+ import logging
6
+
7
+ # Try using Enum (which comes with Py3 / you can pip install enum34 for Py2)
8
+ try:
9
+ from enum import Enum
10
+ except Exception:
11
+ Enum = None
12
+
13
+ SDK_DEBUGGER_LOG_NAME = "com.volcengine.sdkcore"
14
+
15
+
16
+ if Enum is not None:
17
+ # ========== Implementation based on Enum (preferred) ==========
18
+ class LogLevel(Enum):
19
+ # Base bit (starting from low bit 0)
20
+ LOG_DEBUG_OFF = (0,)
21
+ LOG_DEBUG_WITH_REQUEST = (1,)
22
+ LOG_DEBUG_WITH_REQUEST_BODY = (2, 'LOG_DEBUG_WITH_REQUEST')
23
+ LOG_DEBUG_WITH_REQUEST_ID = (3, 'LOG_DEBUG_WITH_REQUEST')
24
+ LOG_DEBUG_WITH_RESPONSE = (4, 'LOG_DEBUG_WITH_REQUEST')
25
+ LOG_DEBUG_WITH_RESPONSE_BODY = (5, 'LOG_DEBUG_WITH_RESPONSE')
26
+ LOG_DEBUG_WITH_SIGNING = (6, 'LOG_DEBUG_WITH_REQUEST')
27
+ LOG_DEBUG_WITH_ENDPOINT = (7, 'LOG_DEBUG_WITH_REQUEST')
28
+ LOG_DEBUG_WITH_REQUEST_RETRIES = (8, 'LOG_DEBUG_WITH_REQUEST')
29
+ LOG_DEBUG_WITH_CONFIG = (9, 'LOG_DEBUG_WITH_REQUEST')
30
+ # Special: represents "include all debug items", mask will be assigned dynamically after class definition
31
+ LOG_DEBUG_ALL = (-1,)
32
+
33
+ def __init__(self, bit_index, *parents):
34
+ # Record bit index
35
+ object.__setattr__(self, 'bit_index', bit_index)
36
+
37
+ # Calculate mask; ALL uses -1 as a placeholder, assigned later
38
+ if bit_index >= 0:
39
+ m = 1 << bit_index
40
+ cls = type(self) # Key: do not directly use class name, compatible during enum construction
41
+ for p in parents:
42
+ parent = p if isinstance(p, cls) else cls[p]
43
+ m |= parent.mask
44
+ object.__setattr__(self, 'mask', m)
45
+ else:
46
+ object.__setattr__(self, 'mask', 0)
47
+
48
+ @classmethod
49
+ def combine(cls, *modes):
50
+ """Combine multiple modes into flags"""
51
+ if not modes:
52
+ return cls.LOG_DEBUG_OFF.mask
53
+ f = 0
54
+ for m in modes:
55
+ f |= m.mask
56
+ return f
57
+
58
+ def matches(self, flags):
59
+ """Check whether the current mode is contained in flags"""
60
+ return (flags & self.mask) == self.mask
61
+
62
+ # Calculate mask for LOG_DEBUG_ALL after class loading
63
+ _all = 0
64
+ for lv in LogLevel:
65
+ if lv not in (LogLevel.LOG_DEBUG_OFF, LogLevel.LOG_DEBUG_ALL):
66
+ _all |= lv.mask
67
+ object.__setattr__(LogLevel.LOG_DEBUG_ALL, 'mask', _all)
68
+
69
+ else:
70
+ # ========== Pure Python fallback implementation when Enum is not available ==========
71
+ class _Level(object):
72
+ __slots__ = ('name', 'bit_index', 'mask')
73
+
74
+ def __init__(self, name, bit_index, parents=None):
75
+ self.name = name
76
+ self.bit_index = bit_index
77
+ if bit_index >= 0:
78
+ m = 1 << bit_index
79
+ if parents:
80
+ for p in parents:
81
+ m |= p.mask
82
+ self.mask = m
83
+ else:
84
+ self.mask = 0 # Placeholder, ALL will be assigned later by OR-ing all masks
85
+
86
+ def matches(self, flags):
87
+ return (flags & self.mask) == self.mask
88
+
89
+ def __repr__(self):
90
+ return '<LogLevel {0} mask=0x{1:X}>'.format(self.name, self.mask)
91
+
92
+ class LogLevel(object):
93
+ """Enum fallback container: provides the same constants and API as Enum"""
94
+ # Define base and parent levels first
95
+ LOG_DEBUG_OFF = _Level('LOG_DEBUG_OFF', 0)
96
+ LOG_DEBUG_WITH_REQUEST = _Level('LOG_DEBUG_WITH_REQUEST', 1)
97
+
98
+ LOG_DEBUG_WITH_RESPONSE = _Level('LOG_DEBUG_WITH_RESPONSE', 4, [LOG_DEBUG_WITH_REQUEST])
99
+
100
+ # Levels dependent on parents
101
+ LOG_DEBUG_WITH_REQUEST_BODY = _Level('LOG_DEBUG_WITH_REQUEST_BODY', 2, [LOG_DEBUG_WITH_REQUEST])
102
+ LOG_DEBUG_WITH_REQUEST_ID = _Level('LOG_DEBUG_WITH_REQUEST_ID', 3, [LOG_DEBUG_WITH_REQUEST])
103
+ LOG_DEBUG_WITH_RESPONSE_BODY = _Level('LOG_DEBUG_WITH_RESPONSE_BODY', 5, [LOG_DEBUG_WITH_RESPONSE])
104
+ LOG_DEBUG_WITH_SIGNING = _Level('LOG_DEBUG_WITH_SIGNING', 6, [LOG_DEBUG_WITH_REQUEST])
105
+ LOG_DEBUG_WITH_ENDPOINT = _Level('LOG_DEBUG_WITH_ENDPOINT', 7, [LOG_DEBUG_WITH_REQUEST])
106
+ LOG_DEBUG_WITH_REQUEST_RETRIES = _Level('LOG_DEBUG_WITH_REQUEST_RETRIES', 8, [LOG_DEBUG_WITH_REQUEST])
107
+ LOG_DEBUG_WITH_CONFIG = _Level('LOG_DEBUG_WITH_CONFIG', 9, [LOG_DEBUG_WITH_REQUEST])
108
+
109
+ LOG_DEBUG_ALL = _Level('LOG_DEBUG_ALL', -1) # Placeholder, will be OR-ed later
110
+
111
+ @classmethod
112
+ def _all_levels(cls):
113
+ # Used for internal aggregation
114
+ return [
115
+ cls.LOG_DEBUG_OFF,
116
+ cls.LOG_DEBUG_WITH_REQUEST,
117
+ cls.LOG_DEBUG_WITH_REQUEST_BODY,
118
+ cls.LOG_DEBUG_WITH_REQUEST_ID,
119
+ cls.LOG_DEBUG_WITH_RESPONSE,
120
+ cls.LOG_DEBUG_WITH_RESPONSE_BODY,
121
+ cls.LOG_DEBUG_WITH_SIGNING,
122
+ cls.LOG_DEBUG_WITH_ENDPOINT,
123
+ cls.LOG_DEBUG_WITH_REQUEST_RETRIES,
124
+ cls.LOG_DEBUG_WITH_CONFIG,
125
+ cls.LOG_DEBUG_ALL,
126
+ ]
127
+
128
+ @classmethod
129
+ def combine(cls, *modes):
130
+ if not modes:
131
+ return cls.LOG_DEBUG_OFF.mask
132
+ f = 0
133
+ for m in modes:
134
+ f |= m.mask
135
+ return f
136
+
137
+ # Calculate mask for LOG_DEBUG_ALL
138
+ _all_mask = 0
139
+ for _lv in LogLevel._all_levels():
140
+ if _lv.name not in ('LOG_DEBUG_OFF', 'LOG_DEBUG_ALL'):
141
+ _all_mask |= _lv.mask
142
+ LogLevel.LOG_DEBUG_ALL.mask = _all_mask
143
+
144
+
145
+ class SdkCoreLogger(logging.Logger):
146
+
147
+ def __init__(self, name, debug=False, log_level=0):
148
+ # In Python 2.7, must explicitly call parent __init__
149
+ if debug:
150
+ logging.Logger.__init__(self, name, logging.DEBUG)
151
+ else:
152
+ logging.Logger.__init__(self, name, logging.WARNING)
153
+ self._log_level = int(log_level)
154
+
155
+ # ---- Custom bit control ----
156
+ def set_log_level(self, log_level):
157
+ self._log_level = int(log_level)
158
+
159
+ def get_log_level(self):
160
+ return self._log_level
161
+
162
+ def is_enabled_for_loglevel(self, level_enum):
163
+ # Does not change logging's native level semantics, only adds an extra bit filter
164
+ return level_enum.matches(self._log_level)
165
+
166
+ @staticmethod
167
+ def get_sdk_logger(name,
168
+ debug=False,
169
+ log_level=0,
170
+ fmt="%(asctime)s [%(threadName)s] %(levelname)s %(name)s:%(lineno)d - %(message)s",
171
+ datefmt="%Y-%m-%d %H:%M:%S"):
172
+ """
173
+ Create an SdkLogger with Handler.
174
+ - base_level: standard logging minimum level
175
+ - log_flags: your custom LogLevel bitmask
176
+ """
177
+ # No global pollution: only subclass used for the returned logger
178
+ # If you want to globally setLoggerClass, call logging.setLoggerClass(SdkLogger) at module init
179
+ logger = SdkCoreLogger(name, debug=debug, log_level=log_level)
180
+
181
+ if not logger.handlers:
182
+ h = logging.StreamHandler()
183
+ if debug:
184
+ h.setLevel(logging.DEBUG)
185
+ else:
186
+ h.setLevel(logging.WARNING)
187
+ try:
188
+ formatter = logging.Formatter(fmt=fmt, datefmt=datefmt)
189
+ except TypeError:
190
+ # Compatibility with very old logging versions (almost never used)
191
+ formatter = logging.Formatter(fmt)
192
+ h.setFormatter(formatter)
193
+ logger.addHandler(h)
194
+
195
+ logger.propagate = False # Avoid bubbling up to root logger
196
+ return logger
197
+
198
+ # ---- New API: debug with "function bit" ----
199
+ def debugx(self, curr_log_level_enum, msg, *args, **kwargs):
200
+ """
201
+ Debug with "function bit".
202
+ Conditions:
203
+ 1) Standard logging level allowed (Logger.level / Handler.level)
204
+ 2) Custom bit included (self._log_level)
205
+ Only then will it output.
206
+ """
207
+ if self.isEnabledFor(logging.DEBUG) and self.is_enabled_for_loglevel(curr_log_level_enum):
208
+ # Keep consistent with logging convention, parameters use % placeholder, formatted in Handler/Formatter
209
+ self.debug(msg, *args, **kwargs)
210
+
211
+ def debug_sign(self, msg, *args, **kwargs):
212
+ self.debugx(LogLevel.LOG_DEBUG_WITH_SIGNING, "[Sign] " + msg, *args, **kwargs)
213
+
214
+ def debug_endpoint(self, msg, *args, **kwargs):
215
+ self.debugx(LogLevel.LOG_DEBUG_WITH_ENDPOINT, "[Endpoint] " + msg, *args, **kwargs)
216
+
217
+ def debug_retry(self, msg, *args, **kwargs):
218
+ self.debugx(LogLevel.LOG_DEBUG_WITH_REQUEST, "[Retry] " + msg, *args, **kwargs)
219
+
220
+ def debug_config(self, msg, *args, **kwargs):
221
+ self.debugx(LogLevel.LOG_DEBUG_WITH_CONFIG, "[Config] " + msg, *args, **kwargs)
222
+
223
+ def debug_request(self, msg, *args, is_body=False, **kwargs):
224
+ if is_body:
225
+ self.debugx(LogLevel.LOG_DEBUG_WITH_REQUEST_BODY, "[Request] " + msg, *args, **kwargs)
226
+ else:
227
+ self.debugx(LogLevel.LOG_DEBUG_WITH_REQUEST, "[Request] " + msg, *args, **kwargs)
228
+
229
+ def debug_response(self, msg, *args, is_body=False, **kwargs):
230
+ if is_body:
231
+ self.debugx(LogLevel.LOG_DEBUG_WITH_RESPONSE_BODY, "[Response] " + msg, *args, **kwargs)
232
+ else:
233
+ self.debugx(LogLevel.LOG_DEBUG_WITH_RESPONSE, "[Response] " + msg, *args, **kwargs)
234
+
235
+ sdk_core_logger = SdkCoreLogger.get_sdk_logger(SDK_DEBUGGER_LOG_NAME, debug=False, log_level=LogLevel.LOG_DEBUG_ALL.mask)
volcenginesdkcore/rest.py CHANGED
@@ -15,6 +15,8 @@ import six
15
15
  from six.moves.urllib.parse import urlencode
16
16
  from urllib3 import Retry
17
17
 
18
+ from volcenginesdkcore.observability.debugger import sdk_core_logger, LogLevel
19
+
18
20
  try:
19
21
  import urllib3
20
22
  except ImportError:
@@ -39,6 +41,68 @@ class RESTResponse(io.IOBase):
39
41
  """Returns a given response header."""
40
42
  return self.urllib3_response.getheader(name, default)
41
43
 
44
+
45
+ def log_request(method, url, query_params, headers, body, post_params, request_time_out):
46
+ sdk_core_logger.debug_request("request url: %s %s", method, url)
47
+ if request_time_out:
48
+ sdk_core_logger.debug_request("request timeout: %s", request_time_out)
49
+
50
+ if query_params:
51
+ sdk_core_logger.debug_request("query params: %s", query_params)
52
+
53
+ if headers:
54
+ sdk_core_logger.debug_request("headers:")
55
+ for k, v in headers.items():
56
+ sdk_core_logger.debug_request(" %s: %s", k, v)
57
+
58
+ if post_params:
59
+ sdk_core_logger.debug_request("post params: %s", post_params)
60
+
61
+ if body:
62
+ # body may be bytes and needs to be decoded
63
+ if isinstance(body, bytes):
64
+ try:
65
+ body = body.decode("utf-8")
66
+ except Exception:
67
+ body = str(body)
68
+ sdk_core_logger.debug_request("body: %s", body, is_body=True)
69
+
70
+
71
+ def log_response(r, _preload_content):
72
+ sdk_core_logger.debugx(LogLevel.LOG_DEBUG_WITH_REQUEST_ID, "[Response] request id: %s", r.getheader("X-Tt-Logid"))
73
+ sdk_core_logger.debug_response("status: %s", r.status)
74
+ sdk_core_logger.debug_response("reason: %s", r.reason)
75
+ sdk_core_logger.debug_response("headers:")
76
+ for k, v in r.getheaders().items():
77
+ sdk_core_logger.debug_response(" %s: %s", k, v)
78
+ if _preload_content:
79
+ sdk_core_logger.debug_response("body: %s", r.data, is_body=True)
80
+ else:
81
+ preview_len = 2048
82
+ # Stream not preloaded: avoid consuming the stream, just do a "peek"
83
+ preview_bytes = b""
84
+ try:
85
+ # urllib3.HTTPResponse.peek(n) is usually available and does not advance the read pointer
86
+ if hasattr(r, "peek"):
87
+ preview_bytes = r.peek(preview_len) or b""
88
+ else:
89
+ # Some implementations may cache r.data (not read the underlying stream again)
90
+ cached = getattr(r, "data", b"")
91
+ if cached:
92
+ preview_bytes = cached[:preview_len]
93
+ except Exception:
94
+ preview_bytes = b""
95
+
96
+ if preview_bytes:
97
+ try:
98
+ preview_text = preview_bytes.decode("utf-8", errors="replace")
99
+ except Exception:
100
+ preview_text = repr(preview_bytes)
101
+ sdk_core_logger.debug_response("response body (preview, %d bytes): %s", len(preview_bytes), preview_text, is_body=True)
102
+ else:
103
+ sdk_core_logger.debug_response("response body (preview): <streaming, not read>", is_body=True)
104
+
105
+
42
106
  class RESTClientObject(object):
43
107
 
44
108
  def __init__(self, configuration, pools_size=4, maxsize=None):
@@ -175,6 +239,8 @@ class RESTClientObject(object):
175
239
  if 'Content-Type' not in headers:
176
240
  headers['Content-Type'] = 'application/json'
177
241
 
242
+ log_request(method, url, query_params, headers, body, post_params, timeout)
243
+
178
244
  try:
179
245
  # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
180
246
  if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
@@ -248,7 +314,7 @@ class RESTClientObject(object):
248
314
 
249
315
  # log response body
250
316
  logger.debug("response body: %s", r.data)
251
-
317
+ log_response(r, _preload_content)
252
318
  if not 200 <= r.status <= 299:
253
319
  raise ApiException(http_resp=r)
254
320