volcengine-python-sdk 4.0.28__py2.py3-none-any.whl → 4.0.30__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.
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/METADATA +1 -1
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/RECORD +486 -80
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/top_level.txt +2 -0
- volcenginesdkacep/__init__.py +42 -0
- volcenginesdkacep/api/acep_api.py +1001 -128
- volcenginesdkacep/models/__init__.py +42 -0
- volcenginesdkacep/models/add_phone_template_request.py +256 -0
- volcenginesdkacep/models/add_phone_template_response.py +123 -0
- volcenginesdkacep/models/app_list_for_create_pod_one_step_input.py +149 -0
- volcenginesdkacep/models/create_pod_one_step_request.py +698 -0
- volcenginesdkacep/models/create_pod_one_step_response.py +175 -0
- volcenginesdkacep/models/create_pod_request.py +696 -0
- volcenginesdkacep/models/create_pod_response.py +149 -0
- volcenginesdkacep/models/get_phone_template_request.py +124 -0
- volcenginesdkacep/models/get_phone_template_response.py +149 -0
- volcenginesdkacep/models/job_for_reset_pod_output.py +305 -0
- volcenginesdkacep/models/list_phone_template_request.py +279 -0
- volcenginesdkacep/models/list_phone_template_response.py +149 -0
- volcenginesdkacep/models/overlay_persist_property_for_add_phone_template_input.py +175 -0
- volcenginesdkacep/models/overlay_persist_property_for_create_pod_input.py +175 -0
- volcenginesdkacep/models/overlay_persist_property_for_create_pod_one_step_input.py +175 -0
- volcenginesdkacep/models/overlay_persist_property_for_get_phone_template_output.py +175 -0
- volcenginesdkacep/models/overlay_persist_property_for_list_phone_template_output.py +175 -0
- volcenginesdkacep/models/overlay_property_for_add_phone_template_input.py +175 -0
- volcenginesdkacep/models/overlay_property_for_create_pod_input.py +175 -0
- volcenginesdkacep/models/overlay_property_for_create_pod_one_step_input.py +175 -0
- volcenginesdkacep/models/overlay_property_for_get_phone_template_output.py +175 -0
- volcenginesdkacep/models/overlay_property_for_list_phone_template_output.py +175 -0
- volcenginesdkacep/models/overlay_setting_for_add_phone_template_input.py +201 -0
- volcenginesdkacep/models/overlay_setting_for_create_pod_input.py +201 -0
- volcenginesdkacep/models/overlay_setting_for_create_pod_one_step_input.py +201 -0
- volcenginesdkacep/models/overlay_setting_for_get_phone_template_output.py +201 -0
- volcenginesdkacep/models/overlay_setting_for_list_phone_template_output.py +201 -0
- volcenginesdkacep/models/phone_template_for_get_phone_template_output.py +279 -0
- volcenginesdkacep/models/pod_persist_property_for_update_pod_property_input.py +175 -0
- volcenginesdkacep/models/pod_property_for_update_pod_property_input.py +175 -0
- volcenginesdkacep/models/pod_setting_for_update_pod_property_input.py +201 -0
- volcenginesdkacep/models/pod_spec_list_for_create_pod_input.py +617 -0
- volcenginesdkacep/models/remove_phone_template_request.py +123 -0
- volcenginesdkacep/models/remove_phone_template_response.py +123 -0
- volcenginesdkacep/models/reset_pod_request.py +280 -0
- volcenginesdkacep/models/reset_pod_response.py +175 -0
- volcenginesdkacep/models/row_for_list_phone_template_output.py +279 -0
- volcenginesdkacep/models/tag_for_get_phone_template_output.py +201 -0
- volcenginesdkacep/models/update_phone_template_request.py +176 -0
- volcenginesdkacep/models/update_phone_template_response.py +95 -0
- volcenginesdkacep/models/update_pod_property_request.py +280 -0
- volcenginesdkacep/models/update_pod_property_response.py +95 -0
- volcenginesdkarkruntime/_client.py +7 -6
- volcenginesdkarkruntime/_utils/_key_agreement.py +18 -14
- volcenginesdkarkruntime/resources/batch_chat/completions.py +10 -141
- volcenginesdkarkruntime/resources/beta/chat/completions.py +10 -0
- volcenginesdkarkruntime/resources/chat/completions.py +9 -206
- volcenginesdkarkruntime/resources/encryption.py +217 -0
- volcenginesdkarkruntime/resources/images/images.py +72 -55
- volcenginesdkarkruntime/resources/responses/responses.py +42 -24
- volcenginesdkarkruntime/types/__init__.py +2 -0
- volcenginesdkarkruntime/types/content_generation/content_generation_task.py +15 -0
- volcenginesdkarkruntime/types/images/__init__.py +2 -2
- volcenginesdkarkruntime/types/images/images.py +7 -1
- volcenginesdkarkruntime/types/responses/audio_chunking_strategy.py +30 -0
- volcenginesdkarkruntime/types/responses/audio_chunking_strategy_param.py +28 -0
- volcenginesdkarkruntime/types/responses/image_process_grounding_options.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_grounding_options_param.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_point_options.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_point_options_param.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_rotate_options.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_rotate_options_param.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_tool.py +41 -0
- volcenginesdkarkruntime/types/responses/image_process_tool_param.py +40 -0
- volcenginesdkarkruntime/types/responses/image_process_zoom_options.py +23 -0
- volcenginesdkarkruntime/types/responses/image_process_zoom_options_param.py +23 -0
- volcenginesdkarkruntime/types/responses/item_function_image_process.py +37 -0
- volcenginesdkarkruntime/types/responses/knowledge_search_tool.py +46 -0
- volcenginesdkarkruntime/types/responses/knowledge_search_tool_param.py +44 -0
- volcenginesdkarkruntime/types/responses/mcp_tool.py +8 -4
- volcenginesdkarkruntime/types/responses/response.py +58 -92
- volcenginesdkarkruntime/types/responses/response_annotation_added_event.py +3 -22
- volcenginesdkarkruntime/types/responses/response_caching.py +6 -6
- volcenginesdkarkruntime/types/responses/response_caching_param.py +7 -4
- volcenginesdkarkruntime/types/responses/response_create_params.py +11 -3
- volcenginesdkarkruntime/types/responses/response_image_process_action.py +24 -0
- volcenginesdkarkruntime/types/responses/response_image_process_args.py +30 -0
- volcenginesdkarkruntime/types/responses/response_image_process_call_completed_event.py +35 -0
- volcenginesdkarkruntime/types/responses/response_image_process_call_in_progress_event.py +24 -0
- volcenginesdkarkruntime/types/responses/response_image_process_call_processing_event.py +30 -0
- volcenginesdkarkruntime/types/responses/response_image_process_error.py +20 -0
- volcenginesdkarkruntime/types/responses/response_image_process_grounding_args.py +24 -0
- volcenginesdkarkruntime/types/responses/response_image_process_point_args.py +24 -0
- volcenginesdkarkruntime/types/responses/response_image_process_rotate_args.py +22 -0
- volcenginesdkarkruntime/types/responses/response_image_process_zoom_args.py +24 -0
- volcenginesdkarkruntime/types/responses/response_input_audio.py +33 -0
- volcenginesdkarkruntime/types/responses/response_input_audio_param.py +32 -0
- volcenginesdkarkruntime/types/responses/response_input_content.py +13 -3
- volcenginesdkarkruntime/types/responses/response_input_file.py +32 -0
- volcenginesdkarkruntime/types/responses/response_input_file_param.py +30 -0
- volcenginesdkarkruntime/types/responses/response_input_message_content_list_param.py +11 -3
- volcenginesdkarkruntime/types/responses/response_input_video.py +33 -0
- volcenginesdkarkruntime/types/responses/response_input_video_param.py +6 -9
- volcenginesdkarkruntime/types/responses/response_knowledge_search_call_completed_event.py +24 -0
- volcenginesdkarkruntime/types/responses/response_knowledge_search_call_failed_event.py +24 -0
- volcenginesdkarkruntime/types/responses/response_knowledge_search_call_in_progress_event.py +24 -0
- volcenginesdkarkruntime/types/responses/response_knowledge_search_call_searching_event.py +24 -0
- volcenginesdkarkruntime/types/responses/response_knowledge_search_item.py +32 -0
- volcenginesdkarkruntime/types/responses/response_output_item.py +8 -4
- volcenginesdkarkruntime/types/responses/response_output_text.py +4 -33
- volcenginesdkarkruntime/types/responses/response_output_text_annotation.py +63 -0
- volcenginesdkarkruntime/types/responses/response_output_text_annotation_added_event.py +33 -0
- volcenginesdkarkruntime/types/responses/response_stream_event.py +89 -50
- volcenginesdkarkruntime/types/responses/response_tool_usage.py +14 -6
- volcenginesdkarkruntime/types/responses/responses_output_text_annotation_cover_image.py +25 -0
- volcenginesdkarkruntime/types/responses/tool.py +5 -2
- volcenginesdkarkruntime/types/responses/tool_choice_knowledge_search.py +22 -0
- volcenginesdkarkruntime/types/responses/tool_choice_knowledge_search_param.py +20 -0
- volcenginesdkarkruntime/types/responses/tool_choice_mcp.py +31 -0
- volcenginesdkarkruntime/types/responses/tool_choice_mcp_param.py +4 -4
- volcenginesdkarkruntime/types/responses/tool_choice_web_search.py +22 -0
- volcenginesdkarkruntime/types/responses/tool_choice_web_search_param.py +20 -0
- volcenginesdkarkruntime/types/responses/tool_param.py +11 -3
- volcenginesdkarkruntime/types/responses/user_location.py +29 -0
- volcenginesdkarkruntime/types/responses/user_location_param.py +31 -0
- volcenginesdkarkruntime/types/responses/web_search_tool.py +11 -22
- volcenginesdkarkruntime/types/responses/web_search_tool_param.py +8 -17
- volcenginesdkarkruntime/types/shared/__init__.py +3 -0
- volcenginesdkarkruntime/types/shared/reasoning.py +10 -0
- volcenginesdkarkruntime/types/shared/reasoning_effort.py +17 -0
- volcenginesdkarkruntime/types/shared_params/__init__.py +2 -0
- volcenginesdkarkruntime/types/shared_params/reasoning.py +12 -0
- volcenginesdkarkruntime/types/shared_params/reasoning_effort.py +8 -0
- volcenginesdkcbr/__init__.py +91 -0
- volcenginesdkcbr/api/__init__.py +6 -0
- volcenginesdkcbr/api/cbr_api.py +2362 -0
- volcenginesdkcbr/models/__init__.py +87 -0
- volcenginesdkcbr/models/backup_policy_for_describe_backup_policies_output.py +357 -0
- volcenginesdkcbr/models/create_backup_job_request.py +238 -0
- volcenginesdkcbr/models/create_backup_job_response.py +123 -0
- volcenginesdkcbr/models/create_backup_plan_request.py +176 -0
- volcenginesdkcbr/models/create_backup_plan_response.py +123 -0
- volcenginesdkcbr/models/create_backup_policy_request.py +293 -0
- volcenginesdkcbr/models/create_backup_policy_response.py +123 -0
- volcenginesdkcbr/models/create_backup_resource_request.py +211 -0
- volcenginesdkcbr/models/create_backup_resource_response.py +123 -0
- volcenginesdkcbr/models/create_restore_job_request.py +177 -0
- volcenginesdkcbr/models/create_restore_job_response.py +123 -0
- volcenginesdkcbr/models/create_vault_request.py +150 -0
- volcenginesdkcbr/models/create_vault_response.py +123 -0
- volcenginesdkcbr/models/delete_backup_plan_request.py +124 -0
- volcenginesdkcbr/models/delete_backup_plan_response.py +95 -0
- volcenginesdkcbr/models/delete_backup_policy_request.py +124 -0
- volcenginesdkcbr/models/delete_backup_policy_response.py +95 -0
- volcenginesdkcbr/models/delete_backup_resource_request.py +124 -0
- volcenginesdkcbr/models/delete_backup_resource_response.py +95 -0
- volcenginesdkcbr/models/delete_recovery_point_request.py +124 -0
- volcenginesdkcbr/models/delete_recovery_point_response.py +95 -0
- volcenginesdkcbr/models/delete_vault_request.py +124 -0
- volcenginesdkcbr/models/delete_vault_response.py +95 -0
- volcenginesdkcbr/models/describe_backup_plans_request.py +175 -0
- volcenginesdkcbr/models/describe_backup_plans_response.py +149 -0
- volcenginesdkcbr/models/describe_backup_policies_request.py +175 -0
- volcenginesdkcbr/models/describe_backup_policies_response.py +149 -0
- volcenginesdkcbr/models/describe_backup_resources_request.py +175 -0
- volcenginesdkcbr/models/describe_backup_resources_response.py +149 -0
- volcenginesdkcbr/models/describe_recovery_points_request.py +175 -0
- volcenginesdkcbr/models/describe_recovery_points_response.py +149 -0
- volcenginesdkcbr/models/describe_regions_request.py +95 -0
- volcenginesdkcbr/models/describe_regions_response.py +123 -0
- volcenginesdkcbr/models/describe_restore_jobs_request.py +175 -0
- volcenginesdkcbr/models/describe_restore_jobs_response.py +149 -0
- volcenginesdkcbr/models/describe_vaults_request.py +201 -0
- volcenginesdkcbr/models/describe_vaults_response.py +149 -0
- volcenginesdkcbr/models/disable_backup_policy_request.py +124 -0
- volcenginesdkcbr/models/disable_backup_policy_response.py +95 -0
- volcenginesdkcbr/models/enable_backup_policy_request.py +124 -0
- volcenginesdkcbr/models/enable_backup_policy_response.py +95 -0
- volcenginesdkcbr/models/filter_list_for_describe_backup_resources_input.py +149 -0
- volcenginesdkcbr/models/filters_for_describe_backup_plans_input.py +149 -0
- volcenginesdkcbr/models/filters_for_describe_backup_policies_input.py +175 -0
- volcenginesdkcbr/models/filters_for_describe_recovery_points_input.py +253 -0
- volcenginesdkcbr/models/filters_for_describe_restore_jobs_input.py +201 -0
- volcenginesdkcbr/models/filters_for_describe_vaults_input.py +149 -0
- volcenginesdkcbr/models/job_for_describe_restore_jobs_output.py +279 -0
- volcenginesdkcbr/models/meta_information_for_create_backup_plan_input.py +149 -0
- volcenginesdkcbr/models/meta_information_for_create_backup_resource_input.py +149 -0
- volcenginesdkcbr/models/meta_information_for_describe_backup_resources_output.py +149 -0
- volcenginesdkcbr/models/meta_information_for_update_backup_plan_input.py +149 -0
- volcenginesdkcbr/models/plan_for_describe_backup_plans_output.py +253 -0
- volcenginesdkcbr/models/plan_for_describe_backup_resources_output.py +149 -0
- volcenginesdkcbr/models/policy_for_describe_backup_plans_output.py +357 -0
- volcenginesdkcbr/models/recovery_point_for_describe_recovery_points_output.py +513 -0
- volcenginesdkcbr/models/region_for_describe_regions_output.py +149 -0
- volcenginesdkcbr/models/resource_for_describe_backup_resources_output.py +409 -0
- volcenginesdkcbr/models/resource_list_for_create_backup_plan_input.py +175 -0
- volcenginesdkcbr/models/resource_list_for_update_backup_plan_input.py +175 -0
- volcenginesdkcbr/models/tag_for_describe_vaults_output.py +149 -0
- volcenginesdkcbr/models/update_backup_plan_request.py +202 -0
- volcenginesdkcbr/models/update_backup_plan_response.py +95 -0
- volcenginesdkcbr/models/update_backup_policy_request.py +261 -0
- volcenginesdkcbr/models/update_backup_policy_response.py +95 -0
- volcenginesdkcbr/models/update_recovery_point_request.py +151 -0
- volcenginesdkcbr/models/update_recovery_point_response.py +95 -0
- volcenginesdkcbr/models/update_restore_job_request.py +151 -0
- volcenginesdkcbr/models/update_restore_job_response.py +95 -0
- volcenginesdkcbr/models/vault_list_for_describe_vaults_output.py +279 -0
- volcenginesdkcore/api_client.py +1 -1
- volcenginesdkcore/configuration.py +1 -1
- volcenginesdkcore/interceptor/interceptors/sign_request_interceptor.py +1 -0
- volcenginesdkcore/observability/debugger.py +4 -2
- volcenginesdkcore/retryer/retryer.py +4 -1
- volcenginesdkgraph/__init__.py +11 -0
- volcenginesdkgraph/api/graph_api.py +485 -0
- volcenginesdkgraph/models/__init__.py +11 -0
- volcenginesdkgraph/models/describe_vegraph_config_in_k8s_request.py +124 -0
- volcenginesdkgraph/models/describe_vegraph_config_in_k8s_response.py +201 -0
- volcenginesdkgraph/models/key_black_list_for_update_key_black_list_conf_input.py +175 -0
- volcenginesdkgraph/models/update_gremlin_keyword_black_list_conf_request.py +230 -0
- volcenginesdkgraph/models/update_gremlin_keyword_black_list_conf_response.py +95 -0
- volcenginesdkgraph/models/update_key_black_list_conf_request.py +230 -0
- volcenginesdkgraph/models/update_key_black_list_conf_response.py +95 -0
- volcenginesdkgraph/models/update_tablet_read_black_list_conf_request.py +230 -0
- volcenginesdkgraph/models/update_tablet_read_black_list_conf_response.py +95 -0
- volcenginesdkgraph/models/update_tablet_write_black_list_conf_request.py +230 -0
- volcenginesdkgraph/models/update_tablet_write_black_list_conf_response.py +95 -0
- volcenginesdkmilvus/__init__.py +112 -0
- volcenginesdkmilvus/api/__init__.py +6 -0
- volcenginesdkmilvus/api/milvus_api.py +2168 -0
- volcenginesdkmilvus/models/__init__.py +108 -0
- volcenginesdkmilvus/models/allow_group_list_for_describe_instance_detail_output.py +149 -0
- volcenginesdkmilvus/models/base_instance_for_describe_instance_detail_output.py +435 -0
- volcenginesdkmilvus/models/charge_config_for_create_instance_input.py +201 -0
- volcenginesdkmilvus/models/charge_config_for_create_instance_one_step_input.py +201 -0
- volcenginesdkmilvus/models/charge_config_for_describe_instance_detail_output.py +201 -0
- volcenginesdkmilvus/models/charge_config_for_describe_instances_output.py +201 -0
- volcenginesdkmilvus/models/charge_config_for_describe_price_input.py +201 -0
- volcenginesdkmilvus/models/component_spec_list_for_create_instance_input.py +253 -0
- volcenginesdkmilvus/models/component_spec_list_for_create_instance_one_step_input.py +253 -0
- volcenginesdkmilvus/models/component_spec_list_for_describe_price_input.py +227 -0
- volcenginesdkmilvus/models/component_spec_list_for_scale_instance_input.py +227 -0
- volcenginesdkmilvus/models/config_assign_list_for_modify_instance_config_input.py +149 -0
- volcenginesdkmilvus/models/configuration_for_describe_instance_config_output.py +331 -0
- volcenginesdkmilvus/models/create_instance_one_step_request.py +306 -0
- volcenginesdkmilvus/models/create_instance_one_step_response.py +227 -0
- volcenginesdkmilvus/models/create_instance_request.py +306 -0
- volcenginesdkmilvus/models/create_instance_response.py +227 -0
- volcenginesdkmilvus/models/describe_available_spec_request.py +95 -0
- volcenginesdkmilvus/models/describe_available_spec_response.py +201 -0
- volcenginesdkmilvus/models/describe_available_version_request.py +95 -0
- volcenginesdkmilvus/models/describe_available_version_response.py +123 -0
- volcenginesdkmilvus/models/describe_config_modules_request.py +124 -0
- volcenginesdkmilvus/models/describe_config_modules_response.py +123 -0
- volcenginesdkmilvus/models/describe_instance_config_request.py +124 -0
- volcenginesdkmilvus/models/describe_instance_config_response.py +123 -0
- volcenginesdkmilvus/models/describe_instance_detail_request.py +124 -0
- volcenginesdkmilvus/models/describe_instance_detail_response.py +409 -0
- volcenginesdkmilvus/models/describe_instances_request.py +253 -0
- volcenginesdkmilvus/models/describe_instances_response.py +227 -0
- volcenginesdkmilvus/models/describe_node_info_request.py +124 -0
- volcenginesdkmilvus/models/describe_node_info_response.py +123 -0
- volcenginesdkmilvus/models/describe_price_request.py +175 -0
- volcenginesdkmilvus/models/describe_price_response.py +227 -0
- volcenginesdkmilvus/models/describe_zones_request.py +95 -0
- volcenginesdkmilvus/models/describe_zones_response.py +123 -0
- volcenginesdkmilvus/models/endpoint_list_for_describe_instance_detail_output.py +305 -0
- volcenginesdkmilvus/models/instance_configuration_for_create_instance_input.py +227 -0
- volcenginesdkmilvus/models/instance_configuration_for_create_instance_one_step_input.py +227 -0
- volcenginesdkmilvus/models/instance_info_for_describe_instances_output.py +409 -0
- volcenginesdkmilvus/models/list_tags_for_resources_request.py +228 -0
- volcenginesdkmilvus/models/list_tags_for_resources_response.py +149 -0
- volcenginesdkmilvus/models/modify_delete_protect_request.py +151 -0
- volcenginesdkmilvus/models/modify_delete_protect_response.py +123 -0
- volcenginesdkmilvus/models/modify_instance_config_request.py +150 -0
- volcenginesdkmilvus/models/modify_instance_config_response.py +123 -0
- volcenginesdkmilvus/models/modify_instance_name_request.py +151 -0
- volcenginesdkmilvus/models/modify_instance_name_response.py +123 -0
- volcenginesdkmilvus/models/modify_post_paid_request.py +205 -0
- volcenginesdkmilvus/models/modify_post_paid_response.py +253 -0
- volcenginesdkmilvus/models/modify_pre_paid_request.py +205 -0
- volcenginesdkmilvus/models/modify_pre_paid_response.py +253 -0
- volcenginesdkmilvus/models/modify_resource_tags_request.py +176 -0
- volcenginesdkmilvus/models/modify_resource_tags_response.py +123 -0
- volcenginesdkmilvus/models/network_config_for_create_instance_input.py +175 -0
- volcenginesdkmilvus/models/network_config_for_create_instance_one_step_input.py +175 -0
- volcenginesdkmilvus/models/network_config_for_describe_instance_detail_output.py +175 -0
- volcenginesdkmilvus/models/network_config_for_describe_instances_output.py +175 -0
- volcenginesdkmilvus/models/node_cu_type_support_spec_list_for_describe_available_spec_output.py +175 -0
- volcenginesdkmilvus/models/node_info_list_for_describe_node_info_output.py +357 -0
- volcenginesdkmilvus/models/node_price_list_for_describe_price_output.py +305 -0
- volcenginesdkmilvus/models/node_support_spec_list_for_describe_available_spec_output.py +175 -0
- volcenginesdkmilvus/models/release_instance_request.py +124 -0
- volcenginesdkmilvus/models/release_instance_response.py +123 -0
- volcenginesdkmilvus/models/scale_instance_request.py +204 -0
- volcenginesdkmilvus/models/scale_instance_response.py +175 -0
- volcenginesdkmilvus/models/spec_config_for_describe_instance_detail_output.py +227 -0
- volcenginesdkmilvus/models/spec_list_for_describe_available_spec_output.py +253 -0
- volcenginesdkmilvus/models/subnet_info_for_create_instance_input.py +149 -0
- volcenginesdkmilvus/models/subnet_info_for_create_instance_one_step_input.py +149 -0
- volcenginesdkmilvus/models/subnet_info_for_describe_instance_detail_output.py +149 -0
- volcenginesdkmilvus/models/subnet_info_for_describe_instances_output.py +149 -0
- volcenginesdkmilvus/models/tag_filter_for_describe_instances_input.py +149 -0
- volcenginesdkmilvus/models/tag_filter_for_list_tags_for_resources_input.py +149 -0
- volcenginesdkmilvus/models/tag_for_create_instance_input.py +149 -0
- volcenginesdkmilvus/models/tag_for_create_instance_one_step_input.py +149 -0
- volcenginesdkmilvus/models/tag_for_describe_instance_detail_output.py +149 -0
- volcenginesdkmilvus/models/tag_for_describe_instances_output.py +149 -0
- volcenginesdkmilvus/models/tag_for_modify_resource_tags_input.py +149 -0
- volcenginesdkmilvus/models/tag_for_tag_resources_input.py +149 -0
- volcenginesdkmilvus/models/tag_resource_for_list_tags_for_resources_output.py +201 -0
- volcenginesdkmilvus/models/tag_resources_request.py +175 -0
- volcenginesdkmilvus/models/tag_resources_response.py +123 -0
- volcenginesdkmilvus/models/untag_resources_request.py +175 -0
- volcenginesdkmilvus/models/untag_resources_response.py +123 -0
- volcenginesdkmilvus/models/version_for_describe_available_version_output.py +149 -0
- volcenginesdkmilvus/models/vpc_info_for_create_instance_input.py +149 -0
- volcenginesdkmilvus/models/vpc_info_for_create_instance_one_step_input.py +149 -0
- volcenginesdkmilvus/models/vpc_info_for_describe_instance_detail_output.py +149 -0
- volcenginesdkmilvus/models/vpc_info_for_describe_instances_output.py +149 -0
- volcenginesdkmilvus/models/zone_for_describe_zones_output.py +175 -0
- volcenginesdkmilvus/models/zone_support_spec_list_for_describe_available_spec_output.py +149 -0
- volcenginesdkorganization/__init__.py +6 -0
- volcenginesdkorganization/api/organization_api.py +194 -0
- volcenginesdkorganization/models/__init__.py +6 -0
- volcenginesdkorganization/models/filter_for_list_tags_keys_input.py +123 -0
- volcenginesdkorganization/models/filter_for_list_tags_values_input.py +123 -0
- volcenginesdkorganization/models/list_tags_keys_request.py +209 -0
- volcenginesdkorganization/models/list_tags_keys_response.py +175 -0
- volcenginesdkorganization/models/list_tags_values_request.py +236 -0
- volcenginesdkorganization/models/list_tags_values_response.py +175 -0
- volcenginesdkseccenter20240508/__init__.py +128 -0
- volcenginesdkseccenter20240508/api/seccenter20240508_api.py +7987 -3913
- volcenginesdkseccenter20240508/models/__init__.py +128 -0
- volcenginesdkseccenter20240508/models/add_baseline_check_config_request.py +383 -0
- volcenginesdkseccenter20240508/models/add_baseline_check_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/add_login_config_request.py +27 -1
- volcenginesdkseccenter20240508/models/alarm_topic_config_for_get_tls_info_output.py +175 -0
- volcenginesdkseccenter20240508/models/alarm_topic_config_for_modify_tls_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/ban_alarm_ip_request.py +175 -0
- volcenginesdkseccenter20240508/models/ban_alarm_ip_response.py +123 -0
- volcenginesdkseccenter20240508/models/baseline_list_for_add_baseline_check_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/baseline_list_for_edit_baseline_check_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/baseline_list_for_list_baseline_basic_info_output.py +201 -0
- volcenginesdkseccenter20240508/models/baseline_list_for_list_baseline_check_config_output.py +149 -0
- volcenginesdkseccenter20240508/models/bind_mlp_auth_request.py +123 -0
- volcenginesdkseccenter20240508/models/bind_mlp_auth_response.py +123 -0
- volcenginesdkseccenter20240508/models/check_alarm_support_ban_ip_request.py +175 -0
- volcenginesdkseccenter20240508/models/check_alarm_support_ban_ip_response.py +227 -0
- volcenginesdkseccenter20240508/models/check_install_agent_client_response.py +105 -1
- volcenginesdkseccenter20240508/models/conditions_for_list_ordered_hosts_basic_infos_input.py +435 -0
- volcenginesdkseccenter20240508/models/create_mlp_asset_sync_task_request.py +124 -0
- volcenginesdkseccenter20240508/models/create_mlp_asset_sync_task_response.py +123 -0
- volcenginesdkseccenter20240508/models/data_for_get_alarm_rule_list_output.py +331 -0
- volcenginesdkseccenter20240508/models/data_for_get_fingerprint_env_output.py +409 -0
- volcenginesdkseccenter20240508/models/data_for_get_fingerprint_process_output.py +27 -1
- volcenginesdkseccenter20240508/models/data_for_get_fingerprint_service_output.py +53 -1
- volcenginesdkseccenter20240508/models/data_for_get_mlp_asset_sync_task_detail_output.py +305 -0
- volcenginesdkseccenter20240508/models/data_for_get_offline_notification_list_output.py +929 -0
- volcenginesdkseccenter20240508/models/data_for_list_ban_ip_list_output.py +487 -0
- volcenginesdkseccenter20240508/models/data_for_list_baseline_basic_info_output.py +201 -0
- volcenginesdkseccenter20240508/models/data_for_list_baseline_check_config_output.py +617 -0
- volcenginesdkseccenter20240508/models/data_for_list_baseline_for_group_policy_output.py +201 -0
- volcenginesdkseccenter20240508/models/data_for_list_check_config_related_baseline_output.py +201 -0
- volcenginesdkseccenter20240508/models/data_for_list_fingerprint_collect_config_output.py +331 -0
- volcenginesdkseccenter20240508/models/data_for_list_mlp_asset_tasks_output.py +305 -0
- volcenginesdkseccenter20240508/models/data_for_list_ordered_hosts_basic_infos_output.py +539 -0
- volcenginesdkseccenter20240508/models/delete_baseline_check_config_request.py +124 -0
- volcenginesdkseccenter20240508/models/delete_baseline_check_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/detect_baseline_by_check_config_request.py +124 -0
- volcenginesdkseccenter20240508/models/detect_baseline_by_check_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/ecs_instance_for_get_auto_isolate_agent_list_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_get_host_basic_info_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_get_offline_notification_list_output.py +669 -0
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_asset_center_hosts_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_auto_defense_hosts_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_ban_ip_list_output.py +669 -0
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_hosts_basic_infos_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_multi_level_asset_hosts_output.py +53 -1
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_ordered_hosts_basic_infos_output.py +669 -0
- volcenginesdkseccenter20240508/models/ecs_instance_for_list_rasp_config_agent_infos_output.py +53 -1
- volcenginesdkseccenter20240508/models/edit_baseline_check_config_request.py +410 -0
- volcenginesdkseccenter20240508/models/edit_baseline_check_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/edit_fingerprint_collect_config_request.py +254 -0
- volcenginesdkseccenter20240508/models/edit_fingerprint_collect_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/export_dev_fingerprint_data_request.py +1 -1
- volcenginesdkseccenter20240508/models/file_for_handle_endpoint_alarms_input.py +149 -0
- volcenginesdkseccenter20240508/models/get_alarm_rule_list_request.py +333 -0
- volcenginesdkseccenter20240508/models/get_alarm_rule_list_response.py +201 -0
- volcenginesdkseccenter20240508/models/get_auto_protect_config_request.py +95 -0
- volcenginesdkseccenter20240508/models/get_auto_protect_config_response.py +149 -0
- volcenginesdkvod20250101/models/scenario_for_create_ai_termbase_input.py → volcenginesdkseccenter20240508/models/get_brute_force_ban_cap_params_request.py +6 -6
- volcenginesdkseccenter20240508/models/get_brute_force_ban_cap_params_response.py +123 -0
- volcenginesdkseccenter20240508/models/get_brute_force_ban_config_request.py +123 -0
- volcenginesdkseccenter20240508/models/get_brute_force_ban_config_response.py +383 -0
- volcenginesdkseccenter20240508/models/get_brute_force_ban_statistics_request.py +123 -0
- volcenginesdkseccenter20240508/models/get_brute_force_ban_statistics_response.py +149 -0
- volcenginesdkseccenter20240508/models/get_custom_weak_passwords_request.py +95 -0
- volcenginesdkseccenter20240508/models/get_custom_weak_passwords_response.py +201 -0
- volcenginesdkseccenter20240508/models/get_fingerprint_env_request.py +489 -0
- volcenginesdkseccenter20240508/models/get_fingerprint_env_response.py +201 -0
- volcenginesdkseccenter20240508/models/get_fingerprint_service_request.py +0 -7
- volcenginesdkseccenter20240508/models/get_fingerprint_statistics_response.py +27 -1
- volcenginesdkseccenter20240508/models/get_geo_location_request.py +123 -0
- volcenginesdkseccenter20240508/models/get_geo_location_response.py +123 -0
- volcenginesdkseccenter20240508/models/get_mlp_asset_sync_task_detail_request.py +124 -0
- volcenginesdkseccenter20240508/models/get_mlp_asset_sync_task_detail_response.py +123 -0
- volcenginesdkseccenter20240508/models/get_mlp_asset_sync_task_status_request.py +124 -0
- volcenginesdkseccenter20240508/models/get_mlp_asset_sync_task_status_response.py +201 -0
- volcenginesdkseccenter20240508/models/get_offline_notification_config_request.py +95 -0
- volcenginesdkseccenter20240508/models/get_offline_notification_config_response.py +149 -0
- volcenginesdkseccenter20240508/models/get_offline_notification_list_request.py +411 -0
- volcenginesdkseccenter20240508/models/get_offline_notification_list_response.py +201 -0
- volcenginesdkseccenter20240508/models/get_security_overview_score_stats_request.py +123 -0
- volcenginesdkseccenter20240508/models/get_security_overview_score_stats_response.py +149 -0
- volcenginesdkseccenter20240508/models/get_tls_info_response.py +122 -70
- volcenginesdkseccenter20240508/models/handle_endpoint_alarms_request.py +150 -0
- volcenginesdkseccenter20240508/models/handle_endpoint_alarms_response.py +95 -0
- volcenginesdkseccenter20240508/models/handle_list_for_handle_endpoint_alarms_input.py +201 -0
- volcenginesdkseccenter20240508/models/host_info_for_list_ban_ip_list_output.py +279 -0
- volcenginesdkseccenter20240508/models/list_alarm_tags_request.py +6 -6
- volcenginesdkseccenter20240508/models/list_ban_ip_list_request.py +567 -0
- volcenginesdkseccenter20240508/models/list_ban_ip_list_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_baseline_basic_info_request.py +203 -0
- volcenginesdkseccenter20240508/models/list_baseline_basic_info_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_baseline_check_config_request.py +203 -0
- volcenginesdkseccenter20240508/models/list_baseline_check_config_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_baseline_for_group_policy_request.py +124 -0
- volcenginesdkseccenter20240508/models/list_baseline_for_group_policy_response.py +123 -0
- volcenginesdkseccenter20240508/models/list_batch_endpoint_handle_methods_request.py +150 -0
- volcenginesdkseccenter20240508/models/list_batch_endpoint_handle_methods_response.py +149 -0
- volcenginesdkseccenter20240508/models/list_check_config_related_baseline_request.py +256 -0
- volcenginesdkseccenter20240508/models/list_check_config_related_baseline_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_fingerprint_collect_config_request.py +149 -0
- volcenginesdkseccenter20240508/models/list_fingerprint_collect_config_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_mlp_alarm_tags_request.py +6 -6
- volcenginesdkseccenter20240508/models/list_mlp_asset_tasks_request.py +255 -0
- volcenginesdkseccenter20240508/models/list_mlp_asset_tasks_response.py +201 -0
- volcenginesdkseccenter20240508/models/list_ordered_hosts_basic_infos_request.py +256 -0
- volcenginesdkseccenter20240508/models/list_ordered_hosts_basic_infos_response.py +201 -0
- volcenginesdkseccenter20240508/models/location_for_get_geo_location_output.py +149 -0
- volcenginesdkseccenter20240508/models/login_location_for_add_login_config_input.py +175 -0
- volcenginesdkseccenter20240508/models/login_location_for_update_login_config_input.py +175 -0
- volcenginesdkseccenter20240508/models/login_topic_config_for_get_tls_info_output.py +175 -0
- volcenginesdkseccenter20240508/models/login_topic_config_for_modify_tls_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/modify_tls_config_request.py +133 -3
- volcenginesdkseccenter20240508/models/operation_list_for_list_batch_endpoint_handle_methods_output.py +201 -0
- volcenginesdkseccenter20240508/models/port_change_topic_config_for_get_tls_info_output.py +175 -0
- volcenginesdkseccenter20240508/models/port_change_topic_config_for_modify_tls_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/proc_list_for_list_batch_endpoint_handle_methods_output.py +175 -0
- volcenginesdkseccenter20240508/models/process_for_handle_endpoint_alarms_input.py +175 -0
- volcenginesdkseccenter20240508/models/process_start_topic_config_for_get_tls_info_output.py +175 -0
- volcenginesdkseccenter20240508/models/process_start_topic_config_for_modify_tls_config_input.py +149 -0
- volcenginesdkseccenter20240508/models/relate_alarm_info_for_list_ban_ip_list_output.py +149 -0
- volcenginesdkseccenter20240508/models/retry_ip_operation_request.py +150 -0
- volcenginesdkseccenter20240508/models/retry_ip_operation_response.py +123 -0
- volcenginesdkseccenter20240508/models/risk_for_get_offline_notification_list_output.py +201 -0
- volcenginesdkseccenter20240508/models/rule_list_for_get_brute_force_ban_config_output.py +227 -0
- volcenginesdkseccenter20240508/models/rule_list_for_set_brute_force_ban_config_input.py +227 -0
- volcenginesdkseccenter20240508/models/score_for_get_security_overview_score_stats_output.py +149 -0
- volcenginesdkseccenter20240508/models/set_brute_force_ban_config_request.py +461 -0
- volcenginesdkseccenter20240508/models/set_brute_force_ban_config_response.py +95 -0
- volcenginesdkseccenter20240508/models/set_custom_weak_passwords_request.py +123 -0
- volcenginesdkseccenter20240508/models/set_custom_weak_passwords_response.py +123 -0
- volcenginesdkseccenter20240508/models/stop_mlp_asset_sync_task_request.py +124 -0
- volcenginesdkseccenter20240508/models/stop_mlp_asset_sync_task_response.py +123 -0
- volcenginesdkseccenter20240508/models/un_ban_ip_item_request.py +123 -0
- volcenginesdkseccenter20240508/models/un_ban_ip_item_response.py +149 -0
- volcenginesdkseccenter20240508/models/unbind_mlp_auth_request.py +123 -0
- volcenginesdkseccenter20240508/models/unbind_mlp_auth_response.py +123 -0
- volcenginesdkseccenter20240508/models/update_auto_protect_config_request.py +124 -0
- volcenginesdkseccenter20240508/models/update_auto_protect_config_response.py +149 -0
- volcenginesdkseccenter20240508/models/update_baseline_check_config_switch_request.py +150 -0
- volcenginesdkseccenter20240508/models/update_baseline_check_config_switch_response.py +123 -0
- volcenginesdkseccenter20240508/models/update_cloud_provider_request.py +149 -0
- volcenginesdkseccenter20240508/models/update_cloud_provider_response.py +201 -0
- volcenginesdkseccenter20240508/models/update_login_config_request.py +27 -1
- volcenginesdkseccenter20240508/models/update_offline_notification_config_request.py +151 -0
- volcenginesdkseccenter20240508/models/update_offline_notification_config_response.py +123 -0
- volcenginesdkseccenter20240508/models/vuln_topic_config_for_get_tls_info_output.py +175 -0
- volcenginesdkseccenter20240508/models/vuln_topic_config_for_modify_tls_config_input.py +149 -0
- volcenginesdkvefaas/__init__.py +1 -0
- volcenginesdkvefaas/models/__init__.py +1 -0
- volcenginesdkvefaas/models/describe_sandbox_response.py +53 -1
- volcenginesdkvefaas/models/metadata_list_for_describe_sandbox_output.py +149 -0
- volcenginesdkvod20250101/__init__.py +0 -1
- volcenginesdkvod20250101/models/__init__.py +0 -1
- volcenginesdkvod20250101/models/create_ai_termbase_request.py +6 -5
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/WHEEL +0 -0
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/licenses/LICENSE.txt +0 -0
- {volcengine_python_sdk-4.0.28.dist-info → volcengine_python_sdk-4.0.30.dist-info}/licenses/NOTICE.md +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
acep
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
|
|
7
|
+
|
|
8
|
+
OpenAPI spec version: common-version
|
|
9
|
+
|
|
10
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import pprint
|
|
15
|
+
import re # noqa: F401
|
|
16
|
+
|
|
17
|
+
import six
|
|
18
|
+
|
|
19
|
+
from volcenginesdkcore.configuration import Configuration
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class UpdatePhoneTemplateResponse(object):
|
|
23
|
+
"""NOTE: This class is auto generated by the swagger code generator program.
|
|
24
|
+
|
|
25
|
+
Do not edit the class manually.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
"""
|
|
29
|
+
Attributes:
|
|
30
|
+
swagger_types (dict): The key is attribute name
|
|
31
|
+
and the value is attribute type.
|
|
32
|
+
attribute_map (dict): The key is attribute name
|
|
33
|
+
and the value is json key in definition.
|
|
34
|
+
"""
|
|
35
|
+
swagger_types = {
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
attribute_map = {
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
def __init__(self, _configuration=None): # noqa: E501
|
|
42
|
+
"""UpdatePhoneTemplateResponse - a model defined in Swagger""" # noqa: E501
|
|
43
|
+
if _configuration is None:
|
|
44
|
+
_configuration = Configuration()
|
|
45
|
+
self._configuration = _configuration
|
|
46
|
+
self.discriminator = None
|
|
47
|
+
|
|
48
|
+
def to_dict(self):
|
|
49
|
+
"""Returns the model properties as a dict"""
|
|
50
|
+
result = {}
|
|
51
|
+
|
|
52
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
53
|
+
value = getattr(self, attr)
|
|
54
|
+
if isinstance(value, list):
|
|
55
|
+
result[attr] = list(map(
|
|
56
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
57
|
+
value
|
|
58
|
+
))
|
|
59
|
+
elif hasattr(value, "to_dict"):
|
|
60
|
+
result[attr] = value.to_dict()
|
|
61
|
+
elif isinstance(value, dict):
|
|
62
|
+
result[attr] = dict(map(
|
|
63
|
+
lambda item: (item[0], item[1].to_dict())
|
|
64
|
+
if hasattr(item[1], "to_dict") else item,
|
|
65
|
+
value.items()
|
|
66
|
+
))
|
|
67
|
+
else:
|
|
68
|
+
result[attr] = value
|
|
69
|
+
if issubclass(UpdatePhoneTemplateResponse, dict):
|
|
70
|
+
for key, value in self.items():
|
|
71
|
+
result[key] = value
|
|
72
|
+
|
|
73
|
+
return result
|
|
74
|
+
|
|
75
|
+
def to_str(self):
|
|
76
|
+
"""Returns the string representation of the model"""
|
|
77
|
+
return pprint.pformat(self.to_dict())
|
|
78
|
+
|
|
79
|
+
def __repr__(self):
|
|
80
|
+
"""For `print` and `pprint`"""
|
|
81
|
+
return self.to_str()
|
|
82
|
+
|
|
83
|
+
def __eq__(self, other):
|
|
84
|
+
"""Returns true if both objects are equal"""
|
|
85
|
+
if not isinstance(other, UpdatePhoneTemplateResponse):
|
|
86
|
+
return False
|
|
87
|
+
|
|
88
|
+
return self.to_dict() == other.to_dict()
|
|
89
|
+
|
|
90
|
+
def __ne__(self, other):
|
|
91
|
+
"""Returns true if both objects are not equal"""
|
|
92
|
+
if not isinstance(other, UpdatePhoneTemplateResponse):
|
|
93
|
+
return True
|
|
94
|
+
|
|
95
|
+
return self.to_dict() != other.to_dict()
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
acep
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
|
|
7
|
+
|
|
8
|
+
OpenAPI spec version: common-version
|
|
9
|
+
|
|
10
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import pprint
|
|
15
|
+
import re # noqa: F401
|
|
16
|
+
|
|
17
|
+
import six
|
|
18
|
+
|
|
19
|
+
from volcenginesdkcore.configuration import Configuration
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class UpdatePodPropertyRequest(object):
|
|
23
|
+
"""NOTE: This class is auto generated by the swagger code generator program.
|
|
24
|
+
|
|
25
|
+
Do not edit the class manually.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
"""
|
|
29
|
+
Attributes:
|
|
30
|
+
swagger_types (dict): The key is attribute name
|
|
31
|
+
and the value is attribute type.
|
|
32
|
+
attribute_map (dict): The key is attribute name
|
|
33
|
+
and the value is json key in definition.
|
|
34
|
+
"""
|
|
35
|
+
swagger_types = {
|
|
36
|
+
'phone_template_id': 'str',
|
|
37
|
+
'pod_id': 'str',
|
|
38
|
+
'pod_id_list': 'list[str]',
|
|
39
|
+
'pod_persist_properties': 'list[PodPersistPropertyForUpdatePodPropertyInput]',
|
|
40
|
+
'pod_properties': 'list[PodPropertyForUpdatePodPropertyInput]',
|
|
41
|
+
'pod_settings': 'list[PodSettingForUpdatePodPropertyInput]',
|
|
42
|
+
'product_id': 'str'
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
attribute_map = {
|
|
46
|
+
'phone_template_id': 'PhoneTemplateId',
|
|
47
|
+
'pod_id': 'PodId',
|
|
48
|
+
'pod_id_list': 'PodIdList',
|
|
49
|
+
'pod_persist_properties': 'PodPersistProperties',
|
|
50
|
+
'pod_properties': 'PodProperties',
|
|
51
|
+
'pod_settings': 'PodSettings',
|
|
52
|
+
'product_id': 'ProductId'
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
def __init__(self, phone_template_id=None, pod_id=None, pod_id_list=None, pod_persist_properties=None, pod_properties=None, pod_settings=None, product_id=None, _configuration=None): # noqa: E501
|
|
56
|
+
"""UpdatePodPropertyRequest - a model defined in Swagger""" # noqa: E501
|
|
57
|
+
if _configuration is None:
|
|
58
|
+
_configuration = Configuration()
|
|
59
|
+
self._configuration = _configuration
|
|
60
|
+
|
|
61
|
+
self._phone_template_id = None
|
|
62
|
+
self._pod_id = None
|
|
63
|
+
self._pod_id_list = None
|
|
64
|
+
self._pod_persist_properties = None
|
|
65
|
+
self._pod_properties = None
|
|
66
|
+
self._pod_settings = None
|
|
67
|
+
self._product_id = None
|
|
68
|
+
self.discriminator = None
|
|
69
|
+
|
|
70
|
+
if phone_template_id is not None:
|
|
71
|
+
self.phone_template_id = phone_template_id
|
|
72
|
+
if pod_id is not None:
|
|
73
|
+
self.pod_id = pod_id
|
|
74
|
+
if pod_id_list is not None:
|
|
75
|
+
self.pod_id_list = pod_id_list
|
|
76
|
+
if pod_persist_properties is not None:
|
|
77
|
+
self.pod_persist_properties = pod_persist_properties
|
|
78
|
+
if pod_properties is not None:
|
|
79
|
+
self.pod_properties = pod_properties
|
|
80
|
+
if pod_settings is not None:
|
|
81
|
+
self.pod_settings = pod_settings
|
|
82
|
+
self.product_id = product_id
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
def phone_template_id(self):
|
|
86
|
+
"""Gets the phone_template_id of this UpdatePodPropertyRequest. # noqa: E501
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
:return: The phone_template_id of this UpdatePodPropertyRequest. # noqa: E501
|
|
90
|
+
:rtype: str
|
|
91
|
+
"""
|
|
92
|
+
return self._phone_template_id
|
|
93
|
+
|
|
94
|
+
@phone_template_id.setter
|
|
95
|
+
def phone_template_id(self, phone_template_id):
|
|
96
|
+
"""Sets the phone_template_id of this UpdatePodPropertyRequest.
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
:param phone_template_id: The phone_template_id of this UpdatePodPropertyRequest. # noqa: E501
|
|
100
|
+
:type: str
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
self._phone_template_id = phone_template_id
|
|
104
|
+
|
|
105
|
+
@property
|
|
106
|
+
def pod_id(self):
|
|
107
|
+
"""Gets the pod_id of this UpdatePodPropertyRequest. # noqa: E501
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
:return: The pod_id of this UpdatePodPropertyRequest. # noqa: E501
|
|
111
|
+
:rtype: str
|
|
112
|
+
"""
|
|
113
|
+
return self._pod_id
|
|
114
|
+
|
|
115
|
+
@pod_id.setter
|
|
116
|
+
def pod_id(self, pod_id):
|
|
117
|
+
"""Sets the pod_id of this UpdatePodPropertyRequest.
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
:param pod_id: The pod_id of this UpdatePodPropertyRequest. # noqa: E501
|
|
121
|
+
:type: str
|
|
122
|
+
"""
|
|
123
|
+
|
|
124
|
+
self._pod_id = pod_id
|
|
125
|
+
|
|
126
|
+
@property
|
|
127
|
+
def pod_id_list(self):
|
|
128
|
+
"""Gets the pod_id_list of this UpdatePodPropertyRequest. # noqa: E501
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
:return: The pod_id_list of this UpdatePodPropertyRequest. # noqa: E501
|
|
132
|
+
:rtype: list[str]
|
|
133
|
+
"""
|
|
134
|
+
return self._pod_id_list
|
|
135
|
+
|
|
136
|
+
@pod_id_list.setter
|
|
137
|
+
def pod_id_list(self, pod_id_list):
|
|
138
|
+
"""Sets the pod_id_list of this UpdatePodPropertyRequest.
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
:param pod_id_list: The pod_id_list of this UpdatePodPropertyRequest. # noqa: E501
|
|
142
|
+
:type: list[str]
|
|
143
|
+
"""
|
|
144
|
+
|
|
145
|
+
self._pod_id_list = pod_id_list
|
|
146
|
+
|
|
147
|
+
@property
|
|
148
|
+
def pod_persist_properties(self):
|
|
149
|
+
"""Gets the pod_persist_properties of this UpdatePodPropertyRequest. # noqa: E501
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
:return: The pod_persist_properties of this UpdatePodPropertyRequest. # noqa: E501
|
|
153
|
+
:rtype: list[PodPersistPropertyForUpdatePodPropertyInput]
|
|
154
|
+
"""
|
|
155
|
+
return self._pod_persist_properties
|
|
156
|
+
|
|
157
|
+
@pod_persist_properties.setter
|
|
158
|
+
def pod_persist_properties(self, pod_persist_properties):
|
|
159
|
+
"""Sets the pod_persist_properties of this UpdatePodPropertyRequest.
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
:param pod_persist_properties: The pod_persist_properties of this UpdatePodPropertyRequest. # noqa: E501
|
|
163
|
+
:type: list[PodPersistPropertyForUpdatePodPropertyInput]
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
self._pod_persist_properties = pod_persist_properties
|
|
167
|
+
|
|
168
|
+
@property
|
|
169
|
+
def pod_properties(self):
|
|
170
|
+
"""Gets the pod_properties of this UpdatePodPropertyRequest. # noqa: E501
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
:return: The pod_properties of this UpdatePodPropertyRequest. # noqa: E501
|
|
174
|
+
:rtype: list[PodPropertyForUpdatePodPropertyInput]
|
|
175
|
+
"""
|
|
176
|
+
return self._pod_properties
|
|
177
|
+
|
|
178
|
+
@pod_properties.setter
|
|
179
|
+
def pod_properties(self, pod_properties):
|
|
180
|
+
"""Sets the pod_properties of this UpdatePodPropertyRequest.
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
:param pod_properties: The pod_properties of this UpdatePodPropertyRequest. # noqa: E501
|
|
184
|
+
:type: list[PodPropertyForUpdatePodPropertyInput]
|
|
185
|
+
"""
|
|
186
|
+
|
|
187
|
+
self._pod_properties = pod_properties
|
|
188
|
+
|
|
189
|
+
@property
|
|
190
|
+
def pod_settings(self):
|
|
191
|
+
"""Gets the pod_settings of this UpdatePodPropertyRequest. # noqa: E501
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
:return: The pod_settings of this UpdatePodPropertyRequest. # noqa: E501
|
|
195
|
+
:rtype: list[PodSettingForUpdatePodPropertyInput]
|
|
196
|
+
"""
|
|
197
|
+
return self._pod_settings
|
|
198
|
+
|
|
199
|
+
@pod_settings.setter
|
|
200
|
+
def pod_settings(self, pod_settings):
|
|
201
|
+
"""Sets the pod_settings of this UpdatePodPropertyRequest.
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
:param pod_settings: The pod_settings of this UpdatePodPropertyRequest. # noqa: E501
|
|
205
|
+
:type: list[PodSettingForUpdatePodPropertyInput]
|
|
206
|
+
"""
|
|
207
|
+
|
|
208
|
+
self._pod_settings = pod_settings
|
|
209
|
+
|
|
210
|
+
@property
|
|
211
|
+
def product_id(self):
|
|
212
|
+
"""Gets the product_id of this UpdatePodPropertyRequest. # noqa: E501
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
:return: The product_id of this UpdatePodPropertyRequest. # noqa: E501
|
|
216
|
+
:rtype: str
|
|
217
|
+
"""
|
|
218
|
+
return self._product_id
|
|
219
|
+
|
|
220
|
+
@product_id.setter
|
|
221
|
+
def product_id(self, product_id):
|
|
222
|
+
"""Sets the product_id of this UpdatePodPropertyRequest.
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
:param product_id: The product_id of this UpdatePodPropertyRequest. # noqa: E501
|
|
226
|
+
:type: str
|
|
227
|
+
"""
|
|
228
|
+
if self._configuration.client_side_validation and product_id is None:
|
|
229
|
+
raise ValueError("Invalid value for `product_id`, must not be `None`") # noqa: E501
|
|
230
|
+
|
|
231
|
+
self._product_id = product_id
|
|
232
|
+
|
|
233
|
+
def to_dict(self):
|
|
234
|
+
"""Returns the model properties as a dict"""
|
|
235
|
+
result = {}
|
|
236
|
+
|
|
237
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
238
|
+
value = getattr(self, attr)
|
|
239
|
+
if isinstance(value, list):
|
|
240
|
+
result[attr] = list(map(
|
|
241
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
242
|
+
value
|
|
243
|
+
))
|
|
244
|
+
elif hasattr(value, "to_dict"):
|
|
245
|
+
result[attr] = value.to_dict()
|
|
246
|
+
elif isinstance(value, dict):
|
|
247
|
+
result[attr] = dict(map(
|
|
248
|
+
lambda item: (item[0], item[1].to_dict())
|
|
249
|
+
if hasattr(item[1], "to_dict") else item,
|
|
250
|
+
value.items()
|
|
251
|
+
))
|
|
252
|
+
else:
|
|
253
|
+
result[attr] = value
|
|
254
|
+
if issubclass(UpdatePodPropertyRequest, dict):
|
|
255
|
+
for key, value in self.items():
|
|
256
|
+
result[key] = value
|
|
257
|
+
|
|
258
|
+
return result
|
|
259
|
+
|
|
260
|
+
def to_str(self):
|
|
261
|
+
"""Returns the string representation of the model"""
|
|
262
|
+
return pprint.pformat(self.to_dict())
|
|
263
|
+
|
|
264
|
+
def __repr__(self):
|
|
265
|
+
"""For `print` and `pprint`"""
|
|
266
|
+
return self.to_str()
|
|
267
|
+
|
|
268
|
+
def __eq__(self, other):
|
|
269
|
+
"""Returns true if both objects are equal"""
|
|
270
|
+
if not isinstance(other, UpdatePodPropertyRequest):
|
|
271
|
+
return False
|
|
272
|
+
|
|
273
|
+
return self.to_dict() == other.to_dict()
|
|
274
|
+
|
|
275
|
+
def __ne__(self, other):
|
|
276
|
+
"""Returns true if both objects are not equal"""
|
|
277
|
+
if not isinstance(other, UpdatePodPropertyRequest):
|
|
278
|
+
return True
|
|
279
|
+
|
|
280
|
+
return self.to_dict() != other.to_dict()
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
acep
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
|
|
7
|
+
|
|
8
|
+
OpenAPI spec version: common-version
|
|
9
|
+
|
|
10
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import pprint
|
|
15
|
+
import re # noqa: F401
|
|
16
|
+
|
|
17
|
+
import six
|
|
18
|
+
|
|
19
|
+
from volcenginesdkcore.configuration import Configuration
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class UpdatePodPropertyResponse(object):
|
|
23
|
+
"""NOTE: This class is auto generated by the swagger code generator program.
|
|
24
|
+
|
|
25
|
+
Do not edit the class manually.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
"""
|
|
29
|
+
Attributes:
|
|
30
|
+
swagger_types (dict): The key is attribute name
|
|
31
|
+
and the value is attribute type.
|
|
32
|
+
attribute_map (dict): The key is attribute name
|
|
33
|
+
and the value is json key in definition.
|
|
34
|
+
"""
|
|
35
|
+
swagger_types = {
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
attribute_map = {
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
def __init__(self, _configuration=None): # noqa: E501
|
|
42
|
+
"""UpdatePodPropertyResponse - a model defined in Swagger""" # noqa: E501
|
|
43
|
+
if _configuration is None:
|
|
44
|
+
_configuration = Configuration()
|
|
45
|
+
self._configuration = _configuration
|
|
46
|
+
self.discriminator = None
|
|
47
|
+
|
|
48
|
+
def to_dict(self):
|
|
49
|
+
"""Returns the model properties as a dict"""
|
|
50
|
+
result = {}
|
|
51
|
+
|
|
52
|
+
for attr, _ in six.iteritems(self.swagger_types):
|
|
53
|
+
value = getattr(self, attr)
|
|
54
|
+
if isinstance(value, list):
|
|
55
|
+
result[attr] = list(map(
|
|
56
|
+
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
|
|
57
|
+
value
|
|
58
|
+
))
|
|
59
|
+
elif hasattr(value, "to_dict"):
|
|
60
|
+
result[attr] = value.to_dict()
|
|
61
|
+
elif isinstance(value, dict):
|
|
62
|
+
result[attr] = dict(map(
|
|
63
|
+
lambda item: (item[0], item[1].to_dict())
|
|
64
|
+
if hasattr(item[1], "to_dict") else item,
|
|
65
|
+
value.items()
|
|
66
|
+
))
|
|
67
|
+
else:
|
|
68
|
+
result[attr] = value
|
|
69
|
+
if issubclass(UpdatePodPropertyResponse, dict):
|
|
70
|
+
for key, value in self.items():
|
|
71
|
+
result[key] = value
|
|
72
|
+
|
|
73
|
+
return result
|
|
74
|
+
|
|
75
|
+
def to_str(self):
|
|
76
|
+
"""Returns the string representation of the model"""
|
|
77
|
+
return pprint.pformat(self.to_dict())
|
|
78
|
+
|
|
79
|
+
def __repr__(self):
|
|
80
|
+
"""For `print` and `pprint`"""
|
|
81
|
+
return self.to_str()
|
|
82
|
+
|
|
83
|
+
def __eq__(self, other):
|
|
84
|
+
"""Returns true if both objects are equal"""
|
|
85
|
+
if not isinstance(other, UpdatePodPropertyResponse):
|
|
86
|
+
return False
|
|
87
|
+
|
|
88
|
+
return self.to_dict() == other.to_dict()
|
|
89
|
+
|
|
90
|
+
def __ne__(self, other):
|
|
91
|
+
"""Returns true if both objects are not equal"""
|
|
92
|
+
if not isinstance(other, UpdatePodPropertyResponse):
|
|
93
|
+
return True
|
|
94
|
+
|
|
95
|
+
return self.to_dict() != other.to_dict()
|
|
@@ -143,7 +143,7 @@ class Ark(SyncAPIClient):
|
|
|
143
143
|
self._sts_token_manager = StsTokenManager(self.ak, self.sk, self.region)
|
|
144
144
|
return self._sts_token_manager.get(endpoint_id)
|
|
145
145
|
|
|
146
|
-
def _get_endpoint_certificate(self, endpoint_id: str) ->
|
|
146
|
+
def _get_endpoint_certificate(self, endpoint_id: str) -> Tuple[key_agreement_client, str, str, float]:
|
|
147
147
|
if self._certificate_manager is None:
|
|
148
148
|
cert_path = os.environ.get("E2E_CERTIFICATE_PATH")
|
|
149
149
|
if (
|
|
@@ -279,7 +279,7 @@ class AsyncArk(AsyncAPIClient):
|
|
|
279
279
|
self._sts_token_manager = StsTokenManager(self.ak, self.sk, self.region)
|
|
280
280
|
return self._sts_token_manager.get(bot_id, resource_type="bot")
|
|
281
281
|
|
|
282
|
-
def _get_endpoint_certificate(self, endpoint_id: str) ->
|
|
282
|
+
def _get_endpoint_certificate(self, endpoint_id: str) -> Tuple[key_agreement_client, str, str, float]:
|
|
283
283
|
if self._certificate_manager is None:
|
|
284
284
|
cert_path = os.environ.get("E2E_CERTIFICATE_PATH")
|
|
285
285
|
if (
|
|
@@ -429,7 +429,7 @@ class E2ECertificateManager(object):
|
|
|
429
429
|
base_url: str | URL = BASE_URL,
|
|
430
430
|
api_key: str | None = None,
|
|
431
431
|
):
|
|
432
|
-
self._certificate_manager: Dict[str, Tuple[key_agreement_client, str, str]] = {}
|
|
432
|
+
self._certificate_manager: Dict[str, Tuple[key_agreement_client, str, str, float]] = {}
|
|
433
433
|
|
|
434
434
|
# local cache prepare
|
|
435
435
|
self._init_local_cert_cache()
|
|
@@ -522,7 +522,7 @@ class E2ECertificateManager(object):
|
|
|
522
522
|
cert_pem = None
|
|
523
523
|
with open(cert_file_path, "r") as f:
|
|
524
524
|
cert_pem = f.read()
|
|
525
|
-
ring, key = get_cert_info(cert_pem)
|
|
525
|
+
ring, key, _ = get_cert_info(cert_pem)
|
|
526
526
|
# check cert is complement with AICC/PCA
|
|
527
527
|
if (ring == "" or key == "") and not self._aicc_enabled:
|
|
528
528
|
return cert_pem
|
|
@@ -545,7 +545,7 @@ class E2ECertificateManager(object):
|
|
|
545
545
|
"failed to create certificate directory %s: %s\n" % (self._cert_storage_path, e)
|
|
546
546
|
)
|
|
547
547
|
|
|
548
|
-
def get(self, ep: str) ->
|
|
548
|
+
def get(self, ep: str) -> Tuple[key_agreement_client, str, str, float]:
|
|
549
549
|
if ep not in self._certificate_manager:
|
|
550
550
|
cert_pem = self._load_cert_locally(ep)
|
|
551
551
|
if cert_pem is None:
|
|
@@ -556,12 +556,13 @@ class E2ECertificateManager(object):
|
|
|
556
556
|
else:
|
|
557
557
|
cert_pem = self._load_cert_by_ak_sk(ep)
|
|
558
558
|
self._save_cert_to_file(ep, cert_pem)
|
|
559
|
-
ring, key = get_cert_info(cert_pem)
|
|
559
|
+
ring, key, exp_time = get_cert_info(cert_pem)
|
|
560
560
|
self._certificate_manager[ep] = (
|
|
561
561
|
key_agreement_client(
|
|
562
562
|
certificate_pem_string=cert_pem
|
|
563
563
|
),
|
|
564
564
|
ring,
|
|
565
565
|
key,
|
|
566
|
+
exp_time,
|
|
566
567
|
)
|
|
567
568
|
return self._certificate_manager[ep]
|
|
@@ -17,7 +17,7 @@ import base64
|
|
|
17
17
|
from typing import Tuple
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
def get_cert_info(cert_pem: str) -> Tuple[str, str]:
|
|
20
|
+
def get_cert_info(cert_pem: str) -> Tuple[str, str, float]:
|
|
21
21
|
import re
|
|
22
22
|
from cryptography import x509
|
|
23
23
|
from cryptography.hazmat.backends import default_backend
|
|
@@ -27,10 +27,10 @@ def get_cert_info(cert_pem: str) -> Tuple[str, str]:
|
|
|
27
27
|
dns = cert.extensions.get_extension_for_class(
|
|
28
28
|
x509.SubjectAlternativeName).value.get_values_for_type(x509.DNSName)
|
|
29
29
|
if dns and len(dns) > 1 and re.match(r"^ring\..*$", dns[0]) and re.match(r"^key\..*$", dns[1]):
|
|
30
|
-
return dns[0][5:], dns[1][4:]
|
|
30
|
+
return dns[0][5:], dns[1][4:], cert.not_valid_after_utc.timestamp()
|
|
31
31
|
except Exception:
|
|
32
32
|
pass
|
|
33
|
-
return "", ""
|
|
33
|
+
return "", "", cert.not_valid_after_utc.timestamp()
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
def aes_gcm_encrypt_bytes(
|
|
@@ -92,6 +92,20 @@ def aes_gcm_decrypt_base64_string(key: bytes, nonce: bytes, ciphertext: str) ->
|
|
|
92
92
|
base64_pattern = r'(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})'
|
|
93
93
|
|
|
94
94
|
|
|
95
|
+
def decrypt_corner_case(key: bytes, nonce: bytes, data: str) -> str:
|
|
96
|
+
"""decrypt_corner_case Decrypt corner case data"""
|
|
97
|
+
if len(data) < 24:
|
|
98
|
+
return ''
|
|
99
|
+
for i in range(20, len(data), 4):
|
|
100
|
+
try:
|
|
101
|
+
decrypted = aes_gcm_decrypt_base64_string(key, nonce, data[:i+4])
|
|
102
|
+
if i+4 == len(data):
|
|
103
|
+
return decrypted
|
|
104
|
+
return decrypted + decrypt_corner_case(key, nonce, data[i+4:])
|
|
105
|
+
except Exception:
|
|
106
|
+
pass
|
|
107
|
+
|
|
108
|
+
|
|
95
109
|
def aes_gcm_decrypt_base64_list(key: bytes, nonce: bytes, ciphertext: str) -> str:
|
|
96
110
|
# Decrypt
|
|
97
111
|
base64_array = re.findall(base64_pattern, ciphertext)
|
|
@@ -100,17 +114,7 @@ def aes_gcm_decrypt_base64_list(key: bytes, nonce: bytes, ciphertext: str) -> st
|
|
|
100
114
|
try:
|
|
101
115
|
result.append(aes_gcm_decrypt_base64_string(key, nonce, b64))
|
|
102
116
|
except Exception:
|
|
103
|
-
|
|
104
|
-
try:
|
|
105
|
-
decrypted = aes_gcm_decrypt_base64_string(
|
|
106
|
-
key, nonce, b64[:i+4])
|
|
107
|
-
result.append(decrypted)
|
|
108
|
-
decrypted = aes_gcm_decrypt_base64_string(
|
|
109
|
-
key, nonce, b64[i+4:])
|
|
110
|
-
result.append(decrypted)
|
|
111
|
-
break
|
|
112
|
-
except Exception:
|
|
113
|
-
pass
|
|
117
|
+
result.append(decrypt_corner_case(key, nonce, b64))
|
|
114
118
|
return ''.join(result)
|
|
115
119
|
|
|
116
120
|
|